Version History --------------- 1.70 - Initial Release 1.71 - Added ability to specify the IP address for listening for connections. This can be used if the host is multi-homed (has mulitple IP addresses) and you only want to listen on one. 1.80 - Added ability to specify the default window type of commands run through rsh. Specified in the Control Panel applet. - Now recognizes "internal" commands (DIR, TYPE, etc.) and prefixes with "cmd /c" automatically. Previously, this had to be specified in the rsh command. 1.81 - Corrected a memory/handle leak problem. 1.82 - When reading the options from the registry (specified in the Control Panel), the service was requiring full access to the registry options, including write access, even though it did not write. It now only requires read access, so if the service was originally created by an administrator and then changed to run in another user's context, that user will not need to be granted write access to RSHD/NT's registry entries. - Leading spaces in Control Panel options will be ignored. Previously, if you accidentally placed a leading space in front of an option in the Control Panel applet, its value would be ignored by RSHD/95. - You will no longer receive an "End Task" dialog box if you log out while a program is being run through RSHD/95. Previously, if a long-running program was run through RSHD/95 (by an rsh command) and the user on the workstation running RSHD/95 logged out, Win95 would display a dialog box asking if you want to wait for the task to end or end the task before it would allow you to log out. (If you pressed the End Task button, it would not end the program however.) 1.83 - When checking the Security File, the comparison of host names and user names is now not case sensitive. - If you are using a Mesassge File, RSHD/95 will now output the value of the PATH environment variable when RSHD/95 starts in the file. - Some changes were made that will allow RSHD/95 to service the rsh command in a limited manner when the service is NOT running as the user "System" (the default). This user is specified in the Services applet in the Control Panel. By default, RSHD/NT runs in the context of the special user "System". You can change the setup to have RSHD/NT run as a different user, thereby inheriting the security imposed on that user. However, Windows NT does not allow access to the NT desktop to any other user besides "System". So, when running as a non-System user, NT creates an invisible desktop and runs the programs on it. Since you cannot see this desktop, you will not be able to run interactive Windows programs through rsh if you do not run RSHD/NT as the System user. You will be able to use rsh to execute Console applications (and capture stdout/stderr) and non-interactive Windows programs. You will NOT be able to send keystrokes to any programs, however. 1.90 - New Control Panel Applet, using tabbed dialogs for easier use. - The RSH command will now work for certain commands when RSHD/NT is running in the context of a user other than System. It will allow you to run non-interactive commands only. You cannot send keys to the application, unless the user RSHD/NT is running as is logged in on the workstation. - In the RSHD/NT Control Panel applet, you can now specify a user and password to be used for all RCP copies. If you specify a valid user and password in those fields, when a file is copied from or to the system, RSHD/NT will log in as that user. It will read and write all files as that user, so any restrictions on that user will be in effect when reading files. Also, all files created will be owned by that user. This allows you to run RSHD/NT as the System user so all features of the rsh command are available, but allows you to enforce security for file copies. This also solves problems when accessing network drives, since the System user cannot access some network resources. - The Listen Backlog parameter now defaults to 100 instead of 5. Microsoft has increased the maximum limit from 5 to 100 in NT 3.51. - Previously, Windows 95 specific errors were returned to the client as Win95 error numbers with no description. Now, if an Win95 specific error occurs, RSHD/NT will attempt to get the error description from Windows 95 and return the description to the client. - There is now an option in the Control Panel applet to disable the detection of "internal" DOS commands, such as DIR and TYPE. This is useful if you are not using the standard Win95 command interpreter and you do not wand "command.com /c" to be prefixed to these commands. 1.91 - Was not changing time of the files created when the -p option of the RCP command was used to preserve file access/modification times. - Added more detailed messages at message level 4 when processing the Security File entries to aid in debugging. - The RSHD/95 setup program will now stop and delete the RSHD/95 service if it exists before copying files, so it is not necessary to stop the service before reinstalling. 2.00 - Capture of stdout/stderr is done in "real time" instead of being buffered until the end of the command. - RCP spoofing prefixes for Sun and VAX VMS are recognized internally, so they do not need to be specified in the Control Panel. - An incompatibility with Sun's RCP has been corrected. - Can specify a home directory for RCP copies. - Can specify an initial working directory for RSHD/95. - Can specify a file containing environment variables, which will be set for commands execute through RSHD/95. - Can specify a default command interpreter for internal commands. - Can specify a list of "internal" commands and the default command interpreter will be used for these commands. - Can disable rsh servicing, incoming rcp servicing, or outgoing rcp servicing. - Can limit rsh to executing a list of specified commands. - Can specify that the command interpreter is to be prefixed to every command. - Special commands available to shutdown or reboot the system using rsh. Use: rsh ntsystem "<[INTERNAL]>" shutdown or rsh ntsystem "<[INTERNAL]>" reboot "<[INTERNAL]>" can be abbreviated to "<[INT]>". - If the default window type is Minimized or Hidden and keystrokes are specified in the rsh command, the default window type is overridden and the program will be run in a normal window so that it receives the keystrokes. - In the RSHD/95 Control Panel applet, you can press to view help on the options available. 2.01 - Uses a different method of capturing stdout/stderr under NT 4.0, since Microsoft decided to break the way NT 3.51 handled it. - Corrected a problem that could occur when an rsh or rcp was aborted with an interrupt key before the connection was fully negotiated. It would continually attempt to establish the stderr channel with the now-disconnected rsh or rcp until it reached a certain limit. 2.02 - Was not processing multiple environment variable files if they were specified. - Could abort on very long commands if a message file was specified. 2.03 - Now turns on "keepalive" option by default. 2.04 - Internal release. 2.05 - Now redirects standard input also. Previously, it only sent stdout/stderr back to the rsh command. It will now read stdin from rsh. 2.06 - Found workaround for NT 4.0 so that sockets can be passed as stdout/sterr/stdin handles. Sockets are now used instead of pipes. - Corrected a problem with rcp where it would hang if you tried to rcp a zero-length file from the Win95 system with ASCII conversion enabled. - Added registry options (which must be set using REGEDT32) to allow disabling of the Nagle algorithm on the sockets used by RSHD/95. The entries are: ListenNoDelay, ConnNoDelay, StderrNoDelay. Setting these to the string (REG_SZ) "1" will disable Nagle. Setting to "0" will enable. It is enabled by default. The entries must be placed in: \HKEY_LOCAL_MACHINE\Software\DenicompSystems\WRSHDNT\Setup (for NT) or: \HKEY_LOCAL_MACHINE\Software\DenicompSystems\WRSHD95\Setup (for 95). - Added an option to the rsh command that allows you to disable Nagle for specific commands. The option is specified like the window type options: "<[NODELAY]>". For example: rsh nt "<[NODELAY]>" command 2.07 - Removed use of sockets for stdin/stdout/stderr under NT 4.0. Now defaults to pipes like it did before 2.06. For some reason, sockets caused problems when the program executed created its own pipes to other programs for stdout/stdin/stderr. Seems to be an NT problem. Socket usage can be re-enabled by setting the following registry entry to the value "0": \HKEY_LOCAL_SYSTEM\Software\DenicompSystems\WRSHDNT\Setup\UsePipes This entry may need to be added (create as type String (REG_SZ)). 2.08 - Now allows wildcards in the security file. You can use "*" (matches multiple characters), "?" (matches a single character), "[]" (matches a list or range of characters), and "[!]" (matches characters NOT in a list or range of characters). Wildcards can be used anywhere in the name or IP address in the security file. For example, 89.5.6.*, joe@*.netcom.com. - Some internal error messages that should have been returned to rsh were not being returned properly. The rsh command would report that the connection was reset or some other socket error. - Was not properly handling things when an environment variable file was specified, but the file did not exist. It now does and uses the inherited environment when the file does not exist. - You can now run "wrshd95 /v" to display the current version number. 2.09 - The internal commands allowed using the "<[INTERNAL]>" rsh extension would not work if you checked the option to run all commands through the command shell. 2.10 - If there is no Security File, Request Log, Deny Log, and Error Log specified, it will no longer look up the hostname of the client PC. This can speed things up, especially if using DNS and your DNS server is slow or is not functioning. - You can also disable the lookup of the client hostname by setting the following registry entry to "1": \HKEY_LOCAL_SYSTEM\Software\DenicompSystems\WRSHD95\Setup\DisableHostLookup This entry may need to be added (create as type String (REG_SZ)). By setting this entry to "1", you can still have a Security File and/or log files and avoid the hostname lookup. However, the logs will only reflect the IP address of clients and you can only use IP addresses in the Security File. 2.11 - When checking the security file, it was granting access if EITHER the remote user OR the local user was given permission. It now only grants access if BOTH users are given permission. Normally, the remote user and local user are the same (they are the user ID of your login on the remote system). However, if you use the -l option of rsh or the user@host:file specification in rcp, the local user will be the login user and the remote user will be the user specified on the command line. 2.12 - Added [SK2] option in keystroke string to allow alternate method of sending keystrokes to applications. For example, this would use the alternate method: rsh win95 "<[SK2]%Fx~>" myapp Only use [SK2] if the standard method does not work for some reason.