Scripting...
I've been putting together a lot of automation in the way of login/logout scripts, and documenting on our company Intranet that I put together [FlexWiki.com].
Here are the scripts.
UPLOAD.BAT
- Location: F:\DATA\DOWNLOAD\OUTPUT.
- Explanation: Used by persons scrubbing data to upload to Misys server and change permissions for interfacing purposes. Without this script, the files would not be set to the correct permissions, and a root user would have to manually change those at the AIX CLI.
@ECHO OFF :: Create the temporary script file >script.ftp ECHO ftputil >>script.ftp ECHO mypassword >>script.ftp ECHO ascii >>script.ftp ECHO prompt n >>script.ftp ECHO cd /src/APPS/HT/bin >>script.ftp ECHO mput *.TXT >>script.ftp ECHO debug . :: Create the file list dir /b *.TXT > FILES.LST FOR /F "tokens=1" %%I IN (FILES.LST) DO >>script.ftp ECHO quote SITE chmod 666 %%I :: Exit FTP >>script.ftp ECHO quit :: Use the temporary script for unattended FTP FTP -v -s:script.ftp misys :: Now move the files into the upload dir FOR /F "tokens=1" %%I IN (FILES.LST) DO MOVE %%I UPLOAD :: For the paranoid: overwrite the temporary file before deleting it TYPE NUL >script.ftp TYPE NUL >FILES.LST DEL script.ftp DEL FILES.LST GOTO End :END EXIT
LOGON.BAT
- Location: \\IBSFP\NETLOGON.
- Explanation: Used for all users logins.
@ECHO OFF :: ---------------------------------------------- :: Don't run on DC's @SET DC=IBSFP @SET DC1=IBSFAX IF "%DC%" == "%COMPUTERNAME%" GOTO EOF IF "%DC1%" == "%COMPUTERNAME%" GOTO EOF :: ---------------------------------------------- :: Assign a drive letter to netlogon NET USE X: \\IBSFP\NETLOGON :: ---------------------------------------------- :: Run our kix scripts... :: This one copies the appropriate WSFTP :: config files, to the users pc. :: Make sure they belong to the right groups. :: i.e. FTPmngmnt, FTPRecovery, or FTPAcctsRec X:\KIX\WKIX32.EXE X:\KIX\WSFTP_INI.KIX :: This maps appropriate drives based on group membership X:\KIX\WKIX32.EXE X:\KIX\MAP_DRIVES.KIX :: This copies flashcode if not found on the machine. :: See script for instructions. X:\KIX\WKIX32.EXE X:\KIX\FLASH_CODE.KIX :: This takes care of the compliance notice. X:\KIX\WKIX32.EXE X:\KIX\WELCOME.KIX :: NOTE: install_vnc.kix, tif_regfix.kix and postscript_fix.kix :: are handled by 'Software Installation' GPO see scrips :: for explanations. :: ------ END OF KIX SCRIPTS ------- :: ---------------------------------------------- :: Copy pstsize to local machine :: This checks for maximum PST size limitations :: and issues a warning if it reaches a size of :: 1.8gb or larger. IF NOT EXIST %WINDIR%\SYSTEM32\PSTSIZE.EXE COPY X:\PST\PSTSIZE.EXE %WINDIR%\SYSTEM32\ pstsize /G /M=One of your mail folders has exceeded it's recommended size. PLEASE ARCHIVE DATA BEFORE CORRUPTION AND MAIL LOSS OCCURS! :: ---------------------------------------------- :: Copy easyprint to the desktop if it's not there IF NOT EXIST "%ALLUSERSPROFILE%\DESKTOP\EASYPRINT.LNK" COPY X:\EASYPRINT.LNK "%ALLUSERSPROFILE%\DESKTOP\" :: ---------------------------------------------- :: Copy defrag script to local pc IF NOT EXIST C:\DAILY.BAT COPY X:\DEFRAG\DAILY.BAT C:\ IF NOT EXIST C:\WEEKLY.BAT COPY X:\DEFRAG\WEEKLY.BAT C:\ AT | FIND /I "DAILY.BAT" IF ERRORLEVEL 1 AT 22:00 /EVERY:M,T,W,TH,F C:\DAILY.BAT AT | FIND /I "WEEKLY.BAT" IF ERRORLEVEL 1 AT 22:00 /EVERY:SU C:\WEEKLY.BAT :: ---------------------------------------------- :: Copy reboot script, and schedule it, but not for DAVID's PC's IF "%COMPUTERNAME%" == "IBSPC25" GOTO EOF IF "%COMPUTERNAME%" == "IBSPC22" GOTO EOF IF NOT EXIST C:\REBOOT.VBS COPY X:\DEFRAG\REBOOT.VBS C:\ AT | FIND /I "REBOOT.VBS" IF ERRORLEVEL 1 AT 19:30 /INTERACTIVE /EVERY:M,T,W,TH,F,S,SU C:\REBOOT.VBS :: ---------------------------------------------- :: Get outta here GOTO EOF :: ---------------------------------------------- :EOF :: remove x: NET USE X: /DEL EXIT
LOGOFF.BAT
- Location: \\IBSFP\NETLOGON
- Explanation: Used for all users logoffs.
@ECHO OFF CD /D C:\DOCUMENTS AND SETTINGS :: Flush temp inet files FOR /D %%X IN (*) DO DEL /F /S /Q "C:\DOCUMENTS AND SETTINGS\%%X\LOCAL SETTINGS\TEMPORARY INTERNET FILES\*.*" :: Flush temp files FOR /D %%X IN (*) DO DEL /F /S /Q "C:\DOCUMENTS AND SETTINGS\%%X\LOCAL SETTINGS\TEMP\*.*" DEL /F /S /Q %WINDIR%\TEMP\*.* DEL /F /S /Q C:\TEMP\*.* :: Deletes Microsoft Update files SET UNF=%SYSTEMROOT%\$NTUNINSTALL* FOR /F "TOKENS=*" %%I IN ('DIR /B /AD %UNF%') DO RD /S /Q "%SYSTEMROOT%\%%I" SET UNF=%SYSTEMROOT%\$MSI31UNINSTALL* FOR /F "TOKENS=*" %%I IN ('DIR /B /AD %UNF%') DO RD /S /Q "%SYSTEMROOT%\%%I" SET UNF=%SYSTEMROOT%\$NTSERVICEPACK* FOR /F "TOKENS=*" %%I IN ('DIR /B /AD %UNF%') DO RD /S /Q "%SYSTEMROOT%\%%I" :: ---------------------------------------------- :: Get outta here GOTO EOF :EOF EXIT
DEFENDER.CMD
- Location: \\IBSFP\NETLOGON.
- Explanation: Used for all users MS Defender settings. Deployed through Software Installation GPO.
@ECHO OFF REM ScanParameters=Full or quick scan. 2 is Full. Assume 1 is quick [Unverified]. REM ScheduleDay=what day to run. 5 is Thursday. Monday is 2. Sunday 1. REM ScheduleTime=540 (decimal) equals "approx 09.00" hours. 0400hrs equals decimal setting 240, so my guess is that it's 1 per minute. 0401hrs would be "241". REM AllowNonAdminFunctionality= Allow non-admins to screw around with the settings. 0 equals don't allow, 1 allow them. REG ADD "HKLM\vSOFTWARE\Microsoft\Windows Defender\Scan" /v ScanParameters /d 2 /t REG_DWORD /f REG ADD "HKLM\SOFTWARE\Microsoft\Windows Defender\Scan" /v ScheduleDay /d 7 /t REG_DWORD /f REG ADD "HKLM\SOFTWARE\Microsoft\Windows Defender\Scan" /v ScheduleTime /d 540 /t REG_DWORD /f REG ADD "HKLM\SOFTWARE\Microsoft\Windows Defender\UX Configuration" /v AllowNonAdminFunctionality /d 0 /t REG_DWORD /f
3DSCR.KIX
- Location: \\IBSFP\NETLOGON\KIX.
- Explanation: This script is reponsible for setting the desktop screensavers. Deployed through ScreenSaverWallpaper GPO.
IF setconsole("hide") ENDIF WriteValue("HKEY_USERS\@SID\Software\Microsoft\Screensavers\Text3D", "AllScreensSame", "00000000", "REG_DWORD") WriteValue("HKEY_USERS\@SID\Software\Microsoft\Screensavers\Text3D", "SurfaceType", "00000001", "REG_DWORD") WriteValue("HKEY_USERS\@SID\Software\Microsoft\Screensavers\Text3D", "Specular", "00000001", "REG_DWORD") WriteValue("HKEY_USERS\@SID\Software\Microsoft\Screensavers\Text3D", "SurfaceColor", "00008080", "REG_DWORD") WriteValue("HKEY_USERS\@SID\Software\Microsoft\Screensavers\Text3D", "CustomTexture", "", "REG_SZ") WriteValue("HKEY_USERS\@SID\Software\Microsoft\Screensavers\Text3D", "CustomEnvironment", "", "REG_SZ") WriteValue("HKEY_USERS\@SID\Software\Microsoft\Screensavers\Text3D", "UseCustomColor", "00000001", "REG_DWORD") WriteValue("HKEY_USERS\@SID\Software\Microsoft\Screensavers\Text3D", "UseCustomTexture", "00000000", "REG_DWORD") WriteValue("HKEY_USERS\@SID\Software\Microsoft\Screensavers\Text3D", "UseCustomEnvironment", "00000000", "REG_DWORD") WriteValue("HKEY_USERS\@SID\Software\Microsoft\Screensavers\Text3D", "MeshQuality", "000001f4", "REG_DWORD") WriteValue("HKEY_USERS\@SID\Software\Microsoft\Screensavers\Text3D", "Size", "0000000a", "REG_DWORD") WriteValue("HKEY_USERS\@SID\Software\Microsoft\Screensavers\Text3D", "RotationSpeed", "0000000a", "REG_DWORD") WriteValue("HKEY_USERS\@SID\Software\Microsoft\Screensavers\Text3D", "RotationStyle", "00000003", "REG_DWORD") WriteValue("HKEY_USERS\@SID\Software\Microsoft\Screensavers\Text3D", "DisplayString", "ibs", "REG_SZ") WriteValue("HKEY_USERS\@SID\Software\Microsoft\Screensavers\Text3D", "DisplayTime", "00000000", "REG_DWORD") WriteValue("HKEY_USERS\@SID\Software\Microsoft\Screensavers\Text3D", "FontWeight", "00000190", "REG_DWORD") WriteValue("HKEY_USERS\@SID\Software\Microsoft\Screensavers\Text3D", "FontHeight", "fffffff3", "REG_DWORD") WriteValue("HKEY_USERS\@SID\Software\Microsoft\Screensavers\Text3D", "FontItalic", "00000000", "REG_DWORD") WriteValue("HKEY_USERS\@SID\Software\Microsoft\Screensavers\Text3D", "FontCharSet", "01020300", "REG_DWORD") WriteValue("HKEY_USERS\@SID\Software\Microsoft\Screensavers\Text3D", "FontPitchFamily", "61004252", "REG_DWORD") WriteValue("HKEY_USERS\@SID\Software\Microsoft\Screensavers\Text3D", "FontFace", "Bauhaus 93", "REG_SZ")
FLASHCODE.KIX
- Location: \\IBSFP\NETLOGON\KIX.
- Explanation: This script deploys Flashcode to the desktops. Deployed through LOGON.BAT.
IF setconsole("hide") ENDIF ; ACHM Users dont have the necessary drives mapped, so don't run this IF INGROUP ("ACHM") =1 EXIT ENDIF ; John Croson - 04/2009 ; Purpose: Deploy Flash Code to clients. ; 1. Install locally on your pc ; 2. Run it, and provide the serial number ; 3. Copy the shortcut created on the desktop to the installation directory ; 4. Copy the entire contents of your installation [YYYY Q?] to \\ibsfp\gpoassignedsoftware\flashcode ; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ; ; DO NOT CHANGE THE DIRECTORY STRUCTURE OF THE FLASH CODE REPOSITORY, LISTED IN STEP 4 ABOVE. ; THIS SCRIPT SIMPLY LOOKS FOR THESE FOLDERS ON THE CLIENT PC, AND IF NOT FOUND, COPIES THE FILES. ; IF YOU PUT SOMETHING ELSE IN THE FLASH CODE REPOSITORY LISTED IN STEP 4 ABOVE, IT WILL BE COPIED AS WELL. ; ; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ; This checks for the existance of the Flash Code root directory ; If C:\Program Files\Flash Code doesn't exist, create it ; This will also be used as the client install path variable $fc = "C:\Program Files\Flash Code" IF NOT EXIST ($fc) MD "$fc" ENDIF ; Set our Flash Code repository path, and first charachter, as ; KixTart "sees" the ".." directory listing, if omitted $fcSrc = "\\IBSFP\GPOAssignedSoftware\Flash Code\" $DirName = Dir($fcSrc + "2*") While $DirName <> "" and @ERROR = 0 ? "Found " + $DirName ; Concat the install dir path $fcDest = $fc + "\" + $DirName ; If C:\Program Files\Flash Code\$DirName doesn't exist, ask of the user wants it installed. IF NOT EXIST($fcDest) $return = MessageBox("You don't have " + $DirName + " FlashCode." + chr(13) + "Installation will take approximately 1 - 3 minutes." + chr(13) + "Do you want it installed?", "IHBS Software", 36) ; If we say no, go to the next Installation check IF $return = 7 GOTO End ENDIF ;otherwise continue executing ? "Making new dir..." MD $fcDest ; Concat the absolute source of files $fcAbsSrc = $fcSrc + $Dirname COPY $fcAbsSrc $fcDest + "\" /c /r /h /s If @Error <> 0 MessageBox("Error " + @Error + " has been encountered during the file copy phase." + chr(13) + "Please notify IT of this error.", "File Copy Error", 0, 10) EndIf ? "Copying link..." COPY $fcDest + "\Flash Code " + $DirName + ".lnk" "C:\Documents and Settings\All Users\Desktop\" If @Error <> 0 MessageBox("Error " + @Error + " has been encountered during the link copy phase." + chr(13) + "Please notify IT of this error.", "Link Creation Error", 0, 10) Else MessageBox("The copy process is complete." + chr(13) + "You should now have a new icon on your desktop.", "IHBS Software", 0, 10) EndIf ENDIF :End $DirName = Dir() ; retrieve next file Loop
INSTALL_VNC.KIX
- Location: \\IBSFP\NETLOGON\KIX.
- Explanation: Installs VNC to desktop workstations. Deployed through Software Installation GPO.
IF setconsole("hide") ENDIF ; KiXtart Script ; ; install_vnc.KIX ; ; ; From post found here, outlining the details of deploying UltraVNC ; http://forum.ultravnc.info/viewtopic.php?p=26475 ; ; download UltraVNC-101-Setup.exe ; ; - run the exe with the command "UltraVNC-101-Setup.exe /saveinf=c:\someconfigfile.inf" , ; this will save the main config file to a path of your choosing. ; ; - go through the setup changing config settings to how you want it installed (language, program path, etc). ; ; Make sure to make the following selections ; UltraVNC Server ; Mirror Driver ; DSM Encryption Plugin ; ; and on the additional tasks page ; ; select Register UltraVNC as service ; DO NOT select Start or restart UltraVNC Service ; select Configure MS-Logon II ; DO NOT select Configure Admin Properties ; DO NOT select Clean old VNC registry keys ; ; Don't worry about the ACL settings, we will change those in a bit ; ; Finish up the install. ; ; Now that it is install, go to the start menu and click on UltraVNC > UltraVNC Server ; ; Double click on the tray icon which will pull up the admin settings. ; ; Make all the changes you want applied across all computers here. The password, MS Logon groups, and misc settings need to be set. ; ; Now that you have made all your admin changes, go to your program path within DOS, by default c:\program files\ultravnc. ; ; Type in MSLogonACL.exe /e c:\someaclconfigfile.acl - this will create your ACL file ; ; close DOS and go to regedit - start > run > regedit ; ; Export the hkey_local_machine > software > ORL key to a reg file ; ; now, edit the someconfigfile.inf file you created many steps ago, and put this in for the acl and reg paths ; ; AclFile=c:\pathtoacl\someaclfile.txt ; PropertiesFile=c:\pathtoacl\someregfile.reg ; ; ; ; Now, your setup is all done. Shut down VNC and uninstall it. ; ; Start the automated install by typing in this ; UltraVNC-101-Setup.exe /verysilent /loadinf=c:\pathtoinffile\ultravnc.inf" ; Supervisors need their fully installed version. Good thing there is only a couple of them... ;) $PC=@WKSTA SELECT CASE $PC = "IBSPC60" ;Jill Exit CASE $PC = "IBSPC25" ;David Exit CASE $PC = "IBSPC22" ;David Exit CASE $PC = "IBSPC35" ;Chris Exit CASE $PC = "IBSPC59" ;Rick Exit CASE $PC = "IBSPC31" ;Rebecca Exit CASE $PC = "IBSPC55" ;Marianne Exit CASE $PC = "IBSVPC" ;Me Exit ENDSELECT ; Check for TW VNC 4 and remove the service $VNC4 = KeyExist("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\RealVNC_is1") If $VNC4 $UNV4 = KeyExist("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinVNC4") If @ERROR = 0 DelTree("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinVNC4") EndIf EndIf ; Check for 3.3.6 and uninstall it $VNC3 = KeyExist("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WinVNC_is1") If $VNC3 ; uninstall it if there is a string $UNV3 = ReadValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WinVNC_is1", "UninstallString") If @ERROR = 0 shell $UNV3 + " /silent" EndIf EndIf ; Check for UltraVNC, and if found, check for installation type $UVNC = KeyExist("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{A8AD990E-355A-4413-8647-A9B168978423}_is1") If $UVNC ; Check to see if we are a default install $INS = ReadValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{A8AD990E-355A-4413-8647-A9B168978423}_is1", "Inno Setup: Setup Type") If $INS = "full" ;usually a default install $UNST = ReadValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{A8AD990E-355A-4413-8647-A9B168978423}_is1", "UninstallString") ;first uninstall it shell $UNST + " /verysilent" ;then reinstall it shell "%COMSPEC% /c @LDRIVE\VNC\UltraVNC-102-Setup /verysilent /loadinf=@LDRIVE\VNC\VNCCONFIG.INI" ;shell '%COMSPEC% /C NET START "VNC Server"' EndIf EndIf ; if it's not installed, install it and start the service If Not $UVNC run "@LDRIVE\VNC\UltraVNC-102-Setup /verysilent /loadinf=@LDRIVE\VNC\VNCCONFIG.INI" ;shell '%COMSPEC% /c NET START "VNC Server"' EndIf ; finally remove all shortcuts If Exist ("C:\Documents and Settings\All Users\Start Menu\Programs\UltraVNC") Del "C:\Documents and Settings\All Users\Start Menu\Programs\UltraVNC\*.*" /s Rd "C:\Documents and Settings\All Users\Start Menu\Programs\UltraVNC\Doc" Rd "C:\Documents and Settings\All Users\Start Menu\Programs\UltraVNC\UltraVNC Driver" Rd "C:\Documents and Settings\All Users\Start Menu\Programs\UltraVNC\UltraVNC Server" Rd "C:\Documents and Settings\All Users\Start Menu\Programs\UltraVNC" EndIf ;DONE!!!!!
MAP_DRIVES.KIX
- Location: \\IBSFP\NETLOGON\KIX.
- Explanation: Maps network drives, deployed through LOGON.BAT.
IF setconsole("hide") ENDIF ; John Croson - 05/2007 ; Purpose: Map drives based on group membership. Global $fServer $fServer = IBSFP ; REMOVE ALL DRIVE MAPPINGS USE * /DELETE ; MAP ALL COMMON DRIVES USE F: "\\$fServer\common" USE G: "\\$fServer\medrec" USE H: "\\$fServer\download" ; I WAS IN HERE AS IMPOWER IF INGROUP ("Supervisors") =1 USE J: "\\$fServer\HR$$" USE K: "\\$fServer\monitoring" ENDIF USE M: "\\$fServer\scandocs" USE S: "\\$fServer\office" USE T: "\\$fServer\software" USE O: "\\$fServer\data" USE Z: "\\$fServer\users\@USERID" IF INGROUP ("OutsideVendors") =1 USE * /DELETE USE z: \\ibsfp\Vendors ENDIF $fServer = 0
POSTSCRIPT_SEARCH_FIX.KIX
- Location: \\IBSFP\NETLOGON\KIX.
- Explanation: Applies registry modifications to allow XP workstations the ability to search the contents of Post Script files. Deployed through Software Installation GPO.
IF setconsole("hide") ENDIF ; John Croson - 07/2007 ; Purpose: Allows the searching the contents of PostScript ; documents using the MS provided Plain Text filter. ; See http://support.microsoft.com/kb/309173 ; This can be done with many different file types. WriteValue("HKEY_CLASSES_ROOT\.ps\PersistentHandler", "", "{5e941d80-bf96-11cd-b579-08002b30bfeb}", "REG_SZ")
TIF_REGFIX.KIX
- Location: \\IBSFP\NETLOGON\KIX.
- Explanation: Resets registry key that determines default program TIF images open in. Aquarius web requires Imaging Professional, not Preview, as MS has a habit of resetting this during patching. Deployed through Software Installation GPO.
IF setconsole("hide") ENDIF ; John Croson - 06/2007 ; Purpose: Reset registry key that determines default ; application that opens TIF files. If this ; fails to get reset, the next patch that MS ; releases for Imaging Preview resets this to ; it, instead of the Imaging program used for ; Aquarius Web. WriteValue("HKEY_CLASSES_ROOT\.tif", "", "Imaging.Document", "REG_SZ") WriteValue("HKEY_CLASSES_ROOT\.tiff", "", "Imaging.Document", "REG_SZ")
WELCOME.KIX
- Location: \\IBSFP\NETLOGON\KIX.
- Explanation: This sets the warning message before users log into their workstations. Deployed through LOGON.BAT.
IF setconsole("hide") ENDIF ; ; NT/W2K modify welcome text - Kixtart 3.63, 4.00 ; ; (c) scripting@wanadoo.nl - 2001 ; ; vs 1.02 - program ; ; 1.00 (20010505) original version ; 1.01 (20010701) - extract $ivalue to site defineable block. user can ; specify ; - $wLegalNoticeCaption ; - $wLegalNoticeText ; - $wLogonPrompt ; - $wWelcome ; - introduction of SKIP set_mode. it will only show ; the actual settings ; - new user information included by using $os variable ; 1.02 (20011120) - add "windows XP" ; - layout corrections ; $prgrm_version="1.02" ; $cr=CHR(10) $lf=CHR(13) $eol=$lf+$cr ; --------------------------------------------------------------------------- ; - site defined settings - ; --------------------------------------------------------------------------- $set_mode="yes" ; - yes = set welcome text ; - no = remove welcome text ; - skip = show actual welcome text $debug_mode="yes" ; - yes = user information to screen $wLegalNoticeCaption="Integrated Billing Systems" ; $wLegalNoticeText= "This computer is the property of the Integrated Billing Systems and subject to the appropriate use policies located in the following folder:"+$eol $wLegalNoticeText=$wLegalNoticeText+$eol $wLegalNoticeText=$wLegalNoticeText+" F:\IBS Policy & Procedures Manual\IBS Procedures\IT Procedures."+$eol $wLegalNoticeText=$wLegalNoticeText+$eol $wLegalNoticeText=$wLegalNoticeText+"Unauthorized use is a violation of compliance policies. This computer system, including all related equipment, networks, and network devices, is provided only for authorized use. Any or all uses of this system and all files on this system may be intercepted, monitored, recorded, copied, audited, inspected, and disclosed to authorized personnel. By using this system, the user consents to such interception, monitoring, recording, copying, auditing, inspection, and disclosure at the discretion of authorized personnel. Unauthorized or improper use of this system may result in administrative disciplinary action and civil and criminal penalties. By continuing to use this system, you indicate your awareness of and consent to these terms and conditions of use. "+$eol $wLegalNoticeText=$wLegalNoticeText+$eol $wLegalNoticeText=$wLegalNoticeText+" Log off immediately if you do not agree to the conditions stated in this warning."+$eol $wLegalNoticeText=$wLegalNoticeText+$eol $wLegalNoticeText=$wLegalNoticeText+" Last successful logon at "+LCASE(@day)+" "+@mdayno+"-"+LCASE(substr(@month,1,3))+"-"+@year+" "+@time ; $wLogonPrompt="Enter a username and password that is valid for this system." ; $wWelcome=" to the Integrated Billing Systems network" ; - text beside 'Begin Logon', 'Logon Information', 'Workstation Locked' + 'Unlock Workstation' - ; --------------------------------------------------------------------------- ; - - ; --------------------------------------------------------------------------- IF (@inwin = 1) $NT_mode="yes" ELSE $NT_mode="no" ENDIF ; $os="" $os_dos=@dos SELECT CASE ($NT_mode = "yes") AND ($os_dos = "5.1") ; - Windows XP - $os="XP" CASE ($NT_mode = "yes") AND ($os_dos = "5.0") ; - Windows 2000 - $os="W2K" CASE ($NT_mode = "yes") ; - Windows NT - $os="NT4" CASE ($NT_mode <> "yes") AND ($os_dos = "4.90") ; - Windows ME - $os="ME" CASE ($NT_mode <> "yes") AND ($os_dos = "4.10") ; - Windows 98 - $os="W98" CASE ($NT_mode <> "yes") AND ($os_dos = "4.0") ; - Windows 95 - $os="W95" CASE 1 $os="???" ; - undetermined - ENDSELECT ; IF ($NT_mode = "yes") $ikey="HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" IF (ExistKey($ikey) = 0) $ikey_ex="LegalNoticeCaption" $ivalue=$wLegalNoticeCaption GOSUB update_welcome_text ; $ikey_ex="LegalNoticeText" $ivalue=$wLegalNoticeText GOSUB update_welcome_text ; $ikey_ex="LogonPrompt" $ivalue=$wLogonPrompt GOSUB update_welcome_text ; $ikey_ex="Welcome" $ivalue=$wWelcome GOSUB update_welcome_text ENDIF ELSE IF ($debug_mode = "yes") ? "Update Welcome Messages - "+@kix ? ? "$$wLegalNoticeCaption" ? " "+$wLegalNoticeCaption ? "$$wLegalNoticeText" ? $wLegalNoticeText ? "$$wLogonPrompt" ? " "+$wLogonPrompt ? "$$wWelcome" ? " "+$wWelcome ? ENDIF ENDIF GOTO end_script :update_welcome_text SELECT CASE ($set_mode = "yes") IF ($debug_mode = "yes") IF (len(ReadValue($ikey, $ikey_ex)) <> 0) ? "<<<<<<> $ivalue) IF (WriteValue($ikey, $ikey_ex, $ivalue, "REG_SZ") <> 0) ? "Warning WELCOME-"+$ikey_ex+" "+@error+": "+@serror ENDIF ENDIF IF ($debug_mode = "yes") IF (len(ReadValue($ikey, $ikey_ex)) <> 0) ? ">>>>>> WELCOME (new): "+$ikey_ex+"=" ? ReadValue($ikey, $ikey_ex) ELSE ? ">>>>>> WELCOME (new): "+$ikey_ex+"="+ReadValue($ikey, $ikey_ex) ENDIF ENDIF IF ($debug_mode = "yes") ? ENDIF CASE ($set_mode = "no") IF (ExistKey($ikey) = 0) IF (WriteValue($ikey, $ikey_ex, "", "REG_SZ") <> 0) ? "Warning WELCOME-"+$ikey_ex+" "+@error+": "+@serror ENDIF ENDIF IF ($debug_mode = "yes") ? "Remove WELCOME: "+$ikey_ex+"="+ReadValue($ikey, $ikey_ex) ENDIF CASE ($set_mode = "skip") IF ($debug_mode = "yes") ? Substr($ikey_ex+" ",1,20)+" "+ReadValue($ikey, $ikey_ex) ENDIF ENDSELECT RETURN :end_script IF ($debug_mode = "yes") SELECT CASE ($set_mode = "yes") ? "Informative Welcome.KIX "+$os+": set_mode="+LCASE($set_mode)+" => update welcome info" CASE ($set_mode = "no") ? "Informative Welcome.KIX "+$os+": set_mode="+LCASE($set_mode)+" => remove welcome info" CASE ($set_mode = "skip") ? "Informative Welcome.KIX "+$os+": set_mode="+LCASE($set_mode)+" => show welcome info" CASE 1 ? "Informative Welcome.KIX "+$os+": set_mode="+LCASE($set_mode)+" => possible settings are 'yes/no/skip'" ENDSELECT IF ($NT_mode <> "yes") ? " no welcome info possible on "+$os+" version." ENDIF BREAK OFF flushkb
WSFTP_INI.KIX
- Location: \\IBSFP\NETLOGON\KIX.
- Explanation: Deploys WSFTP program settings. Deployed through LOGON.BAT.
IF setconsole("hide") ENDIF ; John Croson - 06/2006 ; Purpose: Keep WSFTP configuration files ; centralized and manageable. ; Copies config files based on ; group membership. ; Location of client ini config files $wsftpdir = "C:\Program Files\WS_FTP Pro" ; Location of server ini config files $sdir ="\\IBSFP\NETLOGON\WSFTP" ; Domain admins shouldn't be modified IF INGROUP("Domain Admins") EXIT ENDIF ;Remove unecessary WSFTP config files IF EXIST ("$wsftpdir\antiviru.ini") DEL "$wsftpdir\antiviru.ini" ENDIF IF EXIST ("$wsftpdir\archives.ini") DEL "$wsftpdir\archives.ini" ENDIF IF EXIST ("$wsftpdir\games.ini") DEL "$wsftpdir\games.ini" ENDIF IF EXIST ("$wsftpdir\hardware.ini") DEL "$wsftpdir\hardware.ini" ENDIF IF EXIST ("$wsftpdir\onlinese.ini") DEL "$wsftpdir\onlinese.ini" ENDIF IF EXIST ("$wsftpdir\software.ini") DEL "$wsftpdir\software.ini" ENDIF IF EXIST ("$wsftpdir\usgovern.ini") DEL "$wsftpdir\usgovern.ini" ENDIF ; This keeps a current copy of the WSFTP files on the users machine. IF EXIST ("$wsftpdir\WS_FTP.ini") SELECT CASE INGROUP("FTPMngmnt") ? "Management group..." MOVE "$wsftpdir\WS_FTP.ini" "$wsftpdir\WS_FTP.bak" COPY "$sdir\WS_FTP.ini" "$wsftpdir" COPY "$sdir\Management.ini" "$wsftpdir" COPY "$sdir\AccountsReceivable.ini" "$wsftpdir" COPY "$sdir\Collections.ini" "$wsftpdir" CASE INGROUP("FTPRecovery") ? "Recovery Group..." MOVE "$wsftpdir\WS_FTP.ini" "$wsftpdir\WS_FTP.bak" COPY "$sdir\WS_FTP.ini" "$wsftpdir" IF EXIST ("$wsftpdir\AccountsReceivable.ini") DEL "$wsftpdir\AccountsReceivable.ini" ENDIF IF EXIST ("$wsftpdir\Management.ini") DEL "$wsftpdir\Management.ini" ENDIF COPY "$sdir\Collections.ini" "$wsftpdir" CASE INGROUP("FTPAcctsRec") ? "Accounts recievable" MOVE "$wsftpdir\WS_FTP.ini" "$wsftpdir\WS_FTP.bak" COPY "$sdir\WS_FTP.ini" "$wsftpdir" IF EXIST ("$wsftpdir\Collections.ini") DEL "$wsftpdir\Collections.ini" ENDIF IF EXIST ("$wsftpdir\Management.ini") DEL "$wsftpdir\Management.ini" ENDIF COPY "$sdir\AccountsReceivable.ini" "$wsftpdir" CASE INGROUP("FTPSpecial") ? "Special Group" MOVE "$wsftpdir\WS_FTP.ini" "$wsftpdir\WS_FTP.bak" COPY "$sdir\FTP_Special\WS_FTP.ini" "$wsftpdir" COPY "$sdir\FTP_Special\Special.ini" "$wsftpdir" IF EXIST ("$wsftpdir\Collections.ini") DEL "$wsftpdir\Collections.ini" ENDIF IF EXIST ("$wsftpdir\Management.ini") DEL "$wsftpdir\Management.ini" ENDIF IF EXIST ("$wsftpdir\AccountsReceivable.ini") DEL "$wsftpdir\AccountsReceivable.ini" ENDIF CASE 1 ? "No group" IF EXIST ("$wsftpdir\Collections.ini") DEL "$wsftpdir\Collections.ini" ENDIF IF EXIST ("$wsftpdir\Management.ini") DEL "$wsftpdir\Management.ini" ENDIF IF EXIST ("$wsftpdir\AccountsReceivable.ini") DEL "$wsftpdir\AccountsReceivable.ini" ENDIF MOVE "wsftpdir\WS_FTP.bak" "wsftpdir\WS_FTP.ini" ENDSELECT ENDIF
OCR.BAT
- Location: D:\PROGRAM FILES\AQUARIUSOCRSERVICE
- Explanation: Used to stop and start the Aquarius OCR service. Necessary because the service runs so fast that documents get locked during normal scanning hours, which adversly affects that process.
- Schedule: Stops service at 6:30 A.M. and starts again at 6:00 P.M.
@ECHO OFF @SET STATUS=%1 IF %STATUS% == START GOTO STARTOCR IF %STATUS% == STOP GOTO STOPOCR :STARTOCR REM IF EXIST AQOCR_5.LOG DEL AQOCR_5.LOG REM IF EXIST AQOCR_4.LOG REN AQOCR_4.LOG AQOCR_5.LOG REM IF EXIST AQOCR_3.LOG REN AQOCR_3.LOG AQOCR_4.LOG REM IF EXIST AQOCR_2.LOG REN AQOCR_2.LOG AQOCR_3.LOG REM IF EXIST AQOCR_1.LOG REN AQOCR_1.LOG AQOCR_2.LOG REM REN AQOCR.LOG AQOCR_1.LOG REM CD.> AQOCR.LOG NET START "Aquarius OCR Service" GOTO END :STOPOCR net stop "Aquarius OCR Service" goto END :END EXIT
DAILY.BAT
- Location: \\IBSFP\NETLOGON\DEFRAG
- Explanation: Used to defragment the users hard drive daily, as a quick optimization job. Added to AT scheduler, and deployed through LOGON.BAT.
- Schedule: Monday - Friday @ 10:00pm.
@ECHO OFF :: Copy JKDefrag.exe to local hard drive IF NOT EXIST C:\JKDefragCMD.exe COPY \\IBSFP\NETLOGON\defrag\JKDefragCMD.exe C:\ :: First stop the Virus Scanning Service NET STOP "Symantec AntiVirus" :: clean out some files START /WAIT /MIN \\IBSFP\Netlogon\Logoff.bat START /WAIT /MIN %WINDIR%\system32\cscript.exe \\IBSFP\Netlogon\defrag\HotfixCleanup.vbs //B START /WAIT /MIN C:\jkdefragcmd.exe :: Restart the scanning service NET START "Symantec AntiVirus" :: ---------------------------------------------- :: Get outta here GOTO EOF :EOF EXIT
WEEKLY.BAT
- Location: \\IBSFP\NETLOGON\DEFRAG
- Explanation: Used to defragment the users hard drive weekly, as a full optimization job. Added to AT scheduler, and deployed through LOGON.BAT.
- Schedule: Sunday @ 10:00pm.
@ECHO OFF :: Copy JKDefrag.exe to local hard drive IF NOT EXIST C:\JKDefragCMD.exe COPY \\IBSFP\NETLOGON\defrag\JKDefragCMD.exe C:\ :: First stop the Virus Scanning Service NET STOP "Symantec AntiVirus" :: clean out some files START /WAIT /MIN \\IBSFP\Netlogon\Logoff.bat START /WAIT /MIN %WINDIR%\system32\cscript.exe \\IBSFP\Netlogon\defrag\HotfixCleanup.vbs //B START /WAIT /MIN C:\JkDefragcmd.exe -a 4 :: Restart the scanning service NET START "Symantec AntiVirus" :: ---------------------------------------------- :: Get outta here GOTO EOF :EOF EXIT
REBOOT.VBS
- Location: \\IBSFP\NETLOGON\DEFRAG
- Explanation: Used to politely ask the user permission to reboot. Added to AT scheduler, and deployed through LOGON.BAT.
- Schedule: Daily @ 7:30pm.
Option Explicit Dim BtnCode, rtn, oShell, OpSysSet, strUserName, oNetwork Set oShell = WScript.CreateObject ("WScript.shell") Set oNetwork = WScript.CreateObject("WScript.Network") strUserName = oNetwork.UserName If strUserName <> "" Then 'Ask the user nicely... BtnCode = oShell.PopUp("May I reboot now?", 1800, "REBOOT NOW?", 4 + 32) Select Case BtnCode ' Show an Yes (1) or No (2) button Case 6 rtn = oShell.PopUp("Thanks, be right back...", 5, "REBOOT APPROVED", 0) oShell.run "cmd /c shutdown.exe -r -t 0", 0 Case 7 rtn = oShell.PopUp("Ok, we'll wait until the next time.", 5, "REBOOT DECLINED", 0) Case -1 rtn = oShell.PopUp("Rebooting Windows Now...", 5, "REBOOTING", 0) oShell.run "cmd /c shutdown.exe -r -t 0", 0 End Select Else oShell.run "cmd /c shutdown.exe -r -t 0", 0 End If Set oShell = Nothing
HOTFIXCLEANUP.VBS
- Location: \\IBSFP\NETLOGON\DEFRAG
- Explanation: Used to clean up hotfix directories and associated files, removing them along the Add Remove entry.
- Called from LOGOFF.BAT, DAILY.BAT, and WEEKLY.BAT.
' HotfixCleanup.vbs ' Removes hotfix info from Add/Remove Programs, deletes uninstall folders, and ' deletes log files in systemroot dir. Hotfix install info is still available ' in system registry key "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\HotFix". ' ' Use computername as argument to clean remotely, or without any argument to ' clean the computer where it's being executed. ' ' 12/13/2003 John Eccles option explicit const HKEY_LOCAL_MACHINE = &H80000002 Dim OSRootDir, StrComputer, StdOut, oReg, OSRegKey, objWMIService, colSubfolders, objFolder Dim strQueryString1, strQueryString2, ErrResult,strKeyPath, arrSubKeys, strValueName, subkey Dim StrValue, CheckKey, strDirSearch, colFiles, regEx, objFile, retVal, ArgCheck, strReport If Wscript.Arguments.Count = 0 Then strComputer = "." Else strComputer = Wscript.Arguments.Item(0) End If strReport = "" Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_ strComputer & "\root\default:StdRegProv") Set regEx = New RegExp regEx.Pattern = "hotfix|[KQ]B*\d\d\d\d\d\d" regEx.IgnoreCase = True OSRegKey = "SOFTWARE\Microsoft\Windows NT\CurrentVersion" oReg.GetStringValue HKEY_LOCAL_MACHINE,OSRegKey,"SystemRoot",OSRootDir 'Delete Add/Remove Hotfix entries strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys strValueName = "DisplayName" For Each subkey In arrSubKeys StrValue = "" CheckKey = strKeyPath & "\" & subkey oReg.GetStringValue HKEY_LOCAL_MACHINE,CheckKey,strValueName,strValue If Not IsNull(strValue) Then retVal = regEx.Test(strValue) If retVal Then strReport = strReport & "Removed " & strValue & " entry from Add/Remove Programs" & vbCrLf oReg.DeleteKey HKEY_LOCAL_MACHINE, CheckKey End If End If Next 'Remove $ntuninstall dirs from SystemRoot Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") strQueryString1 = "Associators of {Win32_Directory.Name='" & OSRootDir & "'} " & "Where AssocClass = Win32_Subdirectory " & "ResultRole = PartComponent" Set colSubfolders = objWMIService.ExecQuery (strQueryString1) For Each objFolder in colSubfolders If Instr( UCase(objFolder.Name), "$NTUNINSTALL" ) > 0 then strReport = strReport & "Deleted " & objFolder.Name & " uninstall folder" & vbCrLf ErrResult = objFolder.Delete End If Next 'Delete Hotfix log files strDirSearch = "'\\" & Right( OSRootDir, (Len(OSRootDir) - 3)) & "\\'" strQueryString2 = "Select * from CIM_DataFile where Path = " & strDirSearch Set colFiles = objWMIService. ExecQuery(strQueryString2) regEx.Pattern = regEx.Pattern & "\.log" For Each objFile in colFiles retVal = regEx.Test(objFile.Name) If retVal Then strReport = strReport & "Deleted " & objFile.Name & " Hotfix log file" & VbCrLf ErrResult = objFile.Delete End If Next If strReport = "" Then 'Wscript.Echo "No Hotfix uninstall information was found on this computer." Else 'Wscript.Echo strReport End If
EMPTYTRASH.CMD
- Location: Terminal Server GPO
- Explanation: Used to purge Recycle bin upon each users logout.
@ECHO OFF
RD /S /Q C:\Recycler
Comments