Down - a shutdown command for NT/Windows 2000

Down is a little command line utility to shutdown, reboot, poweroff, logoff, and suspend or hibernate (Windows 2000) the local or a remote machine.

Down is Freeware, you can use it for whatever you want - but on your own risk :-)

Special Features

Most Shutdown-tools for NT/2k does not allow to poweroff, suspend or hibernate a remote machine. This comes from a limitation in the NT system API calls used to do a remote shutdown.

Down does not have this limitations.

Synopis

If you start the tool without any arguments, it will shutdown the local machine. The advanced syntax is available by passing the /? help switch:

Down 2.1 (LSTools 1.5) - shutdown, reboot, hibernate or logoff a computer
Freeware. Copyright (c) 1997-2001 LoSOFT Softwaretechnik. http://www.losoft.de/

USAGE: down [\\COMPUTER [/C | /I] ] [/R | /L | /P | /S | /H | /A ]
            [/Q] [/F] [/U:Username,Password] [Time] [Message]
    \\COMPUTER   - name of machine to shutdown. Default is local machine.
    /C[opy]      - overrides existing version of down.exe on machine
    /I[nstall]   - just do a /Copy without shutting down machine
    /R[eboot]    - reboot computer
    /L[ogoff]    - logoff current user (local machine only)
    /P[ower]     - power off computer (only APM enabled systems)
    /S[uspend]   - suspend computer (only Win2k with ACPI)
    /H[ibernate] - go into hibernation (only Win2k)
    /A[bort]     - abort pending shutdown or reboot operation
    /Q[uiet]     - do not ask for confirmation
    /F[orce]     - force applications to close
    /U[ser]:     - login with this account/password
    Time         - number of seconds to proceed (only shutdown or reboot)
    Message      - message to display (only shutdown or reboot)

Note: NT does not support the /P /S /H options on a remote machine. To come
      around this, down.exe copies itself to \\COMPUTER\Admin$\System32 and
      is then started as a service. You need Admin privileges for this.

The "trick"

To be able to poweroff, suspend or hibernate a remote machine Down.exe needs to execute itself on the remote machine. For this the program copies itself and the needed NTErr10.dll to the System32 folder on the remote machine. Afterwards it installs itself as a service on this machine and starts the service, which executes the necessary code to poweroff, suspend or hibernate.

The Down.exe and NTErr10.dll files are not removed afterwards from the remote machine. They are together only 40kb in size and this makes the command also available on the remote machine. Down.exe does not copy itself to the remote machine, if there already exists a version of it in the System32 folder on that machine. Using the /C or /I options you can force copying it to the remote machine. This is useful if you want to install a newer version.

The self-copying uses the Admin$ share on the destination computer. If this share has been disabled you have to copy the files down.exe and NTErr10.dll "by hand" to the System32 folder of the remote machine. Because, as stated above, down.exe does not delete itself after executing, you have to do this only once.

Newest Version

The newest version is always available at http://www.losoft.de/

The Author

Please feel free to send comments, questions and donations :-) to:

LoSOFT Softwaretechnik
Daniel Lohmann
Rheinstr. 34
D-56068 Koblenz
Germany

daniel@losoft.de