Logo
Copyright © 1997-2000 Mark Russinovich
Last updated October 6, 2000
Table of Contents
This page presents a continuously growing collection of applets that fill holes in the functionality that NT comes with out of the box.

  Autologon v1.0 Configure WinNT/2K auto-logon properties
  AutoRuns v1.2 Easily view autostart and startup programs configured on your system
  ClockRes v1.0 View the resolution of the system clock, which is also the maximum timer resolution
EFSDump v1.02 Dump information about Win2K encrypted files
  Hostname Convert IP addresses to host names and vice versa
  IsTrial v1.0 See if you have a trial version of WinNT/2K, and if so, when it will expire
  Junction 1.02 Create NTFS directory junctions
  LoadOrder v1.0 See the order in which devices are loaded on your WinNT/2K system
  PsTools v1.1 A collection of command-line tools including PsUptime, PsLoggedOn, and more.
  Streams v1.1 View NTFS file stream information
  Strings v2.02 Search files for ASCII or UNICODE strings
  Sync v2.0 Flush the WinNT/2K file system cache to disk
  VolumeId v1.0 Change the volume IDs of hard drives and floppy disks



Autologon
Windows NT/2K provides Registry settings that can be set so that a user is automatically logged in the next time the system would otherwise put up the logon dialog box. However, the Registry values are hidden very deep, and are a pain to configure. This program, Autologon, will do the Registry configuration for you, and allow you to enable and disable auto-logon when you want.

Autologon
easy enough to use. Just run autolog.exe, fill in the dialog, and hit Enable. To turn off auto-logon, hit Disable. If the DefaultPassword is NULL, autologon will only occur once and then be disabled. Also, if the shift key is held down before the system performs an autologon, the autologon will be disabled for that logon.

Download Autologon (8KB)

Download Autologon Source (21KB)

AutoRuns v1.2
This applet shows you what programs are configured to run during system bootup or login. These programs include ones in your startup folder, Run, RunOnce, and other Registry keys. You'll probably be surprised at how many executables are launched automatically. AutoRuns works on Windows 9x and Windows NT/2K. (The complete list of auto-run locations was obtained from David Solomon's "Windows 2000 Internals" seminar)

Download AutoRuns (32KB)

Download AutoRuns plus Source (40KB)

ClockRes
Ever wondered what the resolution of the system clock was, or perhaps the maximum timer resolution that your application could obtain? The answer lies in a simple function named GetSystemTimeAdjustment, and the ClockRes applet performs the function and shows you the result. See "Inside Windows NT High Resolution Timers" for information on increasing the resolution. ClockRes works on Windows NT/2K only, and does not take any command-line arguments.

Download ClockRes (12KB)

EFSDump
Windows 2000 introduces the Encrypting File System (EFS) so that users can protect their sensitive data. Several new APIs make their debut to support this factility, including one - QueryUsersOnEncryptedFile - that lets you see who has access to encrypted files. This applet uses the API to show you what accounts are authorized to access encrypted files. Full source code is included.

Usage: efsdump [-s] <file or directory>

-s         Recurse subdirectories.

EFSDump takes wildcards e.g. 'efsdump *.txt'.

Download EFSDump (23KB)

Hostname
Hostname is a very simply utility that takes either an IP address (e.g. 123.456.7.8), or a host name (e.g. ftp.ntinternals.com), and performs a translation into its inverse form. For example, if you pass hostname an IP address, you'll get back a host name, and if you pass it a host name it will give you the corresponding IP address. It runs under Windows 95/98 and Windows NT/2K.

Usage: hostname [IP address, hostname]

Download hostname (11KB)

IsTrial
Microsoft makes available a 120-day time-locked version of Windows NT, and their Beta versions expire 240 days after they are installed. However, Microsoft does not provide any means of determining if the version of NT you are running is a time-locked version or not. Many organizations run into problems when an installation they had forgotten was a trial version suddenly announces it is shutting down. This applet will tell you whether your systems are running trial versions of NT, and if they are, their exact expiration times.

Usage: istrial

Download IsTrial (13KB)

Junction
Win2K's version of NTFS supports directory symbolic links, where a directory serves as a symbolic link to another directory on the computer. For example, if the directory D:\SYMLINK specified C:\WINNT\SYSTEM32 as its target, then an application accessing D:\SYMLINK\DRIVERS would in reality be accessing C:\WINNT\SYSTEM32\DRIVERS. Directory symbolic links are known as NTFS junctions in Win2K. Unfortunately, Win2K comes with no tools for creating junctions - you have to purchase the Win2K Resource Kit, which comes the linkd program for creating junctions. I therefore decided to write my own junction-creating tool: Junction. Junction not only allows you to create NTFS junctions, it allows you to see if files or directories are actually reparse points. Reparse points are the mechanism on which NTFS junctions are based, and they are used by Win2K's Remote Storage Service (RSS), as well as volume mount points.

If you want to view reparse information, the usage for Junction is the following:

Usage: junction [-s] <directory or file name>

-s         Recurse subdirectories.

If you want to create or delete a junction, use Junction like this:

Usage: junction [-d] <junction directory> [<junction target>]

To delete a junction specify the -d switch and the junction name.

Download Junction (16KB)

Download Junction Source (22KB)

LoadOrder
This applet shows you the order that a Windows NT or Windows 2000 system loads device drivers. Note that on Windows 2000 plug-and-play drivers may actually load in a different order than the one calculated, because plug-and-play drivers are loaded on demand during device detection and enumeration.


Download LoadOrder (16KB)
Streams
The NTFS file system provides applications the ability to create alternate data streams of information. By default, all data is stored in a file's main unnamed data stream, but by using the syntax "file:stream", you are able to read and write to alternates. Not all applications are written to access alternate streams, but you can demonstrate streams very simply. First, change to a directory on a NTFS drive from within a command prompt. Next, type "echo hello > test:stream". You've just created a stream named 'stream' that is associated with the file 'test'. Note that when you look at the size of test it is reported as 0, and the file looks empty when opened in any text editor. To see your stream enter "more < test:stream" (the type command doesn't accept stream syntax so you have to use more).

NT does not come with any tools that let you see which NTFS files have streams associated with them, so I've written one myself. Streams will examine the files you specify and inform you of the name and sizes of any named streams it encounters within those files. Streams makes use of an undocumented native function for retrieving file stream information. Full source code is included.

Usage: streams [-s] <file or directory>

-s         Recurse subdirectories.

Streams takes wildcards e.g. 'streams *.txt'.

Download Streams (19KB)
Strings
Working on NT and Win2K means that executables and object files will many times have embedded UNICODE strings that you cannot easily see with a standard ASCII strings or grep programs. So we decided to roll our own. Strings just scans the file you pass it for UNICODE (or ASCII) strings of a default length of 3 or more UNICODE (or ASCII) characters. Note that it works under Windows 95 as well.

Usage: strings [-s] [-a] [-n X] <file or directory>

Strings takes wild-card expressions for file names, and additional command line parameters are defined as follows:

-s Recurse subdirectories.
-a Scan for ASCII instead of UNICODE
-n X Strings must be a minimum of X characters in length.

To search one or more files for the presence of a particular sting using strings use a command like this:

strings * | findstr /i TextToSearchFor

Download strings (14KB)

Sync
UNIX provides a standard utility called sync, which can be used to direct the operating system to flush all file system data to disk in order to insure that it is stable and won't be lost in case of a system failure. Otherwise, any modified data present in the cache would be lost. Here is a an equivalent that I wrote, called Sync, that works on both Windows NT/2K and Windows 95/98. Use it whenever you want to know that modified file data is safely stored on your hard drives. Unfortunately, Sync requires administrative privileges to run. This version, 2.0, also lets you flush removable drives such as ZIP drives. Source code to the NT-only version of Sync is available on the Dr. Dobb's Journal Sysinternals CD-ROM

Usage: sync [-r | drive letter list]

-r         Flush removable drives.

Specifying specific drives (e.g. "c e") will result in Sync only flushing those drives.

Download Sync (18KB)

Download Sync for Compaq Alpha (39KB)

VolumeID
While WinNT/2K and Windows 9x's built-in Label utility lets you change the labels of disk volumes, it does not provide any means for changing volume ids. This utiltity, Volumeid, allows you to change the ids of FAT and NTFS disks (floppies or hard drives) on both Windows NT/2K and Windows 9x.

Usage: volumeid <driveletter:> xxxx-xxxx

Note that changes on NTFS volumes won't be visible until the next reboot. In addition, you should shut down any applications you have running before changing a volume id. NT may become confused and think that the media (disk) has changed after a FAT volume id has changed and pop up messages indicating that you should reinsert the original disk (!). It may then fail the disk requests of applications using those drives.

Download VolumeID (15KB)


Back to Top