> I would like to install TightVNC using Unattended, so that > after it is > installed, I can log on to the machine remotely using password I > specified (with Unattended).
I hacked the the scripts from http://www.darkage.co.uk/vnc/ to install ultravnc on the local box - as it uses domain auth to validate users ;) The attatched file (rename to vnc7.cmd) is the one I use - I call it like this: todo.pl "%Z%\packages\VNC\vnc7.cmd %COMPUTERNAME%" It relies on some of the unattended environment variables being setup, but I've also used that script in a round about way to install on users dialed in over a 33 modem link in a couple of minutes - and found the quality of the connection over the link to be very very good. HTH, Mark. -- This e-mail message may contain confidential or privileged information. Recipients are requested to preserve this confidentiality and to advise the sender immediately of any error in transmission. Any views/opinions expressed in this email are that of the author and may not reflect the views of Salamis Group - www.salamisgroup.com
@echo off %Z% cd %Z%\packages\VNC cls :: **************************************************************************************************** :: * Richard Harris (c), 1999 - 2003 * :: * Remote VNC installer. See below for version number * :: * All rights reserved. You may distribute this script but please keep this boilerplate in. * :: * For updates on the script - check www.darkage.co.uk/vnc from time to time. Use at your own risk! * :: **************************************************************************************************** set fpver=7.0 set oldpath=%path% :: *** CHECK THAT THE COMPUTER RUNNING THIS SCRIPT IS NT - AS IT DOESN'T WORK ON 9x *** if not "%OS%"=="Windows_NT" GOTO NOTNT :: *** SET THE VARIABLES TO BLANK OR DEFAULT SETTINGS *** :: tweakable variables (see the manual) :: *** what flavour should fastpush default to (vnc, vnc9, tridia13, tridia14, etc) *** set flav=ultra :: *** do or do not install the viewer by default *** set viewer=no :: *** do or do not log all installs *** set logit=yes :: *** using fastpush from a specified location - you can call it from the path that way. *** :: *** do not use quote marks as this breaks IF statements. Long pathnames are okay *** :: *** leave blank for just use the current location *** set fplocation= :: *** If you always want start menu VNC shortcuts installing, say yes. If not, put no *** :: *** You will need Windows Scripting Host to make use of this VBS creation routine *** set shortcut=no :: *** Copy a script to the user's machine that reports computer name, IP, etc *** :: *** Turning shortcut=yes off will stop a link being made to the user's desktop *** set macrep=yes :: *** Should the VNC service start automatically or be manual? *** :: *** yes = automatic and no = manual *** set service=yes :: *** Set cmdcheck to yes to check for the reskit tool, set to no if no check wanted *** :: *** Scan variable includes the file names of each util to check for *** :: *** You also have to set cmdarray equal to the number of ojbects you want to check on *** set cmdcheck=yes set cmdarray=8 set scan=XCMD REG REGDIR REGINI RMTSHARE SC SHORTCUT TIMEOUT :: fixed variables set test=no set use=no set logon= set pass= set logvalue= set drive= set share= set force= set sharefail= set warning=no set currentpath=. set newpath= set folder= set progfiles= set remove=no set configfile=no set remotetarget= set reg=no set startpath= set remotedesk= set commondesk= set targetpc= set lnkfolder= set missing=no set passflag=no set psexec=no set ping=yes set oprogfiles= :: *** READ THE COMMAND LINE SWITCHES *** if "%1" == "" goto help :: *** FIND THE COMMAND OPTIONS *** if "%1" == "" goto help if "%1" == "/?" goto help set test=/? for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" goto help set test=/flavour for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" goto flavourhelp set test=/examples for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" goto examples set test=/reg for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" set reg=yes set test=/remove for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" set remove=yes set test=/uninstall for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" set remove=yes set test=/noview for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" set viewer=no set test=/warning for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" set warning=yes set test=/log for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" set logit=yes set test=/noshortcut for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" set shortcut=no set test=/manual for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" set service=no set test=/pwd for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" set passflag=yes set test=/psexec for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" set psexec=yes set test=/noping for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" set ping=no :: *** FIND WHAT VERSION OF VNC PPL WANT TO INSTALL *** set test=/realb4 for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" echo VNC command switch of %test% will be used. & set flav=%test%&goto fchoice set test=/ultra for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" echo VNC command switch of %test% will be used. & set flav=%test%&goto fchoice set test=/real337 for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" echo VNC command switch of %test% will be used. & set flav=%test%&goto fchoice set test=/real336 for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" echo VNC command switch of %test% will be used. & set flav=%test%&goto fchoice set test=/real334 for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" echo VNC command switch of %test% will be used. & set flav=%test%&goto fchoice set test=/vnc9 for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" echo VNC command switch of %test% will be used. & set flav=%test%&goto fchoice set test=/vnc for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" echo VNC command switch of %test% will be used. & set flav=%test%&goto fchoice set test=/mvnc for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" echo VNC command switch of %test% will be used. & set flav=%test%&goto fchoice set test=/zvnc for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" echo VNC command switch of %test% will be used. & set flav=%test%&goto fchoice set test=/esvnc112 for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" echo VNC command switch of %test% will be used. & set flav=%test%&goto fchoice set test=/esvnc111 for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" echo VNC command switch of %test% will be used. & set flav=%test%&goto fchoice set test=/esvnc11 for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" echo VNC command switch of %test% will be used. & set flav=%test%&goto fchoice set test=/esvnc for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" echo VNC command switch of %test% will be used. & set flav=%test%111& goto fchoice set test=/tight123 for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" echo VNC command switch of %test% will be used. & set flav=%test%&goto fchoice set test=/tight124 for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" echo VNC command switch of %test% will be used. & set flav=%test%&goto fchoice set test=/tight125 for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" echo VNC command switch of %test% will be used. & set flav=%test%&goto fchoice set test=/tight126 for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" echo VNC command switch of %test% will be used. & set flav=%test%&goto fchoice set test=/tight128 for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" echo VNC command switch of %test% will be used. & set flav=%test%&goto fchoice set test=/tightvnc for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" echo VNC command switch of %test% will be used. & set flav=%test%126&goto fchoice set test=/tridia13 for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" echo VNC command switch of %test% will be used. & set flav=%test%&goto fchoice set test=/tridia14 for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" echo VNC command switch of %test% will be used. & set flav=%test%&goto fchoice set test=/tridia152 for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" echo VNC command switch of %test% will be used. & set flav=%test%&goto fchoice set test=/tridia15 for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" echo VNC command switch of %test% will be used. & set flav=%test%&goto fchoice set test=/tridia for /f "tokens=* delims= " %%p in ('echo %1%2%3%4%5%6%7%8%9^|find /i /c "%test%"') do @set pv=%%p if "%pv%"=="1" echo VNC command switch of %test% will be used. & set flav=%test%152& goto fchoice :fchoice if "%flav%"=="" Echo No valid command line was chosen.& set logvalue=nocmd& goto end if not "%remove%"=="yes" Echo The final choice will be %flav%. if "%2"=="/user" goto user2 if "%3"=="/user" goto user3 if "%4"=="/user" goto user4 if "%5"=="/user" goto user5 if "%6"=="/user" goto user6 if "%7"=="/user" goto user7 if "%8"=="/user" goto user8 goto customini :user2 set use=yes set logon=%3 set pass=%4 goto customini :user3 set use=yes set logon=%4 set pass=%5 goto customini :user4 set use=yes set logon=%5 set pass=%6 goto customini :user5 set use=yes set logon=%6 set pass=%7 goto customini :user6 set use=yes set logon=%7 set pass=%8 goto customini :user7 set use=yes set logon=%8 set pass=%9 goto customini :: *** PICK UP A CUSTOM VNC INSTALLATION HERE *** :: Looking for the new config file will be done after the path searching routine later. :customini :: if "%configfile%"=="no" goto header if "%2"=="/custom" set configfile=%3 if "%3"=="/custom" set configfile=%4 if "%4"=="/custom" set configfile=%5 if "%5"=="/custom" set configfile=%6 if "%6"=="/custom" set configfile=%7 if "%7"=="/custom" set configfile=%8 if "%8"=="/custom" set configfile=%9 if "%2"=="/config" set configfile=%3 if "%3"=="/config" set configfile=%4 if "%4"=="/config" set configfile=%5 if "%5"=="/config" set configfile=%6 if "%6"=="/config" set configfile=%7 if "%7"=="/config" set configfile=%8 if "%8"=="/config" set configfile=%9 goto header :user8 ECHO. echo Command line too long! rem *** THE HELP SCREEN *** :help cls Echo /****************************************************************************\ echo VNC Fastpush Installer script %fpver% (c) 2002, Richard Harris echo *----------------------------------------------------------------------------* Echo * vnc (remote NT box) (blank, /vnc or /tridia) (/test) (/user user password) * echo *----------------------------------------------------------------------------* Echo * (remote NT workstation name) must not begin with \\ and if it is a pure * Echo * number address, you should use the PC's full domain name. * echo * * Echo * /user (name) (password) = connect with these login creditials. * echo * /pwd = encrypt given password into VNC settings * echo * /reg = No file install, just update the registry * echo * * echo * /uninstall or /remove = Deletes service, files and registry keys * echo * * Echo * /noview = Do not install VncViewer to the client * echo * /log = log results to current dir in results.txt * echo * /config = use this config file from script's folder * echo * /noshortcut = Do not create Start Menu links on target * echo * /manual = Set service to not start automatically * echo * * echo * To list supported WinVNC variations use /flavour * echo * For examples try vnc /examples http://www.darkage.co.uk/ * Echo \****************************************************************************/ goto END :flavourhelp Echo /****************************************************************************\ echo VNC Fastpush Installer script %fpver% (c) 2002, Richard Harris echo *----------------------------------------------------------------------------* Echo * vnc (remote NT box) (blank, /vnc or /tridia) (/test) (/user user password) * echo *----------------------------------------------------------------------------* echo * /realb4 = RealVNC 4 Beta 4 * Echo * /vnc = VNC 3.3.3 release 7 * Echo * /vnc9 = VNC 3.3.3 release 9 (turns wallpaper off) * echo * /real334 = RealVNC (release 3.3.4) * echo * /real336 = RealVNC (release 3.3.6) * echo * /mvnc = RealVNC (code enhanced) * echo * /real337 = RealVNC (release 3.3.6) * echo * /tight12x (x is 8 to 9) = Install TightVNC version 1.28 or 1.129 * echo * /tridia13 /tridia14 /tridia15 = Install Tridia 1.3, 1.4, 1.5 or 1.52 * echo * /tridia152 * echo * * echo * /zvnc = Install zVNC (zebedee comp/encryption) * echo * /ultra = Install UltraVNC (NTLM and file transfer * echo * /esvnc11 /esvnc111 /esvnc112 = Install esVNC (file transfer etc) * echo * * echo * You can set the default VNC choice using the "flav" variable (see script) * echo * For examples try vnc /examples http://www.darkage.co.uk/ * Echo \****************************************************************************/ goto end :examples cls Echo /****************************************************************************\ echo VNC Fastpush Installer script %fpver% - (c) 2002, Richard Harris echo * vnc server2 /tridia152 /noview = install tridia 1.52 but not the viewer * echo * * echo * vnc joe /reg /config d:\ps.ini = Do not install any files but delete and * echo * update VNC settings with the new ini file * echo * * echo * vnc joe /reg = Do not install any files. Overwrite * echo * existing settings with common settings * echo * * echo * vnc freds_pc /uninstall = remove VNC service, reg keys and files * echo * * echo * vnc freds_pc /uninstall /user engineer letmein * echo * = as above, except attach as that user * Echo * * echo * vnc smtp-mail /config serv.ini = use a custom regini file from the fastpush* echo * folder instead of machine.ini * echo * * echo * vnc smtp2 /config d:\serv.ini = use a custom file from the specified path * Echo * * Echo * vnc user4 /warning = install warning box * Echo * http://www.darkage.co.uk/ * Echo \****************************************************************************/ goto END :: *** PRINT OUT A QUICK BOILER PLATE *** :header set targetpc=%1 if "%remove%"=="yes" (echo.& echo *** Removing VNC from %targetpc% *** & goto pathtest) echo. echo Script is version %fpver% echo --------------------------------------------------------------- echo You want to install : %flav% if "%use%"=="no" echo Log on as : %username% if "%use%"=="yes" echo Log on as : %logon% if "%use%"=="yes" echo Use this password : %pass% echo Log output to results.txt : %logit% echo Install warning box : %warning% if not "%configfile%"=="no" echo Use VNC reg settings from : %configfile% if "%reg%"=="yes" echo Install method : Leave files, overwrite registry if "%reg%"=="no" echo Install method : Overwrite files and registry echo Install Vncviewer program : %viewer% echo 'My Details' desktop icon : %macrep% echo --------------------------------------------------------------- :: *** CHECK WHAT DIRECTORY THE SCRIPT IS IN AND ADJUST THE PATH *** :: *** CHECK TO SEE IF THE PATH HAS BEEN ADDED PREVIOUSLY *** :: *** ADD UTILS TO FRONT OF PATH. THIS MAKES SURE CORRECT PROGS ARE CALLED *** :pathtest set oldpath=%path% FOR /F "tokens=*" %%i IN ('CD') DO SET currentpath=%%i :pathcheck :: *** ADD UTILS TO PATH REGARDLESS OF OPTIONS *** set test=\\ for /f "tokens=* delims= " %%p in ('echo %fplocation%^|find /i /c "%test%"') do @set pushd=%%p if "%pushd%"=="1" ( echo FPLOCATION set to UNC path Echo will use PUSHD to link to directory PUSHD %fplocation% FOR /F "tokens=*" %%i IN ('CD') DO SET currentpath=%%i ) if "%fplocation%"=="" if exist "%currentpath%\vnc7.cmd" ( Echo. echo R1 echo VNC found and updating path set fplocation=%currentpath% path="%currentpath%\utils";%path% goto cfgcheck ) if NOT "%fplocation%"=="" if exist "%fplocation%\vnc7.cmd" ( Echo Result - R2 echo. echo VNC found in %fplocation% set currentpath=%fplocation% goto cfgcheck ) if "%fplocation%"=="" if NOT exist "%currentpath%\vnc7.cmd" ( echo. Echo Error code - R3 echo VNC is not in the current folder and no FPLOCATION was set. echo Either CD into a folder containing VNC or set FPLOCATION. goto end ) pause goto end :cfgcheck Echo Path statement has been backed up and will be restored at the end of the script if "%configfile%"=="no" goto cmdcheck :: *** if there's no configfile set, then skip on to the unc routine *** echo. if "%configfile%"=="no" goto unc if exist "%configfile%" Echo Config file found and will be used by regini to install custom settings. & goto unc if not exist "%currentpath%\%configfile%" goto customerror Echo "%currentpath%\%configfile%" will be used by regini to install custom VNC settings. goto cmdcheck :customerror echo. echo ******************************************************************** Echo * ERROR! The custom settings file cannot be found. Please place * echo * it in the same folder as fastpush and do not specify a full path * echo ******************************************************************** goto end :: *** UTILITY EXIST CHECK ROUTINE *** :cmdcheck :: Scan variable includes the file names of each util to check for if "%cmdcheck%"=="no" goto unc Echo Checking Utility availability... please wait. :: *** Calling the CHKCOUNT routine at the end of the script *** FOR /L %%G IN (1,1,%cmdarray%) DO @call :chkcount %%G if "%missing%"=="yes" goto UTILFAIL echo. :unc :: *** CHECK TO SEE THAT THE TARGET NAME ISN'T AN UNC *** set wsname= for /f "tokens=1,*" %%i in ('echo %targetpc%^|find /i "\\"') do @set wsname=%%i if "%wsname%"=="%targetpc%" echo. & echo Workstation name contains backslashes. Attempting removal. & set targetpc=%wsname:~2,30% echo Target pc will be '%targetpc%'. if "%wsname%"=="%targetpc%" goto help if "%wsname%"=="" echo Machine name "%targetpc%" is valid. :: *** PING THE TARGET MACHINE TO SEE IF IS ACTIVE *** :: *** Checks for TTL as this is international *** if "%ping%"=="no" ( echo. echo Skipping PING as requested goto vncpasswd ) Echo. Echo Please wait while the TCP/IP connection on %targetpc% is tested. set targetstatus= for /f "skip=3 tokens=6" %%g in ('ping %targetpc%^|find /i "TTL"') do @set targetstatus=%%g if "%targetstatus%"=="" echo Machine "%targetpc%" is not pingable via IP & goto noip if not "%targetstatus%"=="" echo Machine "%targetpc%" is alive, script continuing & goto vncpasswd echo fail on ping test? goto end :vncpasswd if NOT "%passflag%"=="yes" goto :connecting Echo. Echo Fastpush will encrypt and use the password you supplied. Echo WARNING! This will override any password set in machine.ini or elsewhere if "%2"=="/pwd" set vncpass=%3 if "%3"=="/pwd" set vncpass=%4 if "%4"=="/pwd" set vncpass=%5 if "%5"=="/pwd" set vncpass=%6 if "%6"=="/pwd" set vncpass=%7 if "%7"=="/pwd" set vncpass=%8 if "%8"=="/pwd" set vncpass=%9 set passtest=A%vncpass%A if "%passtest%"=="AA" goto PWDFAIL if exist "%fplocation%\%targetpc%pass.ini" del "%fplocation%\%targetpc%pass.ini" "%fplocation%\utils\vncenc" %vncpass% > "%fplocation%\%targetpc%pass.ini" : *** LOG ON TO THE REMOTE PC *** :connecting if "%use%"=="yes" goto customlogon net use \\%targetpc%\ipc$ goto ipcstatus :customlogon echo. echo Using provided login information net use \\%targetpc%\ipc$ /user:%logon% %pass% :: *** CHECK TO SEE IF THE IPC NULL SESSION WAS ESTABLISHED *** :: *** Getrennt is german for disconencted *** :IPCSTATUS set ipc= for /f "tokens=1,*" %%i in ('net use^|find /i "\\%targetpc%\ipc$"') do @set ipc=%%i if "%ipc%"=="OK" goto sharecheck if "%ipc%"=="Getrennt" goto sharecheck if "%ipc%"=="Disconnected" goto sharecheck if "%ipc%"=="" goto drivefail echo Fail under IPCSTATUS goto end :: *** READ REMOTE PC'S SHARES AND WORK OUT WHICH DRIVE NT LIVES ON *** @@ :SHARECHECK echo Checking share access on %targetpc% :: FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRoot" \\%targetpc%') DO SET share=%%B :: for /f "tokens=1* delims=:\" %%i in ('echo %share%^|find /i ":"') do @set remotetarget=%%i :: FOR /F "tokens=1* delims=:\" %%C IN ('REG QUERY "HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRoot" \\%targetpc%') DO SET folder=%%D :: FOR /F "tokens=2 delims=:\" %%G IN ('REG QUERY "HKLM\software\Microsoft\Windows\CurrentVersion\ProgramFilesDir" \\%targetpc%') DO SET progfiles=%%G FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "\\%targetpc%\HKLM\Software\Microsoft\Windows NT\CurrentVersion" /v SystemRoot') DO SET share=%%B for /f "tokens=1* delims=:\" %%i in ('echo %share%^|find /i ":"') do @set remotetarget=%%i FOR /F "tokens=1* delims=:\" %%C IN ('REG QUERY "\\%targetpc%\HKLM\Software\Microsoft\Windows NT\CurrentVersion" /v SystemRoot') DO SET folder=%%D FOR /F "tokens=2 delims=:\" %%G IN ('REG QUERY "\\%targetpc%\HKLM\software\Microsoft\Windows\CurrentVersion" /v ProgramFilesDir') DO SET oprogfiles=%%G :: set progfiles for the old VNC version set progfiles=%oprogfiles%\Orl\VNC if "%flav%"=="/realb4" set progfiles=%oprogfiles%\RealVNC\VNC4 Echo Querying remote PC %targetpc% registry to locate the start menu. Please wait. FOR /F "tokens=1* delims=:\" %%C IN ('REG QUERY "\\%targetpc%\HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Common Programs"') DO SET commonprogs=%%D set startpath=\\%targetpc%\%remotetarget%$\%commonprogs% :: don't use quotes on the progfiles variable, it gets upset! :-) echo Windows (on machine %targetpc%) is on drive %remotetarget% in %folder% and VNC will be echo installed into %remotetarget%:\%progfiles% on %targetpc%. echo. if "%remotetarget%"=="" goto regfail goto netuse :regfail REM *** NO ADMIN SHARE WAS FOUND, SO EXIT GRACEFULLY *** Echo *************************************************************************** Echo * Script could not find where NT is installed on the remote machine. * Echo * Try using the machine's IP address rather than it's name for the target * Echo *************************************************************************** echo. Echo The command was: echo REG QUERY "\\%targetpc%\HKLM\Software\Microsoft\Windows NT\CurrentVersion" /v SystemRoot echo. echo Check that you are using REG version 3 (included in XP system) and not an earlier edition. goto cleanup :: *** MAKE A LINK TO THE REMOTE PC AND RECREATE DRIVE SHARE IF NECESSARY *** :netuse if exist \\%targetpc%\%remotetarget%$\*.* goto installcheck echo The %remotetarget%$ share was unavailable. Attempting to recrate it. echo rmtshare \\%targetpc%\%remotetarget%$=%remotetarget%:\ rmtshare \\%targetpc%\%remotetarget%$=%remotetarget%:\ if exist \\%targetpc%\%remotetarget%$\*.* goto installcheck goto drivefail :installcheck :: *** CHECK FOR EXISTING VNC INSTALL AND IF NECESSARY, KILL THE SERVICE *** set vncstate= echo. for /f "tokens=4 delims= " %%i in ('sc \\%targetpc% query winvnc^|find /i "state"') do @set vncstate=%%i if "%vncstate%"=="RUNNING" (echo VNC3 is running on %targetpc%.&goto stopservice) if "%vncstate%"=="" (echo The VNC3 service is not active on %targetpc%. Continuing with script.&goto :vnc4state) if "%vncstate%"=="STOPPED" goto deleteservice if "%vncstate%"=="STOP_PENDING" echo *** WARNING! Service has hung on stop. Suggest remote reboot or pskill. Script will now end *** & goto end echo VNC3 Fail on service state? :vnc4state for /f "tokens=4 delims= " %%i in ('sc \\%targetpc% query winvnc4^|find /i "state"') do @set vnc4state=%%i if "%vnc4state%"=="RUNNING" (echo VNC4 is running on %targetpc%.&goto stopservice) if "%vnc4state%"=="" (echo The VNC4 service is not active on %targetpc%. Continuing with script.&goto :choosevnc) if "%vnc4state%"=="STOPPED" goto deleteservice if "%vnc4state%"=="STOP_PENDING" echo *** WARNING! VNC4 service has hung on stop. Suggest remote reboot or pskill. Script will now end *** & goto end echo VNC4 Fail on service state? goto end :stopservice Echo Stopping the WinVNC service on %targetpc%. sc \\%targetpc% STOP winvnc :: > nul sc \\%targetpc% STOP winvnc4 :: > nul echo. Stop pending timeout 8 :deleteservice Echo Deleting the WinVNC service on %targetpc%. sc \\%targetpc% DELETE winvnc sc \\%targetpc% DELETE winvnc4 Echo Deleting previous VNC registry keys from %targetpc%. reg delete \\%targetpc%\HKLM\software\orl\winvnc3 /f > nul reg delete \\%targetpc%\HKU\.Default\Software\Orl /f > nul reg delete \\%targetpc%\HKLM\software\microsoft\windows\currentversion\run /v WinVNC /f > nul reg delete \\%targetpc%\HKLM\software\realvnc\WinVNC4 /f > nul :: *** CHOOSE THE VNC FLAVOUR AND INSTALL AS NECESSARY *** :choosevnc set targetpath="\\%targetpc%\%remotetarget%$\%progfiles%" if "%remove%"=="yes" goto removevnc if "%reg%"=="yes" goto regonly echo. echo Your command line option was to install %flav%. echo. echo Destination for installation will be %targetpath%. :: *** Use the flavour variable to pick the right source folder for VNC *** if not exist %targetpath% md %targetpath% if exist %targetpath% Echo Directory %targetpath% exists. echo Copy files to %targetpath% from %currentpath%\%flav%. set copycmd=/y echo *** About to mess about with VNChooks *** if exist "%targetpath%\vnchooks.dll" rename "%targetpath%\vnchooks.dll" vnchooks.old if exist "%targetpath%\vnchooks.old" del "%targetpath%\vnchooks.old" if "%flav%"=="/realb4" ( xcopy "%currentpath%\%flav%\*.dll" %targetpath% /f /r /v xcopy "%currentpath%\%flav%\*.exe" %targetpath% /f /r /v ) if NOT "%flav%"=="/realb4" ( xcopy "%currentpath%\%flav%\v*.dll" %targetpath% /f /r /v xcopy "%currentpath%\%flav%\w*.*" %targetpath% /f /r /v if exist "%currentpath%\%flav%\oth*.dll" xcopy "%currentpath%\%flav%\oth*.dll" %targetpath% /f /r /v if exist "%currentpath%\%flav%\om*.dll" xcopy "%currentpath%\%flav%\om*.dll" "\\%targetpc%\%remotetarget%$\%folder%\system32" /f /r /v ) :: AD authenticated DLLs for UltraVNC echo AD if exist "%currentpath%\%flav%\au*.dll" xcopy "%currentpath%\%flav%\au*.dll" %targetpath% /f /r /v if "%macrep%"=="yes" xcopy "%currentpath%\common\MyDetails.exe" "\\%targetpc%\%remotetarget%$\%folder%\system32" /f /r /v if exist "%currentpath%\%flav%\z*.dll" xcopy "%currentpath%\%flav%\z*.dll" %targetpath% /f /r /v if "%viewer%"=="yes" xcopy "%currentpath%\%flav%\vncvi*.exe" %targetpath% /f /r /v goto whatconfig :regonly echo ****************************************************************** Echo * Not updating client files - only the registry. * Echo * This may be used with the /config option for more flexibility. * echo ****************************************************************** :whatconfig :: *** CHECK FOR CUSTOM INSTALL, IF SO DO IT AND SKIP ON *** if "%configfile%"=="no" goto defaultvnc Echo. echo ******************************************************************************* Echo * Warning! You are about to use your own registry ini file to control VNC * Echo * Unless all settings are correct, the service may not start AND * echo * you may damage the registry of the remote computer * echo * * Echo * Only use ini files that have been created by exporting the keys with regdir * Echo * eg: regdir \registry\machine\software\orl\winvnc3\default > c:\test.ini * echo * * Echo * Rerun this script with /remove will delete VNC and the existing standard * echo * keys as regini will not replace existing registry entries * echo * * echo * Fastpush will check it's own folder for a config file first and then check * echo * a listed path second. * echo ******************************************************************************* timeout 10 echo. Echo Cross your fingers! :-) Echo. if exist "%configfile%" goto infolder if exist "%currentpath%\%configfile%" goto frompath Echo Error on path checker goto end :infolder echo Using : regini -m \\%targetpc% "%configfile%" regini -m \\%targetpc% "%configfile%" timeout 10 goto newpass :frompath echo Using : regini -m \\%targetpc% "%currentpath%\%configfile%" regini -m \\%targetpc% "%currentpath%\%configfile%" timeout 10 goto newpass :: *** INSTALL THE DEFAULT VNC SETTINGS *** :defaultvnc Echo Installing the default settings for VNC into the remote registry. Please wait. if "%flav%"=="/realb4" ( Echo regini -m \\%targetpc% "%currentpath%\common\vnc4.ini" regini -m \\%targetpc% "%currentpath%\common\vnc4.ini" > nul ) if NOT "%flav%"=="/realb4" ( Echo regini -m \\%targetpc% "%currentpath%\common\machine.ini" regini -m \\%targetpc% "%currentpath%\common\machine.ini" > nul ) :: *** Check what flavour of VNC and install any REG tweaks if required *** if "%flav%"=="vnc9" regini -m \\%targetpc% "%currentpath%\common\vnc9nopaper.ini" if "%warning%"=="yes" regini -m \\%targetpc% "%currentpath%\common\warning.ini" :: *** ALLOW FOR CUSTOM REGISTRY SETTINGS *** :: *** If a file that matches the machine name exists, copy this into the registry. *** :: *** This allows different passwords, IP restriction, etc. Suggested by Ryan Casey *** if exist "%currentpath%\common\%targetpc%.ini" regini -m \\%targetpc% "%currentpath%\common\%targetpc%.ini" > nul :newpass if NOT "%passflag%"=="yes" goto :installhelper Echo *** Using command line specified VNC password *** Echo *** This will override any set in a custom ini file *** regini -m \\%targetpc% "%fplocation%\%targetpc%pass.ini" del "%fplocation%\%targetpc%pass.ini" goto installhelper :installhelper :: *** THE INST ROUTINE INSTALLS THE VNC SERVICE AND HELPER *** if "%flav%"=="/realb4" goto installvnc4 Echo. Echo Installing WinVNC to %remotetarget%:\%progfiles% :: set if you want the service to be a manual start - change auto to manual if "%service%"=="yes" SC \\%targetpc% create WinVNC binpath= "%remotetarget%:\%progfiles%\WinVNC.exe -service" type= own type= interact start= auto if "%service%"=="no" SC \\%targetpc% create WinVNC binpath= "%remotetarget%:\%progfiles%\WinVNC.exe -service" type= own type= interact start= demand if exist "\\%targetpc%\%remotetarget%$\%oprogfiles%\realVNC\vnc4\*.*" ( echo Deleting VNC4 from %oprogfiles%\realVNC\Vnc4 rd "\\%targetpc%\%remotetarget%$\%oprogfiles%\realVNC" /s /q ) :: *** INSTALL THE SERVICE HELPER TO THE REMOTE REGISTRY *** if exist "%currentpath%\path.tmp" del "%currentpath%\path.tmp" if exist "%currentpath%\helper.ini" del "%currentpath%\helper.ini" Echo. Echo Setting VNC Helper in HKLM\Software\microsoft\windows\currentversion\run to: echo WinVNC = "%remotetarget%:\%progfiles%\winvnc.exe" -servicehelper echo WinVNC = "%remotetarget%:\%progfiles%\winvnc.exe" -servicehelper> %currentpath%\path.tmp copy "%currentpath%\common\helper.ini" + "%currentpath%\path.tmp" "%currentpath%\helper.tmp" > nul regini -m \\%targetpc% "%currentpath%\helper.tmp" del "%currentpath%\*.tmp" goto startserver :installvnc4 Echo Installing WinVNC to %remotetarget%:\%progfiles% if exist "\\%targetpc%\%remotetarget%$\%oprogfiles%\orl\vnc\*.*" ( Echo Deleting old VNC installation. rd "\\%targetpc%\%remotetarget%$\%oprogfiles%\orl" /s /q ) :: set if you want the service to be a manual start - change auto to manual if "%service%"=="yes" ( SC \\%targetpc% create WinVNC4 binpath= "%remotetarget%:\%progfiles%\WinVNC4.exe -service" type= own type= interact start= auto SC \\%targetpc% start winvnc4 goto makeshorts ) if "%service%"=="no" SC \\%targetpc% create WinVNC4 binpath= "%remotetarget%:\%progfiles%\WinVNC4.exe -service" type= own type= interact start= demand :startserver :: *** FIRE UP THE SERVICE *** Echo Attempting to start the service..... if "%service%"=="yes" sc \\%targetpc% start winvnc if "%service%"=="no" echo.& Echo Fastpush will start the remote WinVNC service, but it will not survive a reboot. & sc \\%targetpc% start winvnc :makeshorts :: *** SHORTCUT CREATION ROUTINE *** Echo. if "%shortcut%"=="no" echo Skipped Start Menu Shortcut Creation & goto sucess if "%shortcut%"=="yes" echo Starting Start Menu Shortcut Creation Echo. Echo Script will attempt to create VNC icons under: echo '%startpath%\VNC'. if exist "%startpath%\VNC" rd "%startpath%\VNC" /q /s | Echo Deleted existing VNC start menu options. :: *** Read the reg and work out where the All Users' desktop is *** FOR /F "tokens=1* delims=:\" %%C IN ('REG QUERY "\\%targetpc%\HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Common Desktop"') DO SET commondesk=%%D set remotedesk=\\%targetpc%\%remotetarget%$\%commondesk% :: *** CREATE A BATCH FILE TO CREATE SHORTCUTS ON REMOTE PC *** if exist "\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" del /q "\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" if not exist "\\%targetpc%\%remotetarget%$\%folder%\system32\shortcut.exe" copy "%fplocation%\utils\shortcut.exe" "\\%targetpc%\%remotetarget%$\%folder%\system32" echo @echo off>"\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" if NOT "%flav%"=="/realb4" ( if exist "%startpath%\RealVNC\*.*" rd "%startpath%\RealVNC" /s /q if not exist "%startpath%\VNC" mkdir "%startpath%\VNC" if not exist "%startpath%\VNC\VNC Server" mkdir "%startpath%\VNC\VNC Server" if not exist "%startpath%\VNC\VNC Viewer" mkdir "%startpath%\VNC\VNC Viewer" echo shortcut -f -t "%remotetarget%:\%progfiles%\vncviewer.exe" -n "%remotetarget%:\%commonprogs%\VNC\Run VNC Viewer" -d "%remotetarget%:\%progfiles%">>"\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" echo shortcut -f -t "%remotetarget%:\%progfiles%\winvnc.exe" -n "%remotetarget%:\%commonprogs%\VNC\Run VNC Server" -d "%remotetarget%:\%progfiles%">>"\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" echo shortcut -f -t "%remotetarget%:\%progfiles%\winvnc.exe" -n "%remotetarget%:\%commonprogs%\VNC\VNC Server\Add New Client" -d "%remotetarget%:\%progfiles%" -a "-connect">>"\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" echo shortcut -f -t "%remotetarget%:\%progfiles%\winvnc.exe" -n "%remotetarget%:\%commonprogs%\VNC\VNC Server\Register VNC Server Service" -d "%remotetarget%:\%progfiles%" -a "-install">>"\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" echo shortcut -f -t "%remotetarget%:\%progfiles%\winvnc.exe" -n "%remotetarget%:\%commonprogs%\VNC\VNC Server\Run Service Helper" -d "%remotetarget%:\%progfiles%" -a "-servicehelper">>"\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" echo shortcut -f -t "%remotetarget%:\%progfiles%\winvnc.exe" -n "%remotetarget%:\%commonprogs%\VNC\VNC Server\Show About Box" -d "%remotetarget%:\%progfiles%" -a "-about">>"\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" echo shortcut -f -t "%remotetarget%:\%progfiles%\winvnc.exe" -n "%remotetarget%:\%commonprogs%\VNC\VNC Server\Show Default Properties" -d "%remotetarget%:\%progfiles%" -a "-defaultsettings">>"\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" echo shortcut -f -t "%remotetarget%:\%progfiles%\winvnc.exe" -n "%remotetarget%:\%commonprogs%\VNC\VNC Server\Show User Properties" -d "%remotetarget%:\%progfiles%" -a "-settings">>"\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" echo shortcut -f -t "%remotetarget%:\%progfiles%\winvnc.exe" -n "%remotetarget%:\%commonprogs%\VNC\VNC Server\Unregister VNC Service" -d "%remotetarget%:\%progfiles%" -a "-remove">>"\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" echo shortcut -f -t "%remotetarget%:\%progfiles%\vncviewer.exe" -n "%remotetarget%:\%commonprogs%\VNC\VNC Viewer\Listening VNC Viewer" -d "%remotetarget%:\%progfiles%" -a "-listen" >>"\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" echo shortcut -f -t "%remotetarget%:\%progfiles%\vncviewer.exe" -n "%remotetarget%:\%commonprogs%\VNC\VNC Viewer\Register Viewer with saved sessions" -d "%remotetarget%:\%progfiles%" -a "-register">>"\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" ) if "%flav%"=="/realb4" ( if exist "%startpath%\VNC\*.*" rd "%startpath%\VNC" /s /q if not exist "%startpath%\RealVNC" mkdir "%startpath%\RealVNC" if not exist "%startpath%\RealVNC\VNC Server 4 (Service-Mode)" mkdir "%startpath%\RealVNC\VNC Server 4 (Service-Mode)" if not exist "%startpath%\RealVNC\VNC Server 4 (User-Mode)" mkdir "%startpath%\RealVNC\VNC Server 4 (User-Mode)" if not exist "%startpath%\RealVNC\VNC Viewer 4" mkdir "%startpath%\RealVNC\VNC Viewer 4" echo shortcut -f -t "%remotetarget%:\%progfiles%\vncconfig.exe" -n "%remotetarget%:\%commonprogs%\RealVNC\VNC Server 4 (Service-Mode)\Configure VNC Service" -d "%remotetarget%:\%progfiles%" -a "-service">>"\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" echo shortcut -f -t "%remotetarget%:\%progfiles%\winvnc4.exe" -n "%remotetarget%:\%commonprogs%\RealVNC\VNC Server 4 (Service-Mode)\Register VNC Service" -d "%remotetarget%:\%progfiles%" -a "-register">>"\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" echo shortcut -f -t "%remotetarget%:\%progfiles%\winvnc4.exe" -n "%remotetarget%:\%commonprogs%\RealVNC\VNC Server 4 (Service-Mode)\Start VNC Service" -d "%remotetarget%:\%progfiles%" -a "-start">>"\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" echo shortcut -f -t "%remotetarget%:\%progfiles%\winvnc4.exe" -n "%remotetarget%:\%commonprogs%\RealVNC\VNC Server 4 (Service-Mode)\Stop VNC Service" -d "%remotetarget%:\%progfiles%" -a "-stop">>"\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" echo shortcut -f -t "%remotetarget%:\%progfiles%\winvnc4.exe" -n "%remotetarget%:\%commonprogs%\RealVNC\VNC Server 4 (Service-Mode)\Unregister VNC Service" -d "%remotetarget%:\%progfiles%" -a "-unregister">>"\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" echo shortcut -f -t "%remotetarget%:\%progfiles%\vncconfig.exe" -n "%remotetarget%:\%commonprogs%\RealVNC\VNC Server 4 (User-Mode)\Configure User-Mode Settings" -d "%remotetarget%:\%progfiles%" -a "-user">>"\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" echo shortcut -f -t "%remotetarget%:\%progfiles%\winvnc4.exe" -n "%remotetarget%:\%commonprogs%\RealVNC\VNC Server 4 (User-Mode)\Run VNC Server" -d "%remotetarget%:\%progfiles%" -a "-noconsole">>"\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" echo shortcut -f -t "%remotetarget%:\%progfiles%\vncviewer.exe" -n "%remotetarget%:\%commonprogs%\RealVNC\VNC Viewer 4\Run Listening VNC Viewer" -d "%remotetarget%:\%progfiles%" -a "-listen">>"\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" echo shortcut -f -t "%remotetarget%:\%progfiles%\vncviewer.exe" -n "%remotetarget%:\%commonprogs%\RealVNC\VNC Viewer 4\Run VNC Viewer" -d "%remotetarget%:\%progfiles%" -a "">>"\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" ) :: *** IF REPORTING OPTION IS ON, CREATE A DESKTOP LINK SO USERS CAN FIND OUT WHAT BOX THEY'RE USING *** if "%macrep%" NEQ "yes" goto runicons echo shortcut -f -t "%remotetarget%:\%folder%\system32\mydetails.exe" -n "%remotetarget%:\%commondesk%\My Details" >>"\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" if "%flav%"=="/realb4" echo shortcut -f -t "%remotetarget%:\%folder%\system32\mydetails.exe" -n "%remotetarget%:\%commonprogs%\RealVNC\My Details" >>"\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" if not "%flav%"=="/realb4" echo shortcut -f -t "%remotetarget%:\%folder%\system32\mydetails.exe" -n "%remotetarget%:\%commonprogs%\VNC\My Details" >>"\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" :: *** EXECUTE BATCH FILE ON REMOTE COMPUTER *** :runicons Echo. if "%psexec%"=="yes" psexec \\%targetpc% "%remotetarget%:\%folder%\icons.cmd" if NOT "%psexec%"=="yes" xcmd \\%targetpc% "%remotetarget%:\%folder%\icons.cmd" :: xcmd not does seem as reliable for some reason - investigate :: xcmd \\%targetpc% "%remotetarget%:\%folder%\icons.cmd" goto rem%errorlevel% :: goto :sucess :rem0 Echo. Echo Icons command excuted on remote machine %targetpc% echo del "\\%targetpc%\%remotetarget%$\%folder%\icons.cmd" /q goto sucess :rem1 Echo. ECHO *** WARNING! *** Echo Icons command failed!! Investigate %targetpc%. goto sucess :rem-1 Echo. ECHO *** WARNING! *** Echo Icons command failed!! Investigate %targetpc%. goto sucess :rem128 Echo. ECHO *** WARNING! *** Echo Xcmd service unable to be installed. Investigate %targetpc%. Echo Shortcuts were not created / updated. goto sucess echo End of shortcut creation scheme goto sucess :FORCECHECK if not "%force%"=="yes" goto drivefail rmtshare \\%targetpc%\%remotedrive%$=%remotedrive%:\ if "%sharefail%"="yes" goto DRIVEFAIL set sharefail=yes goto netuse :: *** REMOVE THE VNC PROGRAM AND REGISTRY SETTINGS *** :removevnc echo. echo Your command line option was to remove VNC from %targetpc%. echo. echo VNC will be deleted from %targetpath% echo and the registry entries will also be deleted. echo This script will not remove any shortcuts though. echo. timeout 15 echo Files and host directory will be deleted from %targetpath% echo. Echo Start menu shortcuts will be removed from : echo "%startpath%". if exist "%startpath%\vnc" rd "%startpath%\vnc" /q /s | Echo Deleted existing VNC shortcuts. if exist %targetpath% rd %targetpath% /q /s | Echo %targetpath% folder removed. if "%flav%"=="/realb4" if exist %otargetpath%\orl\vnc rd %otargetpath%\orl\vnc /q /s | Echo %targetpath% folder removed. if exist "\\%targetpc%\%remotetarget%$\%folder%\system32\omnithread*.dll" del "\\%targetpc%\%remotetarget%$\%folder%\system32\omnithread*.dll" /s FOR /F "tokens=1* delims=:\" %%C IN ('REG QUERY "\\%targetpc%\HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Common Desktop"') DO SET commondesk=%%D set remotedesk=\\%targetpc%\%remotetarget%$\%commondesk% if exist "\\%targetpc%\%remotetarget%$\%commondesk%\my details.lnk" echo Deleting the My Details icon from the desktop & del /q "\\%targetpc%\%remotetarget%$\%commondesk%\my details.lnk" Echo Removing \\%targetpc%\ipc$ link. net use \\%targetpc%\ipc$ /del set logvalue=killed if "%logit%"=="yes" goto logging goto END :NOIP echo. echo ************************************************************************* echo * Error: IP access to machine is not available! Check network and power * echo ************************************************************************* set logvalue=noip if "%logit%"=="yes" goto logging goto END :EMPTY echo. echo ***************************************************** Echo * Error! Echo You have not specified a machine name * echo ***************************************************** if "%logit%"=="yes" goto logging goto END :NOTNT echo. echo ************************************************ Echo * Error: Echo This program only works under NT * echo ************************************************ if "%logit%"=="yes" goto logging goto END :NOVNCCMD echo. echo ******************************************************************************** Echo * Error: vnc.cmd file not found with the path specified in fplocation variable * echo ******************************************************************************** set logvalue=novndcmd if "%logit%"=="yes" goto logging goto END :DRIVEFAIL echo. echo ***************************************************************************** Echo * Error: Echo There was no drive mapped to the target machine's systemdrive * Echo * Try a manual net use %netdrv% \\machine\drive$ /user:admin_account * Echo * NB: Make sure the target PC is not a Windows 9x or Linux box * echo ***************************************************************************** set logvalue=drivefail if "%logit%"=="yes" goto logging goto END :UTILFAIL echo. echo ***************************************************************************** Echo * Error: A utility critical to the operation of FastPush could not be found * Echo * Please install this executeable into the fastpush\utils folder * echo ***************************************************************************** set logvalue=noutil if "%logit%"=="yes" goto logging goto END :PWDFAIL echo. echo ***************************************************************************** Echo * Error: You specified /pwd to use a custom vnc password. However you did * Echo * not provide a password after using this switch. Please try again. * echo ***************************************************************************** set logvalue=nopwd if "%logit%"=="yes" goto logging goto END :SUCESS set logvalue=installed goto cleanup :: *** DELETE THE DRIVE MAPPING AND KILL THE IPC CONNECTION OFF TOO *** :cleanup net use \\%targetpc%\ipc$ /del > nul if exist %netdrv%: net use %netdrv%: /del > nul echo ------------------------------------------------------------ echo Fastpush to '%targetpc%'. echo You want to install : %flav% if "%use%"=="yes" echo Log on as : %logon% if "%use%"=="yes" echo Use this password : hidden if "%log%"=="yes" echo Logging results to results.txt if "%warning%"=="yes" echo Install warning box : yes if not "%configfile%"=="no" echo Use VNC reg settings from : %configfile% echo Install Vncviewer program : %viewer% echo Create Start Menu links : %shortcut% echo ------------------------------------------------------------ if "%logit%"=="yes" goto logging goto END :logging echo. echo Logging results to "%currentpath%\results.txt" :: *** PIPE THE TIME AND DATE INTO VARIABLES *** for /f "tokens=2,*" %%i in ('date/t') do @set zdate=%%i for /f "tokens=1,*" %%j in ('time/t') do @set zclock=%%j :: *** IF RESULTS FILES DOESN'T EXIST, THEN MAKE ONE *** if not exist %currentpath%\results.txt echo Fastpush Installation Log (date / time / target / results) > results.txt :: *** TIME DATE blah blah PIPED OUT TO TMP FILE *** if "%logvalue%"=="installed" echo %zdate% : %zclock% : %targetpc% : %flav% was installed to %targetpc%. > "%currentpath%\results.tmp" if "%logvalue%"=="noip" echo %zdate% : %zclock% : %targetpc% : Error: %targetpc% not pingable. Check TCP/IP. > "%currentpath%\results.tmp" if "%logvalue%"=="noreg" echo %zdate% : %zclock% : %targetpc% : NT system folder not found. > "%currentpath%\results.tmp" if "%logvalue%"=="noshare" echo %zdate% : %zclock% : %targetpc% : $Admin share on %targetpc% unavailable. Check shares. > "%currentpath%\results.tmp" if "%logvalue%"=="drivefail" echo %zdate% : %zclock% : %targetpc% : Failed to logon to %targetpc%. Check logon/shares. > "%currentpath%\results.tmp" if "%logvalue%"=="killed" echo %zdate% : %zclock% : %targetpc% : VNC service and files were removed. > "%currentpath%\results.tmp" if "%logvalue%"=="novnccmd" echo %zdate% : %zclock% : %targetpc% : VNC command file not found. Check path variable > "%currentpath%\results.tmp" if "%logvalue%"=="nocmd" echo %zdate% : %zclock% : %targetpc% : No valid command line options were found > "%currentpath%\results.tmp" if "%logvalue%"=="noutil" echo %zdate% : %zclock% : %targetpc% : No valid command line options were found > "%currentpath%\results.tmp" if "%logvalue%"=="nopwd" echo %zdate% : %zclock% : %targetpc% : Specified /pwd but did not supply a password > "%currentpath%\results.tmp" ren "%currentpath%\results.txt" oldresults.tmp > nul copy "%currentpath%\oldresults.tmp" + "%currentpath%\results.tmp" "%currentpath%\results.txt" > nul del "%currentpath%\*.tmp" > nul goto end :: *** INSERT CALLED PROCEDURES HERE *** :: *** They won't be run unless called directly *** :chkcount :: *** Pick each item from the scan array *** for /f "tokens=%1 delims= " %%p in ('echo %scan%') do @call :chkutil %%p goto :eof :chkutil :: *** Check for the existance of each component *** if "%missing%"=="yes" goto :eof :: if exist %currentpath%\utils\%1.exe echo %1 okay. if not exist %currentpath%\utils\%1.exe echo %1 not found. Please install %1 in %currentpath%\utils. & set missing=yes goto :eof :: *** END OF THE LINE *** :END set user= set pass= set vncpass= if "%pushd%"=="1" POPD if exist "%fplocation%\%targetpc%pass.ini" del "%fplocation%\%targetpc%pass.ini" :: Echo Restoring old path to "%oldpath%". set path=%oldpath%