No changes to the script other than it now includes RealVNC 4.1.2.
This is the same as version 8a (below) but with improved password handling and some tweaks to the XP firewall.
The VNCPWD process has been tweaked so that it works for version 4 of WinVNC. Use "/pwd mypassword" to try it.
For those of you with XP SP 2 firewalls, I've added "/firewall" switch. This checks for the NETSH program on the remote target and if it finds it, the script adds an exception to the firewall on port 5900. This could easily be tweaked to allow local subnet or additional ports if required. Use with care! :-)
This is the same script as fp8 except it includes support for the UltraVNC 1.0 package. If you've not been and checked out UltraVNC's features, I urge you to do so! Here's the deal on what's in 8.0a:
Added UltraVNC support for NT, 2000 and XP. Use /ultra to install (or /ultraNTLM, see below)
By default Fastpush disables all access to the UltraVNC panel.
The script changes the registry to allow the local administrator access to the UltraVNC config.
/ultraNTLM will install UltraVNC 1.0 and enable NTLM authentication logon (Active Directory local NT auth).
Setting the ultraNTLM variable to "yes" will force the above behaviour as standard.
Because UltraVNC is based on the RealVNC 3 code, command line passwords will work.
I've made "7.2g" the main version - version 8. (7.2a = 7.3, etc). Here's a list of the key changes:
Added a routine to capture the current path and store it as "nowpath". If a host directory is set then the script CD's to it and then uses nowpath to jump back.
Added routines to detect if the necessary VNC files are present in the source folder. If not, an error is logged. These are :real4check and :real3check
Put in some more boilerplates to display what the script is doing at key procedures (remote logon, IP pinging, etc).
Renamed the script to fpXX where xx is the version number. 5) Removed some of the older VNC distributions from the package and from the script too.
Added /wait option. This option causes a pause after each main procedure.
Improved the path detection system.
Improved the flavour detection routine.
Changed the section marked "CHECKING START MENU". The script reads the settings from the target's registry and then uses a simple IF EXIST routine. This allows the script to see if the paths exist and if not, flag up an error. If the paths have been read incorrectly then the short cut installation routine is not going to work.
Fixed a typo in the WinVNC3 detection system. I'd misnamed the winvnc.exe file by mistake. Doh! :-)
Added a section (:copycheck) that checks that the critical files have been copied to the target computer before the a service installation is attempted.
The script now captures the current path and store it as "nowpath". If the script has the an install directory set, then the script CD's to it and then uses nowpath to jump back.
Added routines to detect if the necessary VNC files are present in the source folder. If not, an error is logged. These are :real4check and :real3check
I've added some more boilerplates to display what the script is doing at key procedures (remote logon, IP pinging, etc). Hopefully this should make the installation process more transparent.
Renamed the script to fpXX where xx is the version number. I should be able to bundle new test versions in as time goes by.
Removed some of the older VNC distributions from the zip file and removed the support from the script too. This is partly to do with cutting down the download size but also a lot of the older distributions just aren't used any more. Fastpush just handles RealVNC (versions 3.3.7, 4.0 and 4.11), UltraVNC and TightVNC.
Added the /wait command option. This option causes a pause after each
main procedure. Useful for bug fixing! ![]()
Improved the path detection system.
I've left version 7.1 as the main release as it seems fairly stable (famous last words). The beta release - 7.2 - has a few minor alterations but nothing ground breaking. I've put in some more error handling routines.
The script will check the fplocation variable and attempt to find it. If it cannot, or if the variable contains space, fastpush stops and reports the error.
I've amended the way the script checks the command line variables and this is now used to specify what source folder fastpush will pull the installation files from. There's also a routine to make sure that the source folder does exist.
The issue surrounding the Start Menu bug for German language installs hasn't gone away yet. I'm waiting on some feedback.
Wow, it's been a while eh? :-)
RealVNC 4 has been relased and you can install that using /real4 as a command switch. I've also added the last release of TightVNC (now with file transfers) to Fastpush too. Don't forget to download the real4 and TightVNC 129 folders from the downloads area to make these work!
I've noticed some odd performance with Xcmd recently. If you want to use PSEXEC then you can, but you'll need to download that from the sysinternals' web site. I can't store it here for licencing reasons.
Yes it's a big jump from 6.6 to 7 but I've made some pretty big changes.
I'm getting a lot of traffic about problems with the REG command. This is because there are at least 3 different versions kicking about in Windows installs (1.05, 2 and v3). Version 3 comes built into XP / Server 2003 and works fine on Windows 2000. I've changed all of the REG commands in fastpush to use this new syntax. Make sure you remove the old REG.EXE from the UTILS folder and download the new one if you don't already have it.
I've (finally) added in support for RealVNC beta 4. Use /realb4 to install it. Installing it removes any old VNC3 server, program and shortcuts. Likewise installation of VNC3 will remove an existing VNC4 install. The icons for VNC3 and VNC4 are both different so there's a new icon generation routing too.
Thanks to Ales and Van for their bug fixes and suggestions for code improvements.
I've moved the shortcut creation routine after the proceedure that starts up the VNC service. This is helpful as the shortcuts are nice but the service starting is critical.
Fiddled about with the nightmare that is path detection. Thanks to those of you who sent in various ideas and suggestions. You can have a blank FPLocation varaible and run fastpush directly from it's host folder. If you want to run it off a path statement then you'll need to have a the FPlocation variable set accordingly.
I'm getting more and more XP users emailing me over problems with the REG tool. The path tweak (above) should mean that the REG program found in \utils should be executed before the one found locally in XP's system32 folder. If not, well I guess I'll think about using the later edition of REG provided that will run on NT4.
Someone asked about running fastpush from a UNC which I think you can do using the NTreskit tools of PUSHD and POPD. The former should let you map a drive on the fly and CD into it and the latter one will clean up and remove the link afterwards. This is very experimental!
I think I've worked out a hack to shorten the paths. This is very useful for non-english Windows installations. More on that later.
Thanks to Ivan Brunello, Morten Lunde and Jason Passow for writing in with bug reports & fixes.
Removed a large number of the old VNC releases from the main download. These are now available as oldvnc.zip. Just unzip them to your Fastpush folder and the directory structure will be recreated.
Added support in for UltraVNC release candidate 1.091 (compiled from CVS). Please visit the UltraVNC home page for more information. To upgrade (so to speak) that release of Ultra to the next edition - just backup the old folder and replace the Ultra folder contents with the new programs.
Changed FP to use Xcmd rather than Psexec as I can't bundle the latter into the zip.
Put in set copycmd=/y so XP and Windows 2000 don't ask if you want to overwrite the files. (Thanks to James Edwards for that tip).
Used Mauro Castadi's VNCEnc program (which encodes passwords to a reg file on the fly). You can use this with /pwd password and Fastpush will use this new code in place of any other setting (it will override the standard machine.ini, custom ini and machine specific files). You have been warned. :-)
Added a check to find if the folder that the fplocation varaible points to actually exisits. If it doesn't then FP tries to use the current folder. If that doesn't contain vnc.cmd - then the script throws up and error and finishes.
Added in RealVNC 3.3.7.
Some minor code changes and the addition of TightVNC 1.2.8 and the code improved version of RealVNC 3.3.3 R9 (although I'm not sure what the official name for this will be as yet).
I've not added UltraVNC in just yet as the team are busy fixing errors and releasing new betas. When v1 comes out, I'll include it.
Fixed a small bug in the shortcut creation mechanism and also made the use of MyDetails optional again. (Still working on an error to recreate admin$ on the fly).
Changed the shortcut creation system (again). It seems that NT doesn't support the stripped of quote marks with funky echo replacements. I've ripped out that whole section and replaced it with two freeware tools - shortcut and psexec. Thanks to Marty List for allowing me to bundle shortcut.exe. His web site is here.
Sysinternals have written the other program but for licensing issues, they don't want me to include that in the zipped download. You'll have to visit their site and download the program yourself.
It works by FastPush dynamically creating a batch file on the remote box. Next, PsExec is used to execute this on the remote system and that in turn creates the shortcuts on the local system.
I've had reports that the old script couldn't handle the StartMenu registry settings under a German install of Windows. More on that later. On another note, a german install of Windows reports "Getrennt" when a drive is disconnceted - so I've added that in too.
Bug fix to version 5.8. If the script is set to fire up VNC on a manual basis, then SC needs to be set to "demand" rather than manual. ("It ain't no thing" </jive>). Thanks to Jaye Tillson for spotting that one.
IMPORTANT!! I've rearranged the folders where fastpush gets the different flavours from. I strongly suggest you download and unzip the latest zip file.
Added in support for RealVNC and is available under switch /real336. The script will attempt to copy the othread2.dll file as RealVNC doesn't appear to use omnithread2_rt.dll anymore. I've had to add two IF EXISTS statements to the copying section to cover this and prevent an error. If you want to make RealVNC your default installation option - set the flav varaible to real336.
Put in a proper variable name for the target PC rather than using %1. This is so the script can strip off prefixed "\\" symbolds. This allows Fastpush to be called via a GUI (which someone else is working on <w>). I'll also look into the SHIFT command as that'll allow for more than 9 command switches at any one time.
Put a new boiler plate in to show the amount of VNC flavours available and supported. Call this up with /flavour to get a list.
No support for UltraVNC (yet) as the developers say it's still in beta.
The MyDetails DOS script is no more (it is an ex-script </python>) and instead a nice shiney program has replaced it (thanks to Darren Vernon for that one). A shortcut is created on the desktop.
Put Jonathan Pitts' suggestion into the script. He reported that using a custom ini file didn't work as I wasn't calling the checking routine. Whoops. :-) Thanks for your help with that Jonathan!
Added another command option and tweakable variable to the script. 99% of the time you'll want WinVNC to run as a service on the remote system, but there are occiasions where you might want to have it set to manual. Set the "Service" variable to yesmakes the service start on boot. Setting it to "no" or using the /manual option stops this.
Having a manual setting is quite useful as you need to be admin / power user on the remote system to fire up the service. However, users can still request help sessions using the Add New Client mechanism.
Fixed a bug with the custom config option - aparantly I'd remmed out the routine that acutally applied it.
Changed the shortcut creation system. Firstly, the menus take the format of the new VNC install which is more user friendly. Also, the shortcuts are created from a txt file called (oddly enough) "icons.txt". Each shortcut you want to create is read in so it's farily easy to remove the icons you don't want creating.
Folder name\ | Icon Name | Exe name | Arguments | icon file path and icon number
| windows style | working directory
VNC|Run VNC Server|Winvnc| |%vnchome%\winvnc.exe, 0|1|%vnchome%\|
(BTW, that should all be on one line - your browser might line break it).
Each record uses the pipe character " | " to deliminate and you can use DOS variable in the different places. Basically, a looped procedure runs as part of FP and scans each record in a line at a time. It then produces a VBS script and that's what's makes the icons.
On another note, the script will now delete VNC icons that are held under the all users' programs vnc folder.
I'm also going through some suggestions / code snippets so that FP does or doesn't install VNC as a service, etc. More on that when I get time.
Added in support for EsVNC 1.1.2. Use with the switch /esvnc112.
Some eagle eyed admins have pointed out a number of bugs this time around. James Edwards suggests that using "copycmd=/y" to solve the NT/2000 xcopy problem. It's one less registry read, so I've put that in too. Jason Lamb says that FP doesn't pick up on long path names - so I've put his fix in (in the Find Current Directory bit). Alex Hirt has kindly pointed out that the winvnc helper wasn't being deleted on an uninstall. I've altered that so it should now be removed.
Is it me or do you people have too much time on your hands this month? ;-)
Turned off WSH my details icon creation due to legacy problems (NT4 doesn't always has WSH after all). I've gone for an easy to use and more reliable DOS script - not as pretty, but hey, it works 99.9% of the time - and that's called via the My Details icons off the user's desktop. The WSH stuff is still in there if any of you want to go for that option instead.
Added in support for the latest (and greatest) edition of VNC - version 3.3.4. Use /vnc334 if you want to install it.
Added TightVNC 1.2.6 and it is available as /tight126 or /tightvnc (/tight124 and /tight125 are still available).
Altered the shortcut creation routine to save it's work to the %temp% directory. This is as some people use FastPush off a read only share and this was causing problems.
Replaced the old command line routines of "if %2 ==" with shorter for /f loops. Makes my life easier at least :-)
Added MachineReport.wsf script to winnt\system32 (source is \common under FP). This script can be executed by a user and it will tell you the host computer's name, IP address and domain membership. Thanks to Alex Angelopoulos for this little gem. I'll be adding this to the user's desktop as Machine Settings. This can be disabled by setting the macrep variable to no.
Added a routine to check for the existance of wscript.exe on the remote box (normally under winnt\system32). There's little point adding a WSF file if the remote box can't run it.
Latest releases of VNC projects including EsVNC 1.1.1 and TightVNC 1.2.5.
Added in esVNC to Fastpush. Use /esvnc to install that. EsVNC includes file transfer, new screen performance options and much more.
Why the big version change? Well, I'm using a Windows Scripting Host VBS script to create start menu icons on the remote machine. I'd like to say a big thanks to Alex Angelopoulos for helping me out on WSH code.
The script (should) check to see if Cscript (WSH command line) is available in your system32 folder. If it's not found - it skips the shortcut creation. You can use /noshortcut to disable creation on the occasional install.
As the shortcut thing is now in place, there is an extra variable you can set - called "shortcut" oddly enough. Setting this to yes means the system will always attempt to create them (subect to WSH being installed). Setting this to no will make the script skip creation.
The /remove option now removes any shortcuts from the "all users\vnc" folder.
The xcopy statement under Windows 2000 prompts if you want to overright the existing files, but adding /y breaks compatibility with NT. So..... there's a little routine which checks if you're running 2000 or NT and adjusts the xcopy statement as necessary. Anyone want to test this under XP? ;-)
Minor bug fixes.
On rare occasions an existing service could not be stopped and this would cause Fastpush to instantly stop. I've altered this to flag up a warning and suggest rebooting the remote machine. This fault only occurs when the remote VNC services hangs completely.
On Windows 2000 the script would ask if you wanted to overright existing VNC files. I've added a /y switch so it does so automatically. I'll be checking this under NT shortly.
Script now creates the VNC Start Menu shortcuts on the remote PC. This requires scut.exe and shortcut.exe (to be present in the utils folder). The next version will have this as an option and hopefully the ability to delete the shortcuts on an uninstall too.
Bug fixes to 4.2. Servicehelper wasn't being installed due to a path error (now fixed). Also, added the service helper key to the deletion routine. This is so it can be removed on an uninstall and removed / readded on an update
Added in new a command switch (/reg) and altered the way /config works.
/reg doesn't install any files to the remote box, instead it deletes any existing VNC registry settings and applies the new machine.ini file. Useful for mass updating VNC passwords.
/config will allow you to use a full path (c:\mypass\newpass.ini) to a regdir created ini file. If you're using the fplocation (see below) then the system will use that location if you don't supply a full path.
Altered boilerplate message to include more details on current logon details, what install method (reg only or file and reg)
Completely changed the way the path detection works. Seems a few folk had trouble
with the current path mechanism not working. Fixed and tested it on a clean
machine.
Minor bug fixes and cosmetic changes.
Constantin Kaplinsky has released the next version of his excellent TightVNC - version 1.2.3. You can visit his site here, although I've added a Tight123 folder to the downloads directory (make a folder called Tight123 under your fastpush folder and copy the new files into it). You'll also need version 3.9 of the script in order to use the /tight123 option. (hint: hold SHIFT then click to SAVE AS).
Fixed a problem with the path statement as sometimes the old path wasn't restored.
Replaced reg.exe version 1.4 with version 1.5 as I've had reports of trouble with the older program doing reg queries on XP based PCs.
Fixed a problem with /remove. The targetpath variable wasn't being set early enough for the script, so the Orl\VNC files where not being deleted.
Added Marcus Hulings' suggestion for an oldpath statement. If you like to sit in a dos prompt and run fastpush a lot, this change will stop the command file messing your path statement up.
Talking of paths - I've added a new variable in called fplocation. Add the folder location of vnc.cmd to this - but don't use any quotes - and then add this same path to your permanent path. You can now run fastpush direct from a DOS box or start + run menu. Don't add quotes around a long path name (i.e: "c:\my documents\fastpush3") as this will foul up the IF statements - I've put quotes in the rest of the script to handle long file names. Oh, Leaving the variable blank will mean vnc.cmd works when you're in it's source folder as per the old version.
NB: If you plan on using the /user switch when running this from the start menu, keep in mind that the username and password you specify will be in your run history! For security reasons, drop to the dos box if you plan to do that.
I didn't update the service creation part of the script to use the new progfiles variable. This doesn't affect English based installs of Windows, so they slipped through the net. Morten Lunde kindly pointed these out.
Fixed the problem with the script thinking you'd specified a config file when really you hadn't.
Added a version variable so you can tell which version of fastpush you're using.
Removed the need to use a spare drive letter. Fastpush now uses nothing but administrative shares to copy files.
Discovered a bug where if the remote share wasn't found, the script didn't bother to recreate it. That's now been fixed.
The script now checks to see if the temporary network drive already exists before any thing else is done. If so, it throws up a warning and exits. This is to stop fastpush using the wrong drive letter to install.
Script now deletes HKLM\Software\Orl\WinVNC3 & HKU\.Default\Orl registry keys (and subkeys) as a new install will not overright these existing keys.
/config switch allows you to use a specified ini file instead of the machine.ini settings that are normally applied. You could create a server.ini that has a different password to your default VNC rollouts and put IP address restrictions to only allow the IT group to get in. For clients, you could build a file that throws up a warning box and uses a specific password. All of these config files should be kept in the same folder as the vnc.cmd script.
PS: Don't include the servicehelper setting in it as that needs to be done dynamically.
PPS: Get the settings by configuring a test machine and then use regdir \registry\machine\software\orl\winvnc3 -r > mysettings.ini to grab the contents. Don't use regedit, it doesn't export the password values correctly!
Put the /noview switch back in as some ppl do use it. :-) Sorry guys! Don't forget you can make this a default of no (see below).
Added variables that you can tweak so you can have your own installation defaults.
These variables are flav, netdrv and viewer.
Flav = vnc (v 3.3.3 R7), vnc9 (vnc 3.3.3 R9), tightvnc (tightvnc), zvnc (VNC R 9 w/ Zebedee compression/encryption), tridia13 (Tridia 1.3), tridia14 (Tridia v1.4), tridia15 (Tridia 1.5) or tridia152 (tridia 1.52)
netdrv = Use this drive as the temporary drive letter for installation. You
can make this any drive except one that's in use <w>
viewer = Set this is yes to always install the viewer (unless you use /noview). Or, set this to default to no if you never want to install the viewer.
Added routine to check if the alternative drive letter was mapped with a net use sucessfully. I was planning on reading the local PC's registry and finding out what drives you *can't* have, but couldn't find the keys <w>. This routine works in detecting clashes of local drives or network maps.
Altered source folders. Ditched TightVNC ver 1 and replaced with TightVNC ver 2. Tidyed up Tridia folders to include 1.3, 1.4, 1.5 and 1.52. No changes to Zvnc.
/warning installs a 10 second warning box ("do you want to allow x.x.x.x to control this PC?"). NB: You should alter the ?10 range to include the IP range you want a warning from. See the VNC docs for more.
Changed routine that checks if PC is alive under IP. The search string now checks for TTL rather than reply. This is as TTL is pan-european + American. Thanks to Morten Lunde for that one.
Removed "/test" and "/noview" as I don't think they got used that much.
Added "/drive" and netdrv variable so you can specify what drive letter you want to use for connecting to the target. By default is drive q, but this is now easily changed. Routine scans to make sure only letters are used.
Installation now scans the registry and reads where NT is installed. This allows faultless (yeah right!) installation to PCs that don't have the standard WinNT folder (like Terminal Server or Windows 3.x / 9x upgrades). Again thanks to Morten Lunde for that one. This is why I've jumped from 2.5 to 3 as I considered this a big change in operation.
Script now scans registry to find "program files" as this is different under international installs. Thanks to Morten Lunde for this hack.
Used a few ideas from Stephen Mills' script (although it's a bit complex for me! <w>). Script now checks to see if a WinVNC service is active. If so, it stops and deletes it - otherwise it jumps to installing a new version.
VNC checks to see if you're trying to run it from a path, rather than it's host folder. If so, it drops out (thanks to S Mills for that one).
Jumped from Version 2.5 to 3.0 as I've added a number of new options and <ahem> code to the system.
Bugfixes! <sigh> Copying to an admin$ share seems a bit ropey when using
an IP address as the target.
The script now reads in the NT installation folder from the remote PC registry
and saves this as %folder%.
Changed boilerplate around to look prettier.
Script now adds itself to the front of the path. This is so the utils required (reg, sc, etc) are called from the vnc\utils folder. There was some hoo-har with the Windows 2000 Resource Kit and reg.exe - this should be fixed now.
Fastpush now uses the $admin share to copy omnithread_rt.dll into the NT/2000 system32 folder. Previously it only allowed installs to \winnt - which wouldn't be of any use to people who use/upgraded from Windows 9x or NT 3.51.
The new section is listed below:
REM Use the flavour variable to pick the right source folder for VNC if not exist "q:\program files\orl\vnc" md "q:\program files\orl\vnc" if "%noview%"=="no" copy %currentpath%\%flav%\v*.exe "q:\program files\orl\vnc" copy %currentpath%\%flav%\v*.dll "q:\program files\orl\vnc" REM Now use Admin$ so any NT folder can be used copy %currentpath%\%flav%\w*.* "q:\program files\orl\vnc" copy %currentpath%\%flav%\omni*.dll "\\%1\admin$\system32" if exist %currentpath%\%flav%\z*.* copy %currentpath%\%flav%\z*.* "q:\program files\orl\vnc"
Included Ryan Casey's routine to add a custom machine.ini on a machine name
basis.
His extra code replaces the section in the DEFAULT VNC SETTINGS AREA
REM INSTALL THE DEFAULT VNC SETTINGS Echo Installing the default settings for VNC into the remote registry. Please wait. regini -m \\%1 %currentpath%\common\machine.ini > nul if exist %currentpath%\common\%1.ini regini -m \\%1 %currentpath%\common\%1.ini > nul
Added the new version of Const Kaplinsky's TightVNC (1.2.1) to the distribution
(as well as keeping the old one).
Put in Dave Dyer's ZVNC which is a version of VNC that can use a Zebedee tunnel
(port 6000).
NB: To maintain compatibility between the existing installs of VNC and ZVNC. I've renamed Dave's files by dropping the z off the front of them. Normally the viewer would be zvncviewer.exe and the server is zwinvnc.exe. Renaming them was easier than messing about with all of the copy & registry file inputs.
Bugfixed the "reg" problem. Reg won't overwrite an exsiting key - plus it won't let you use double quotes. There is a big difference between ""c:\program files\orl\vnc\winvnc.exe" -servicehelper" and "c:\program files\orl\vnc\winvnc.exe -servicehelper".
The batch file now uses a common file for it's registry key info. The string value is created dynamically for each install. This would allow the servicehelper to work on any drive letter (which *may* by useful if you push vnc on to Citrix which doesn't use low alphabet drive letters).
Ditched scanning for Admin$ as this was missing on many NT Workstations. Fastpush now scans the NTw registry for the NT system folder (c:\winnt) and uses that.
Changed script to use "flavour variable" to find installation files - cuts down on goto statements
Changed changed registry tweaks around (added vnc9 and tridia15 tweaks).
Script scans location and adds itself to the path if not present (it doesn't add itself again and again).
Checks for the NT systemdrive to be shared, if not shared, it uses RMTSHARE to force the sharing.
Bug fixes <sigh>
Bug Fixes
Added help comments, /log and /user options.
Added switches for Tridia or VNC installs
Added /test to allow auto-connect to target machine
Bug fixes to 1.1 and added a test function to see if target machine's IP address is live. (this spots machines that are turned off)
Command line version with detection of target install drive
Command line version with frequent user input.