Posts in category winxp

IP Address in Python (Windows)

From StackOverflow, my changes:

  • Py3 compat (no big deal)
  • Added DHCP support
  • Use CurrentControlSet (saner IMHO)
import os
import sys
import winreg as _winreg # Hack for py3 compared to original SO post


def main():
    adapter_list_key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,
        r'SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards')

    adapter_count = _winreg.QueryInfoKey(adapter_list_key)[0]

    for i in range(adapter_count):
        sub_key_name = _winreg.EnumKey(adapter_list_key, i)
        adapter_key = _winreg.OpenKey(adapter_list_key, sub_key_name)
        (adapter_service_name, _) = _winreg.QueryValueEx(adapter_key, "ServiceName")
        (description, _) = _winreg.QueryValueEx(adapter_key, "Description")

        adapter_registry_path = os.path.join(r'SYSTEM\CurrentControlSet\Services',
            adapter_service_name, "Parameters", "Tcpip")
        adapter_service_key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,
            adapter_registry_path)
        (subnet_mask, _) = _winreg.QueryValueEx(adapter_service_key, "SubnetMask")
        if ['0.0.0.0'] == subnet_mask:
            (subnet_mask, type_) = _winreg.QueryValueEx(adapter_service_key, "DhcpSubnetMask")
            if _winreg.REG_SZ == type_:
                subnet_mask = [subnet_mask] # Make 1-element list to match non-DHCP
        (ip_address, _) = _winreg.QueryValueEx(adapter_service_key, "IpAddress")
        if ['0.0.0.0'] == ip_address:
            (ip_address, type_) = _winreg.QueryValueEx(adapter_service_key, "DhcpIPAddress")
            if _winreg.REG_SZ == type_:
                ip_address = [ip_address] # Make 1-element list to match non-DHCP
        sys.stdout.write("Name: %s\n" % adapter_service_name)
        sys.stdout.write("Description: %s\n" % description)
        sys.stdout.write("SubnetMask: %s\n" % subnet_mask)
        sys.stdout.write("IpAdress: %s\n" % ip_address)


if __name__ == "__main__":
    main()

Don't end filenames or directories with spaces

Yeah... my Ruby script that I posted before made a bunch of directories with spaces at the end. And then when I fixed the bug, I had directories with and without spaces at the end. Bad things happen...

Cannot delete file: Cannot read from the source file or disk.

Strange Software Install Issue (Installer silently hangs)

I've been having a strange install issue with the ATI Catalyst software. It's documented here on the AMD site: http://forums.amd.com/game/messageview.cfm?catid=279&threadid=125401&forumid=11

However, forums like that have a great history of disappearing when I need them most, so a summary is also now here.

Setup was totally hanging. I tried all kinds of things to trace what was happening. Then this wonderful post came along:

From Wiink:


I signed up to post in this thread since I was having the exact same issue and was really frustrated over it. I have a 4890 and have always used Ati graphics cards, never had any issues and drivers always installed flawlessly until one day i decided to update from 9.8 to the current 9.12.

I'd go through the usual uninstall methods using the ati uninstaller and then follow up with driver sweeper. Click on the exe for the 9.12 suite and it would unpack/extract then an hourglass for about 5 seconds and then nothing. I would see InstallManagerApp.exe running in the taskmanager and my hdd light would be lit, but that was about it....no install. Tried many times and nothing worked. Drove me absolutely crazy. Checked and re-checked all the cleanup, c++ redist and .net stuff....All in order and still same results - nothing.

Then I came across this thread about not having full admin permission for registry changes needed for some software installs even though I am the only user and Admin of this pc. When installing the 9.12 Catalyst Suite, it needs to change something in the registry that was now being blocked , so I ran this fix posted here and my problems were solved immediately on both my Vista and my XP Pro machines. Just remember to create a fresh system restore point before applying it. I was so happy to have the issue fixed I had to share. It specifies Vista in the post, but it worked for my Xp Pro as well flawlessly. Took about 20 minutes and fixed! And sorry for the wall of text. Just do a reboot after running the cmd file and try to install the catalyst 9.12 suite again, should work now.

Post by Michael G. Simmons: http://social.msdn.microsoft.com/forums/en-US/vbexpress2008prerelease/thread/c273b0e1-7f46-4065-afaf-4edf285d2531

There is a quick fix for this and any other permission issues that occur with Vista. I've seen this happen with several different installs under Vista including VS 2005 and Orcas. The problem is for some reason regisry permissions are given to the user msiserver. You can reset each entry manually, but that is a major pain. It's much easier just to fix the entire registry by using the SubInACL utility. Basically, you can use the utility to add administrator permissions to every key in the registry.

  1. Download and install the SubInACL utility.

2.Create a new text file named fix_registry_permissions.cmd and add the following text to it and save it.

    cd /d "%programfiles%\Windows Resource Kits\Tools"
    subinacl /subkeyreg HKEY_LOCAL_MACHINE /grant=administrators=f /grant=system=f
    subinacl /subkeyreg HKEY_CURRENT_USER /grant=administrators=f /grant=system=f
    subinacl /subkeyreg HKEY_CLASSES_ROOT /grant=administrators=f /grant=system=f
    subinacl /subdirectories %SystemDrive% /grant=administrators=f /grant=system=f
    subinacl /subdirectories %windir%\*.* /grant=administrators=f /grant=system=f
  1. Run the file by double-clicking on it.

That's it. It will take several minutes to finish, but at the end all registry keys will be accessable to the administrator and system, as it should be.

My Dell XPS Gen 3 won't boot from CD-ROM!

To: Some friends of mine.

Any ideas on this head-scratcher?

My Dell XPS (getting really old, I know) won't boot from CD-ROM. I have tried 3-4 different CDs. One of the CDs has multiple boot images on it and none of them boot.

Here's the weird part - I can get the boot loaders to work! The Ghost ones will say "Loading PC-DOS..." and then the CD drive just stops spinning. The multiboot one gives me all the menus, but as soon as it tries to launch something, it hangs in the same way. Even good ol' DOS 6.22 says "Loading MS-DOS..." and hangs. I tried my CentOS 4 installer DVD - I get the boot menus, I type "linux rescue" and then it just sits there.

My config is multiple SATA drives and two PATA CDs. I have even disabled the master and then I have the same issue with the secondary (it won't touch the secondary if the master is enabled, even if no CD in master). Same thing.

And here it gets even weirder... I booted from a USB key with Ghost on it just fine; I'm doing my backups now. WTF?!?!

Various suggestions came back... then a few days later, I found the solution!

You've GOT to be shitting me... I fixed it!

http://support.dell.com/support/downloads/download.aspx?c=us&l=en&s=gen&releaseid=R104585&SystemID=DIM_PNT_P4_XPS_G3&servicetag=&os=WW1&osl=en&deviceid=308&devlib=0&typecnt=0&vercnt=8&catid=-1&impid=-1&formatcnt=1&libid=1&fileid=135030

I didn't install this BIOS release from over 4 years ago (I have A06), but look at the changelog:

"1. Prevent boot issues when USB devices with media readers are present."

Lo and behold, I plugged my monitor in a few weeks ago. Which has a (useless) built-in USB hub and media reader! I never would've expected something like that to happen! So my guess is that the BIOS tries to enumerate the drives somehow to map to INT13 and hangs up! When I yanked the USB cable from the monitor, CDs booted just fine!!?!?

I thought the USB hub was useless before because it powers off with the monitor - now it is a downright HINDRANCE!

"sudo" for Vista

Stopping a Windows Executable from Running

To prevent a file from being created, in the past I have created a folder with the same name. This lets you stop a file from running (the example used is a worm executable):

  1. Create a registry key with the name of the process you want to prevent to execute. Ex.: calc.exe
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\calc.exe 
    
  1. Under this new key you've just created, create a SZ value called "Debugger" and set it to the following value:
    SZ Debugger = "cmd.exe /c echo  %time% %date% calc.exe >> c:\ExecBlocked.log"
    

From http://blogs.technet.com/marcelofartura/archive/2006/10/24/a-virus-infection-contolling-the-outbreak-tip.aspx with slight mods by me.

"Hidden" Search Feature in File Open dialog

OK, I've been using Windows for years and I really thought I knew almost every shortcut. I Alt-Tab like there's no tomorrow (and occasionally remember to Win-Tab on wifey's laptop w/Vista). Win-R hourly (typing cmd or calc is quicker than finding it on the menu). Win-E any time a USB drive is nearby. Anyway, apparently you can do searches within a "File Open" dialog. Obviously, I knew most programs add a pull-down with file types. But on a whim, I was in UltraEdit the other day and type *vhd and wow it limited the selection to the VHDL files. *.v worked too, but acted like *.v* - however *.l and *.l?? showed the second one acting as I would expect (matching only 3 letter extensions starting with l - .lock was hidden). I tried it in a few other programs like Gimp and it seems to be part of the standard Windows UI. This is XP, I don't have access to any 2000 machines anymore, but no idea when it came about. (As shown before), I hate it when something I'm looking for is right under my nose!

Extra Secure Remote Desktop

I have been using Microsoft's Remote Desktop for a few years now (pretty much since I switched to XP). It's decent, and I like that it retains sessions unlike TightVNC, which is what I had used before. By using a SSH tunnel, I feel confident that my connection is secure and I am willing to visit my banks, etc. using my desktop machine via my laptop on a wireless network. Here's what I did:

On the server (in this case my desktop):

  • Installed the Cygwin build of SSHD as a service
    • Many guides are available, just search with Google above keywords like "cygwin sshd". But in a nutshell:
      • Install cygwin (duh) - include openssh (under Net) and cygrunsrv (under Admin)
      • Set up sshd: "ssh-host-config -y"
      • Start it as a service: "cygrunsrv -S sshd"
  • Allow Remote Desktop usage:
    • Right click on "My Computer" and choose "Properties"
    • Go to the "Remote" tab
    • Make sure that "Allow users to connect remotely to this computer." is checked

On the client (in this case my laptop):

  • You need a way to setup an ssh tunnel. You can use Cygwin's ssh, PuTTY, or my favorite MyEnTunnel. I previously selected MyEnTunnel for some work-related stuff, so I was able to simply add a "Profile".
  • The key is that you want a tunnel from your machine's 3390 to the remote (server) machine's port 3389 (or any other port on your local machine of your choosing). With MyEnTunnel, it is this simple:
    • Profile Page 1 Profile Page 2
  • Once MyEnTunnel has established a connection (a green padlock), you can connect.
  • Start -> Run -> "mstsc"
    • MSTSC setup
  • As you can see, mstsc has no idea what machine you are connecting to. As far as it knows, you connect to localhost which is your machine, which MyEnTunnel then encrypts (using PuTTY's plink) and sends to the remote machine's sshd daemon which forwards it to Windows XP listening for the Remote Desktop connection.
    • (Client:Outgoing port) -> (Client:3390) -> (Client:22) -> [encrypted link] -> (Server:22) -> (Server:3389)

How to restore a Windows restore point from Linux

Of course, the Ubuntu chest-thumping is kinda annoying and irrelevant. In fact, I would try to find any Live CD with NTFS support (Fedora maybe?) That's all you really need.

In fact it would've been easier for him to check the GRUB config file ;)

http://www.arsgeek.com/?p=3637

Mounting ISO images with Windows

I have been trying to do a whole mount -o loop thing under Windows for years - didn't know that Microsoft actually has a Virtual CD driver for free! No need for Alcohol 120% or anything. Here's the link.

Obnoxious VMWare console beeps

The VMWare machines on my work laptop would chime whenever I did things like filename completion. The problem was, it was BIOS-level super obnoxious beep that was likely pissing off my cube-neighbors (no volume control nor mute worked). I had turned off all sounds in the Windows host OS, which seemed to be the problem. So if your console beeps are out of hand, set the Windows' "Default Beep" to something. That will have Windows re-intercepting the beep and then the system volume control / mute will work again.

FAT32 perl utilities

As noted before, my work laptop dual boots into WinXP and Fedora Core 7. They share a large FAT32 partition. Yesterday I finally got a 500GB external drive at work to back up my stuff. It's also FAT32. So I whipped up this quick script that splits a large data stream (using redirection or cat would make files work) and dumps it in 1GB slices. The second has some modifications to instead fill up the hard drive with zeroes, which is needed to make a backup of it more compressable. On a Linux box, I normally just do dd if=/dev/zero of=delme bs=102400 || rm -rf delme but that would exceed the file size limitations of FAT32. The first iteration of the filler was simply cat /dev/zero | perl splitter.pl fill but then realized that there was a lot of actual reading going on, instead of just dumping zeros, so I changed some stuff.

In filler, I tried to pre-allocate the 2GB slice file and then fill it with zero to try to avoid even more fragmentation and FAT table manipulations. However, when I re-opened the file and then seeked to zero it would change the size back down - I didn't have time to research it further; if anyone has a good solution please let me know.

I've also run filler under Cygwin to fill another partition.

splitter.pl:

#!/usr/bin/perl -w
# This program splits incoming data into ~1GB chunks (for dumping a file
# on the fly to FAT32 partitions for example).
# Data is STDIN, and first argument is prefix of output (optional).
#
# To recombine the output, simply:
# cat FILE_* > /path/to/better/fs/OriginalFile

BEGIN {
push(@INC, "/mnt/hd/usr/lib/perl5/5.8.8/");
push(@INC, "/mnt/hd/usr/lib/perl5/5.8.8/i386-linux-thread-multi/");
}
use strict;
use Fcntl; # import sysread flags

binmode(STDIN);

use constant FULL_SIZE => (2*1024*1024*1024); # 2 GB

my $chunk_byte_count = FULL_SIZE+1; # Force an open on first output byte
my $chunk_file_count = 0; # Start at file 0
my ($read_count, $buffer);
my $blksize = 1024; # This might get overwritten later
my $prefix = $ARGV[0] || "FILE";

# The framework of this is from camel page 231

while ($read_count = sysread STDIN, $buffer, $blksize) {
  if (!defined $read_count) {
    next if $! =~ /^Interrupted/;
    die "System read error: $!\n";
  }
  # Decide if we need another file
  if ($chunk_byte_count >= FULL_SIZE) { # Need a new file
    close OUTFILE if $chunk_file_count;
    sysopen OUTFILE, (sprintf "${prefix}_%02d", $chunk_file_count++),
      O_WRONLY | O_TRUNC | O_CREAT | O_BINARY or die "Could not open output file for write!\n";
    $blksize = (stat OUTFILE)[11] || 16384; # Get preferred block size
    # print STDERR "(New output file from $0 (blksize $blksize))\n";
    $chunk_byte_count = 0;
  } # New file
  my $wr_ptr = 0; # Pointer within buffer
  while ($read_count) { # This handles partial writes
    my $written = syswrite OUTFILE, $buffer, $read_count, $wr_ptr;
    die "System write error: $!\n" unless defined $written;
    $read_count -= $written;
    $wr_ptr += $written;
  } # Writing a chunk
  $chunk_byte_count += $wr_ptr;
  #print "(\$wr_ptr = $wr_ptr), (\$chunk_byte_count = $chunk_byte_count), (\$chunk_file_count = $chunk_file_count)\n";
} # Main read loop

# Report on it
print "Wrote out $chunk_file_count chunk files.\n";

filler.pl:

#!/usr/bin/perl -w
# This program fills a hard drive with 2GB files all NULL.
# (This makes compressed images of the hard drive smaller.)
# First argument is prefix of output (optional).
#

BEGIN {
  push(@INC, "/mnt/hd/usr/lib/perl5/5.8.8/");
  push(@INC, "/mnt/hd/usr/lib/perl5/5.8.8/i386-linux-thread-multi/");
}

use strict;
use Fcntl qw(:DEFAULT :seek); # import sysread flags

use constant FULL_SIZE => 2*(1024*1024*1024); # 2 GB

my $chunk_byte_count = FULL_SIZE+1; # Force an open on first output byte
my $chunk_file_count = 0; # Start at file 0
my ($read_count, $buffer);
my $blksize = 16384; # This might get overwritten later
my $prefix = $ARGV[0] || "FILL";
my $last_show = -1;
$| = 1; # always flush

# The framework of this is from camel page 231
$buffer = "\0" x $blksize;

# Without pre-alloc:
#real    1m20.860s
#user    0m10.155s
#sys     0m32.531s

# With pre-alloc:
#real    8m56.391s
#user    0m16.359s
#sys     1m11.921s

# Which makes NO sense, but hey, that's Cygwin... maybe because FAT32?

# Note: It was O_RDWR but switching to O_WRONLY didn't seem to help.
# However, maybe if Norton is disabled?

while (1) {
  # Decide if we need another file
  if ($chunk_byte_count >= FULL_SIZE) { # Need a new file
    close OUTFILE if $chunk_file_count;
    print STDERR "\rNew fill output file ($prefix)... \n";
    sysopen OUTFILE, (sprintf "${prefix}_%02d", $chunk_file_count++),
      O_WRONLY | O_TRUNC | O_CREAT | O_BINARY | O_EXCL or die "Could not open output file for write!\n";
    # Pre-allocate the file
#    print STDERR "New fill output file ($prefix) pre-allocating, expect freeze... \n";
#    sysseek OUTFILE, FULL_SIZE-1, SEEK_SET;
#    syswrite OUTFILE, $buffer, 1, 0;
#    close OUTFILE;
#    print STDERR "\tdone, now blanking out the file.\n";
#    sysopen OUTFILE, (sprintf "${prefix}_%02d", $chunk_file_count++),
#      O_WRONLY | O_BINARY or die "Could not re-open output file for write!\n";
#    sysseek OUTFILE, 0, SEEK_SET; # This might just be ignored?
    # Done pre-allocating
    my $blk = $blksize;
    $blksize = (stat OUTFILE)[11] || 16384; # Get preferred block size
    if ($blksize != $blk) {
      # new block size, should only happen once
      $buffer = "\0"x$blksize;
    }
    $chunk_byte_count = 0;
    $last_show = -1;
  } # New file
  $read_count = $blksize;
  while ($read_count) { # This handles partial writes
    my $written = syswrite OUTFILE, $buffer, $read_count, 0;
    die "System write error: $!\n" unless defined $written;
    $read_count -= $written;
    $chunk_byte_count += $written;
  } # Writing a chunk
  # End of a chunk
  my $new_show = int ($chunk_byte_count/(1024*1024));
  if ($new_show > $last_show) {
    print STDERR "\r${new_show}MB";
    $last_show = $new_show;
  }
#  print "(\$chunk_byte_count = $chunk_byte_count), (\$chunk_file_count = $chunk_file_count)\n";
} # Main while loop

# Report on it [think it always crashes before this ;)]
print "\rWrote out $chunk_file_count chunk files.\n";

A Better "Bash Here"

There are a lot of ways to do a "bash window here" in WinXP, but this is my fav by far. It gives you the proper unix style mouse buttons since it is a terminal window not just cmd. After installing it, right click on any directory:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\0cmd-rxvt]
@="Bash Window Here"

[HKEY_CLASSES_ROOT\Directory\shell\0cmd-rxvt\command]
@="C:\\cygwin\\bin\\rxvt.exe -bg black -fg white -sr -sl 1000 -fn \"Fixedsys\" -ls -e /usr/bin/bash --login -c \"cd \\\"`cygpath -u '%1'`\\\"; exec bash\""

You may need to change the beginning of the last line if you installed in a different path, e.g. e:\cygwin\.

Updated March 2009

My buddy Bill told me there is now a Cygwin command xhere and a setup command chere that will do all the Registry insertions for you. So launch Cygwin in the default crappy shell (with admin privs) and you can type:

chere -i -af -t rxvt -o "-bg black -fg white -sr -sl 1000 -fn \"FixedSys\" -ls" -s bash -e "Bash prompt here"

You can change -af to -cf for current user only if you don't have admin on the machine.

Because he was kind enough to give it to me, I will give you his command which seriously hurts my eyes. :) I also prefer the default size and expand it if needed.

chere -i -af -t rxvt -o "-ls -sr -sl 1000 -bg grey70 -fg black -geometry 120x65+300+15 -fn 10x16 -title Bash" -s bash -e "Bash prompt here"

Roll your own subversion

Under Cygwin...

Waiting for an official subversion 1.4 - but until then, I lost my command line svn because Tortoise SVN (awesome BTW) updated my working copy to the new format.

Abbreviated setup (I'm not telling you how to use tar, etc). It's also good idea to disable your virus scanner for a few minutes. Spawning processes under cygwin is painful to start with...

  1. Download both subversion and it's deps. Currently:
    http://subversion.tigris.org/downloads/subversion-deps-1.4.0.tar.bz2
    http://subversion.tigris.org/downloads/subversion-1.4.0.tar.bz2
    

These are from http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=260&expandFolder=74

  1. Extract them both
  2. $ ./configure --prefix=/usr/local/svn14 --enable-all-static --disable-mod-activation
  3. make all
  4. make check

(You can usually just do "make check" but there seems to be a bug where it won't properly build the dependencies)

  1. make install
  2. add to .profile:
    alias svn14="/usr/local/svn14/bin/svn"
    

I have done this on two machines now. On both, some symlink stuff failed under one of the python checks. Oh well...

Make DVD Installer from CDs

Just stumbled on this online. Feel free to extrapolate:

  1. Create a Temp folder on harddrive. Name this folder "HL2_DVD" This will be the Label of our DVD.
  2. Copy all contents of CD1 to this Temp folder.
  3. From CD2 copy just two files! The "cab" file (hl2.CAB) and the "installer.dll" file to the main directory of the Temp folder.
  4. From CD3 copy the "hl23.CAB" file to the main directory of the Temp folder.
  5. From CD4 copy the "hl24.CAB" file to the main directory of the Temp folder.
  6. From CD5 copy the "hl25.CAB" file to the main directory of the Temp folder.
  7. Now download and install "Orca".
  8. Once Orca is installed go to the Temp folder and right click the file "hl2.msi" and from near the top of the menu choose "Edit with Orca".
  9. When opened you will see 2 window panes, go to the "Tables" one on the left and scroll down to Media"
    1. Click on "Media" this will show you the entries in the Right pane. There will be 6 columns.
    2. Change all the entries in the "VolumeLabel" column to HL2_DVD
    3. Then "Save" it. (You can also use a program called "Masai Editor" instead of "Orca")
  10. Now burn to a DVD using Nero using the Label HL2_DVD.

Annoying Reboot Prompt

http://blogs.wdevs.com/ColinAngusMackay/archive/2005/10/16/10858.aspx

Text: Updating your computer is almost complete - Restart Now?

I just saw the following tip from Daniel Turini on CodeProject:

I found this after a lot of Googling, so I'd like to share the solution. Yep, this may not be new or even advanced but it surely helped me...

Anyone who is running Windows XP SP2 know what I'm talking about. That stupid, annoying, most ill-designed dialog box ever invented in the history of the computer science that asks "Updating your computer is almost complete. You must restart your computer for the updates to take effect. Do you want to restart your computer now?" And there are only two options: Restart Now/Restart Later. "Restart Later" means that this stupid thing will ask you again in 10 minutes. Yes, if you're willing to work for the next 4 hours until lunch before rebooting, this means you'll need to answer this question 24 times. Did I mention that the dialog steals the focus?

Now, to get rid of it: Start / Run / gpedit.msc / Local Computer Policy / Computer Configuration / Administrative Templates / Windows Components / Windows Update / Re-prompt for restart with scheduled installations

You can configure how often it will nag you (I re-configured it for 720 minutes, which means I'll be asked twice on a work day), or completely disable it.

Oh, I almost forgot: this setting is only loaded when Windows starts, so a reboot is needed. If that stupid dialog is on your screen now, just stop the "Automatic Updates" service (but keep it as Automatic, so it gets reloaded on the next start) and you won't see it again.

Addition (28-June-2006):
In response to this comment, I'd like to flag up here that he is completely right. I offer this tip as a short delaying tactic so that you can continue your work until the end of the day. At the end of the day you shut down your PC and when you reboot the following morning everything is installed and patched up. This should not be used to delay the installation of patches and security updates indefinitely. As a matter of course you should install security updates as quickly as you can.

Fix missing HAL, etc in Windows XP

http://www.informationweek.com/story/showArticle.jhtml?articleID=185301251

For example, if you already have some knowledge of the commands involved, many "Missing or corrupt HAL.DLL," "Invalid Boot.Ini," or "Windows could not start..." problems can be fixed with these five shortcut steps:

  • Boot from your XP Setup CD and enter the Recovery Console
  • Run "Attrib -H -R -S" on the C:\Boot.ini file
  • Delete the C:\Boot.ini file
  • Run "Bootcfg /Rebuild"
  • Run Fixboot

Remove USB Icon

I had an external drive running for hours and hours to stress test it. Then my "remove" icon was gone. Nothing to right click, etc.

Finally found this:

C:\WINDOWS\system32\rundll32.exe shell32.dll,Control_RunDLL hotplug.dll

Just made it an icon on my desktop for emergencies.

Unattended XP Install

ntpd troubles

Moving server, having trouble. Found this. Seems to fix the windows client, not the linux one.

http://mail-index.netbsd.org/current-users/2004/01/16/0023.html

Subject: ntpd default change

To: None

From: Christos Zoulas

List: current-users

Date: 01/16/2004 17:56:40

Hello,

People who use windows ntp clients [and other unauthenticated clients] served by netbsd ntp servers will notice after upgrading ntpd to current their clients cannot sync anymore.

So that others don't spend time debugging this:

  1. Authentication in the new version of ntp is turned on by default;

you'll have to turn it off. The option to do this has also changed. If you had in your config file "authenticate no" should change it to "disable auth".

  1. "restrict notrust" means don't trust unauthenticated packets, so remove

notrust from your restrict line. This seemed to work fine before with "authenticate no".

Of course, you should only do this if you really need to. If your clients can authenticate, you should keep authentication on.

I hope this is useful,

christos

Today was proxy fixing day!

Well, spent half of today fixing computers for the woman's family.

They insist on using AOL DSL, so to share the connection they have to use AnalogX Proxy instead of a "normal" wireless router. I got that up and running a year or so ago. But there have been glitches that I wasn't aware of until today.

Problem 1: Firefox don't work. On either client machine. Weird DNS issue too that I had once before with other reasons (look around on this blog). Basically any site you went to would be the same site as the first. Example - home page is google.com, then I try to go to windowsupdate.microsoft.com and it is google again. Type microsoft.com/cgi-bin/whatever and you get a 404 from google.com saying "I don't have /cgi-bin/whatever "

OK, so the fix. AnalogX proxy cannot handle HTTP/1.1 - you need to do HTTP/1.0 only.

about:config
Find "network.http.proxy.version" and make it "1.0"

Problem 2: Apparently, Microsoft in their infinite wisdom f'd up WindowsUpdate with SP2. The one machine worked fine. The other machine (brand new Dell laptop) didn't. So I update the other machine to SP2 and now it doesn't get WindowsUpdate either! Turns out that post-SP2 WindowsUpdate IGNORES THE PROXY SETTINGS YOU PUT INTERNET EXPLORER!!! What's the POINT?!?!

The fix: I'm not sure. There is a program "proxycfg" that sets up the proxy settings. I'm not sure which worked, one of these two (from the command line):

proxycfg -u

Supposedly updates the settings based on your IE ones. I'm not sure if that worked. Other possible:

proxycfg -p "http://10.70.70.70:6588"

(Obviously, put your proxy server/port in there)

As always, if this helped solve your problems, please drop me a 'thanx' note.

GPart - Guess partitions

Friend has his partition table hosed. He's starting with this, and it seems to be working very well. Looks awesome, figured I would virtually jot it down...

http://www.stud.uni-hannover.de/user/76201/gpart/

http://www.stud.uni-hannover.de/user/76201/gpart/gpart-man.html

Follow-up: He was able to get back his data. He actually ended up using this: http://www.cgsecurity.org/index.html?testdisk.html

Cool rescue CD system

Removing Norton !AntiVirus for GOOD

Hello Aaron,

Thank you for contacting Symantec Online Technical Support.

In your message you wrote:

I previously had NAV 2000 installed. I had paid for subscription upgrades and my last one expired 6/21/04. I bought NAV 2004. I went to install, it said to uninstall 2000, so I did. I now installed and activated NAV 2004. However, when I start it, it says I get 366 days of subscription but still shows 6/21/04 as the end date! I cannot even run the program.

Aaron, this issue occurs due to traces of the previous version still present on your computer. In order to resolve this issue, I suggest that you uninstall Norton AntiVirus (NAV) 2004, uninstall previous version completely using Rnav2003.exe utility, perform clean boot of Windows and then reinstall NAV 2004.

Please follow the steps in the URL provided below to uninstall NAV 2004:

Title: 'Uninstalling Norton AntiVirus 2004 or Norton AntiVirus 2004 Professional Edition' Document ID: 2003080311011006

Web URL: http://service1.symantec.com/Support/nav.nsf/docid/2003080311011006

Rnav2003.exe is a utility that manually uninstalls the program files and registry entries that are installed by NAV 5.0/2000/2001/2002/2003. Please follow the steps in the URL provided below to uninstall NAV by using Rnav2003.exe:

Title: 'How to uninstall Norton AntiVirus 2003 or earlier by using the Rnav2003.exe removal utility' Document ID: 2001092114452606

Web URL: http://service1.symantec.com/SUPPORT/nav.nsf/docid/2001092114452606

A clean boot is a restart of Windows with no applications running and with as few extra drivers loading as possible. Please refer the document provided below for instructions to clean boot your computer:

Title: 'Configuring Windows 98 to clean boot' Document ID: 199869145548

Web URL: http://service1.symantec.com/Support/tsgeninfo.nsf/docid/199869145548

Please click on the URL link mentioned below to read the Knowledge Base Document for the installation procedure, if you have the installation program in the CD:

Title: 'Installing Norton AntiVirus 2004 or Norton AntiVirus 2004 Professional from the CD' Document ID: 2003072912563606

Web URL: http://service1.symantec.com/Support/nav.nsf/docid/2003072912563606

If you have purchased the software from Symantec Store, please be aware that when you purchase a downloadable product from the Symantec Store, you may, for the purpose of reinstalling a replacement copy, download the software any number of times from the Symantec Store within a period of 60 days from the date of purchase at no additional charge.

If it is more than 60 days then this is not possible unless the Extended Download Service (EDS) had been previously purchased.

If you have purchased the EDS, you may download the software any number of times, for a period of one year after the date of purchase.

If you know your order number and your password, or know both the email address and credit card number under which the order was placed, you can download it again from Symantec store. Please note that you may download the software only for a period of one year after the date of purchase.

For re-downloading the software, please refer to the link provided below:

Web URL: http://www.symantecstore.com/orderlookup

If you do not remember your order details or encounter a difficulty during the download process or have any concerns regarding the download of the software, I recommend that you contact Symantec Store. You may contact Symantec Store directly by calling the following phone numbers:

International: 1-952-646-5623 North America: 866-285-6460

Or by Web at:

http://www.symantecstore.com\question

Note that Symantec Store is only responsible for software that is downloaded from the Symantec Store Web site. If you purchased the Norton software from another location then please contact the site you purchased from for assistance regarding the re-download of the software.

Please refer to the link provided below for the installation of Norton AntiVirus (NAV) that has been downloaded:

Title: 'Installing Norton AntiVirus 2004 or Norton AntiVirus 2004 Professional Edition that was downloaded from the Symantec Store' Document ID: 2003072611124806

Web URL: http://service1.symantec.com/SUPPORT/nav.nsf/docid/2003072611124806

Please let us know if this resolves the issue or if we can be of further assistance.

Regards,

Yeshaswini Symantec Authorized Technical Support

Windows XP Wireless Network Dropping?

Weird DNS Problem - reinstall TCP/IP on WinXP

Problem: URLs don't properly translate.

First, I go to:

www.google.com/

(It's the home page)

Then, since it is a new machine, I do Tools->Windows Update. The link should be:

www.microsoft.com/somethingsomething/redir?sadjkajsdljl.yougetit

What comes out:

404 Error from Google - just like this (http://www.google.com/somethingsomething/redir?sadjkajsdljl.yougetit) with the URL trying to go to google not Microsoft, as if the DNS lookup returned the wrong IP.

At one point, I got windowsupdate.microsoft.com to come up, but it kept looping and would show the main microsoft.com web page (but all the graphics were broken icons).

That pretty much sums it up. I have no ideas except (1) try to reinstall the TCP/IP stack (which is tough on WinXP) and (2) just wipe the damned machine and try again since it is new anyway.

Oh yeah, lastly, I removed all the network devices and reinstalled them from scratch, so there's no stupid 'Network Bridge" stuff.


Solution:

netsh int ip reset c:\resetlog.txt


Full discussion:

http://fatwallet.com/forums/messageview.cfm?catid=28&threadid=297239


Addendum 2007-12-12

A friend of mine had a similar problem recently, when Norton Antivirus decided that his Cybersitter was a virus and hosed the TCP stack. For that, the command was the very similar:

netsh winsock reset

It looks like there are quite a few interesting commands in there.

netsh winsock ?
netsh int ?
netsh int ip ?
netsh int ipv6 ?
netsh int ipv6 isatap ?
netsh int ip dump

Wayne's Windows Administrator Support

All the GNU utils you can shake a CLI at for Windows

Has Mozilla stopped downloading?

Erase compreg.dat from Mozilla directory. It'll get rebuilt automagically.

Right click hanging horribly?

Other symptoms included moving any file to the trash, even with 'delete' button and no context menu used.

Re-enable PGPsdkService

This took me about 6 months to track down!!!

Ghost and error 19922 SOLVED

The Symantec 'knowledge base' has this this useless link.

The 'solution' is "Symantec is investigating this problem to determine a resolution. This document will be updated when new information or a solution is available." - They have said this since at least version 6 - search their site and see at least 4 different Ghost versions saying that they are looking into it!

My situation, and fix, hope it works for you... NAV Pro 2K4 had crashed a few days before (it only happened that once) and I never shut off my desktop. Well, what was happening was the dump file was spanning at the 2GB mark. NAV has hooks in the OS that do RPC calls when the file is closed, telling NAV to scan it. Since NAV wasn't running, the RPC call was timing out. By time the RPC call failed, the Ghost client had given up the ghost (ha!) failing with error 19922.

A simple reboot fixed it, but it still took me about 3 hours of being very worried to fix, because I had made a major change to my network since the last backup...

Emergency reboot with Ctrl-Alt-Delete-Shift

Note: this reboots the machine VERY harshly.

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"EnableQuickReboot"="1"

Wireless Performance Stats

I cannot get this thing to connect with Encryption On using the SMC software, so I cannot turn on/off this 'Nitro' thing...

http://www.stanford.edu/~preese/netspeed/ was used to test. This program ROCKS!!! Server Linux, client WinXP Pro. 30 seconds per test, 8KB window (default) You can see there is a push and a pull test.

Server:
iperf --format K --port 999 -s
Client:
iperf -c neuvreidaghey -r -t 30 -p 999 --format K

802.11g, with encryption on.
------------------------------------------------------------
[ ID] Interval Transfer Bandwidth
[1892] local 192.168.1.169 port 2212 connected with 192.168.1.251 port 999
[1892] 0.0-30.0 sec 56408 KBytes 1880 KBytes/sec
[1868] local 192.168.1.169 port 999 connected with 192.168.1.251 port 32785
[1868] 0.0-30.0 sec 60832 KBytes 2026 KBytes/sec

802.11g, with encryption off.
------------------------------------------------------------
[ ID] Interval Transfer Bandwidth
[1888] local 192.168.1.169 port 2318 connected with 192.168.1.251 port 999
[1888] 0.0-30.0 sec 70120 KBytes 2337 KBytes/sec
[1868] local 192.168.1.169 port 999 connected with 192.168.1.251 port 32787
[1868] 0.0-30.0 sec 81504 KBytes 2716 KBytes/sec

So I am getting 15-21 Mbps of 54 theoretical - THAT SUCKS!!! [27-38% efficiency]

802.11b, encryption off.
------------------------------------------------------------
[ ID] Interval Transfer Bandwidth
[1888] local 192.168.1.169 port 2353 connected with 192.168.1.251 port 999
[1888] 0.0-30.0 sec 14176 KBytes 472 KBytes/sec
[1868] local 192.168.1.169 port 999 connected with 192.168.1.251 port 32788
[1868] 0.0-30.0 sec 12640 KBytes 421 KBytes/sec

So that is 3.3-3.7Mbps of 11 theoretical - guess that G ain't so bad - it IS about 5x faster! [30-34%]

Just for shits, I switched the G router into B/G mixed mode environment... 802.11g (with b compat) [no encryption] [results about same as G only] I tried putting both NICs in the laptop at once, and things just got ugly. Guess with only one laptop I cannot get the B to interfere enough with the G... I will try that NITRO stuff again... maybe tomorrow, maybe this weekend.

Don't put a WD drive in a RAID system

Pound your hardware much harder than Prime95

Using M$'s official hardware pounder:

http://www.microsoft.com/whdc/hwtest/default.mspx

Get Active Desktop with IE6 on NT4

ie6setup.exe /c:"ie6wzd /e:IE4Shell NTx86 /I:Y"

Samba WinXP Pro Mapped Drive Problem

You can see my original ordeal here.

Problem:
I am sure everyone is sick of hearing Samba questions, but this is driving me nuts. I have had a samba share setup for almost two years but I upgraded my desktop to WinXP Pro and it is driving me nuts!

Some background:
Running Samba 2.2.7

I am not doing anything fancy on samba - no PDC or anything. Plain ol' Workgroup. Example section:

[shared]
comment = Shared Files
path = /share/shared
public = yes
writable = yes
write list = me, acekitty
printable = no
force user = me
force group = me

I have this share mapped to my drive S on the WinXP machine. For some reason, the first time I double click in Explorer on the drive (after 'n' minutes of not accessing recently), explorer just hangs for like 2 minutes. Then it comes back like nothing was wrong! No errors on the server side. I have done the "Scheduled Tasks" possible problem fix I have seen many places:

When you connect to another computer, Windows checks for any Scheduled tasks on that computer. This can take up to 30 seconds. Open regedit and browse to key:
HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/Current Version/Explorer/RemoteComputer/NameSpace
Delete the {D6277990-4C6A-11CF-8D87-00AA0060F5BF} sub-key and reboot.

So, are you ready for the weirdest part of this problem? I am also running WinXP Pro on my laptop and it has NEVER had this problem from day 1!?!?

Absolutely any help would be greatly appreciated.

  • RR

Solution:

After tons and tons of research I learned that Samba was NOT the problem!

It was just plain ol' Windows being stupid. First, I found this page: here which I am linking here because if anyone else ever stumbles upon this post it may fix their problem, and it shows some control panel that there seems to be no other way to reach!?!?

Next I found (part of) my solution here.

It seems that the service "WebClient" is what is screwing me over. However... combining these two solutions STILL didn't quite work for me... every time I booted up I had to re-enter my share passwords!

Which brings me to why the problem is so original (IMO). I have only one user on this machine, with no password. So WinXP was automagically booting into that account. To get the mounted share to work, I had to do the following fun:

  1. Run 'control userpasswords2' and wipe all remembered passwords.
  2. Add a password to my WinXP account (whose name has always matched the samba server account).
  3. Use TweakUI to automatic login the user on bootup.
  4. Disable the 'WebClient' service.
  5. Reboot

I tried various permutations, and this was the only one that worked, so all the steps seemed to be required. This does not explain why my laptop has worked fine from day one. They both have the same NetBIOS settings, host files, mapped drives, etc, etc...

Thanx for trying! I now have my M, P, S, and W drives back!

  • RR

Recovery Console

Install the Recovery Console on Your Computer

You can install the Recovery Console as an option on your startup menu and use it to recover your system in the event that safe mode and other startup options do not work. This tool is for advanced users.

  • With Windows XP running, insert your Windows XP CD in the drive, and click Exit when the installation options are displayed.
  • Click Start, click Run, and then type D:\i386\winnt32.exe /cmdcons Where D: is the CD-ROM drive letter, and then press Enter. (There is a space between .exe and the slash.)
  • Follow the instructions on screen to install the Recovery Console, and when the installation is complete, restart your computer. The Recovery Console will show up in the list of available operating systems in the Startup menu. You must be an administrator to use the Recovery Console.

If the i386 directory is already installed on your computer (as might be the case in computers purchased with Windows XP pre-installed), you can use the same syntax as in Step 2, using the [path]\i386 directory without having to use the CD.

An alternative method is to boot to the CD and start WINNT.EXE, then when prompted to Install or Repair, click Repair, which installs the Recovery Console for you.

If Windows XP will not start, you can run the Recovery Console from the Setup CD.

Improve Core System Performance

On systems with large amount of RAM this tweak can be enabled to force the core Windows system to be kept in memory and not paged to disk.

http://www.winguides.com/registry/display.php/399/

Registry Settings

System Key: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
Value Name: DisablePagingExecutive
Data Type: REG_DWORD (DWORD Value)
Value Data: (0 = default, 1 = disable system paging)

Mis-ID'd Hard Drive

Problem: I have an 80GB Maxtor hooked up to the on-board IDE using a nice fancy 80 pin rounded cable. My problem is that when I cold boot, it ID's the hard drive as a "MAXTOR ROMULUS" and then says error with the drive. I hit ctrl-alt-del and it reboots, properly IDs, and boots fine. Any ideas? I have messed with the IDE delay, up to 3 seconds didn't fix it...

Solution: Turns out that drive didn't like to be the 'Slave' without a 'Master'. Never saw that before and I have had Master-less drives before...

Show All Hidden Devices in Device Manager

Devices that are installed but are not currently connected to the computer (such as a Universal Serial Bus (USB) device or "ghosted" devices) are not normally displayed in Device Manager. This tweak causes all devices to be shown.

http://www.winguides.com/registry/display.php/1107/

Registry Settings

System Key: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
Value Name: DEVMGR_SHOW_NONPRESENT_DEVICES
Data Type: REG_SZ (String Value)
Value Data: (1 = show all hidden devices)

UT Server on Laptop Problem

Don't remember how I figured it out... but I remember it took months. If your UT server is playing super crappy on a laptop under WinME (or WinXP), try running [email protected] or distributed.net's RC5 cracker. It worked for me under both OSs.

Mounting a Drive in a Windows 2000 Folder

Mounting a Drive in a Windows 2000 Folder

By Jim Pile

Reader Paul T. asks the following Windows 2000 question:

"I have a small (5.2 GB) drive that I would like to add to my Windows 2000 installation. I would prefer to add the extra 5.2 GB to my existing Drive C. Is there an easy way to do this?" You can assign an NTFS drive to a folder on another NTFS drive. When you do this, the contents of the added drive appear in this new folder. For example, if you add your 5.2 GB drive and assign it to a folder in Drive C named \Extra Data, then you have effectively added the contents of the new drive to your C drive. After you install and format your new drive, right-click My Computer and choose Manage. When the Computer Management dialog box opens, click Disk Management. Now, in the right pane of the dialog box, right-click your new drive and choose 'Change Drive Letter and Path'. If there is already a drive letter assigned, click Remove. Next, click Add. When the Add New Drive Letter or Path dialog box opens, select the 'Mount in this NTFS folder' radio button and click Browse. Click Drive C to select it and then click New Folder. Name the folder and click OK. Back in the Add New Drive Letter or Path dialog box, click OK to close the dialog box and apply your folder selection. Your new drive will now appear in your newly created Drive C folder. You can use the same procedure in Windows XP.