'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ '~~ ~~ '~~ Logon script to set working environment ~~ '~~ ~~ '~~ Originally generated By ScriptBuilder v1.0 ~~ '~~ Last modified By D. Jones on 07/03/08 ~~ '~~ ~~ '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ '~~~~~~~~~~~~~~ Set Environment Variables ~~~~~~~~~~~~~~~~ OPTION EXPLICIT ON ERROR RESUME NEXT DIM WSHNetwork, objFSO, oShell, WSHShell, NetDrives DIM ComputerName, UserName SET WSHNetwork = CreateObject("Wscript.Network") SET objFSO = CreateObject("Scripting.FileSystemObject") SET oShell = CreateObject("Shell.Application") SET WSHShell = CreateObject("Wscript.Shell") Set NetDrives = WSHNetwork.EnumNetworkDrives ComputerName = WSHNetwork.ComputerName UserName = UCASE(WSHNetwork.UserName) '~~~~~~~~~~~~~~ Clean Up Any Previous Settings ~~~~~~~~~~~ RemoveNetworkPrinters RemoveNetworkDrives '~~~~~~~~~~~~~~ Wait For Disconnect ~~~~~~~~~~~~~~~~~~~~~~ wscript.sleep 300 '~~~~~~~~~~~~~~ Add Network Printers By Computer ~~~~~~~~~ IF BeginsWith(ComputerName,"AMBER") THEN AddPrinter "\\server1\AmberBW", True AddPrinter "\\server1\AmberColour", False END IF IF BeginsWith(ComputerName,"AMETHYST") THEN 'AddPrinter "\\server1\AmethystBW", True 'AddPrinter "\\server1\AmethystColour", False END IF IF BeginsWith(ComputerName,"CORAL") THEN 'AddPrinter "\\server1\ReceptionColour", True 'AddPrinter "\\server1\ReceptionBW", False END IF IF BeginsWith(ComputerName,"CURLAP") THEN AddPrinter "\\server1\IoliteBW", False AddPrinter "\\server1\JadeBW", False 'AddPrinter "\\server1\AmethystColour", False AddPrinter "\\server1\MoonstoneBW", False AddPrinter "\\server1\MoonstoneColour", False AddPrinter "\\server1\AmberBW", False AddPrinter "\\server1\JasperColour", False AddPrinter "\\server1\JadeColour", False AddPrinter "\\server1\JasperBW", False 'AddPrinter "\\server1\EmeraldColour", False AddPrinter "\\server1\AmberColour", False 'AddPrinter "\\server1\ReceptionColour", False 'AddPrinter "\\server1\EmeraldBW", False 'AddPrinter "\\server1\ReceptionBW", False AddPrinter "\\server1\IoliteColour", False 'AddPrinter "\\server1\AmethystBW", False END IF IF BeginsWith(ComputerName,"EMERALD") THEN 'AddPrinter "\\server1\EmeraldColour", False 'AddPrinter "\\server1\EmeraldBW", True END IF IF BeginsWith(ComputerName,"IOLITE") THEN AddPrinter "\\server1\IoliteBW", True AddPrinter "\\server1\IoliteColour", False END IF IF BeginsWith(ComputerName,"JADE") THEN AddPrinter "\\server1\JadeBW", True AddPrinter "\\server1\JadeColour", False END IF IF BeginsWith(ComputerName,"JASPER") THEN AddPrinter "\\server1\JasperColour", False AddPrinter "\\server1\JasperBW", True END IF IF BeginsWith(ComputerName,"LC") THEN 'AddPrinter "\\server1\AmethystBW", True AddPrinter "\\server1\IoliteBW", False AddPrinter "\\server1\JasperColour", False 'AddPrinter "\\server1\AmethystColour", False AddPrinter "\\server1\JasperBW", False AddPrinter "\\server1\MoonstoneColour", False AddPrinter "\\server1\IoliteColour", False AddPrinter "\\server1\MoonstoneBW", False END IF IF BeginsWith(ComputerName,"MOONSTONE") THEN AddPrinter "\\server1\MoonstoneColour", False AddPrinter "\\server1\MoonstoneBW", True END IF IF BeginsWith(ComputerName,"OFFICE") THEN AddPrinter "\\server1\StaffLaser", False AddPrinter "\\server1\OfficeLaser", True END IF IF BeginsWith(ComputerName,"PEARL") THEN 'AddPrinter "\\server1\AmethystBW", True 'AddPrinter "\\server1\AmethystColour", False END IF IF BeginsWith(ComputerName,"RUBY") THEN 'AddPrinter "\\server1\ReceptionColour", False 'AddPrinter "\\server1\ReceptionBW", True END IF IF BeginsWith(ComputerName,"SAPPHIRE") THEN AddPrinter "\\server1\JasperBW", True AddPrinter "\\server1\JasperColour", False END IF IF BeginsWith(ComputerName,"STAFFLAP") THEN AddPrinter "\\server1\JasperColour", False AddPrinter "\\server1\OfficeLaser", False 'AddPrinter "\\server1\EmeraldColour", False AddPrinter "\\server1\AmberColour", False AddPrinter "\\server1\JadeColour", False AddPrinter "\\server1\MoonstoneColour", False AddPrinter "\\server1\IoliteColour", False AddPrinter "\\server1\StaffLaser", True 'AddPrinter "\\server1\ReceptionColour", False 'AddPrinter "\\server1\AmethystColour", False END IF IF BeginsWith(ComputerName,"3389") THEN AddPrinter "\\server1\JasperColour", False AddPrinter "\\server1\OfficeLaser", False 'AddPrinter "\\server1\EmeraldColour", False AddPrinter "\\server1\AmberColour", False AddPrinter "\\server1\JadeColour", False AddPrinter "\\server1\MoonstoneColour", False AddPrinter "\\server1\IoliteColour", False AddPrinter "\\server1\StaffLaser", True 'AddPrinter "\\server1\ReceptionColour", False 'AddPrinter "\\server1\AmethystColour", False END IF IF BeginsWith(ComputerName,"TANZANITE") THEN AddPrinter "\\server1\IoliteColour", False AddPrinter "\\server1\IoliteBW", True END IF IF BeginsWith(ComputerName,"TOPAZ") THEN AddPrinter "\\server1\AmberColour", False AddPrinter "\\server1\AmberBW", True END IF IF BeginsWith(ComputerName,"TURQUOISE") THEN AddPrinter "\\server1\MoonstoneBW", True AddPrinter "\\server1\MoonstoneColour", False END IF '~~~~~~~~~~~~~~ Map Network Drives By User Group ~~~~~~~~~ IF IsMember("ANCILLARY STAFF") THEN MapDrive "G:", "\\server1\Staff Share$" mDrive1 = "G:\" oShell.NameSpace(mDrive1).Self.Name = "School Organisation" END IF IF IsMember("CLASS TEACHERS") THEN MapDrive "J:", "\\server1\Curriculum$" MapDrive "G:", "\\server1\Staff Share$" MapDrive "R:", "\\server1\Pupil Resources$" MapDrive "P:", "\\server1\Pupils$" mDrive1 = "G:\" mDrive2 = "J:\" mDrive3 = "P:\" mDrive4 = "R:\" oShell.NameSpace(mDrive1).Self.Name = "School Organisation" oShell.NameSpace(mDrive2).Self.Name = "Curriculum Planning" oShell.NameSpace(mDrive3).Self.Name = "Pupil Folders" oShell.NameSpace(mDrive4).Self.Name = "Pupil Resources" END IF IF IsMember("OFFICE STAFF") THEN MapDrive "O:", "\\server1\Office Share$" MapDrive "G:", "\\server1\Staff Share$" MapDrive "S:", "\\server1\Adapps$" mDrive1 = "G:\" mDrive5 = "O:\" mDrive6 = "S:\" oShell.NameSpace(mDrive1).Self.Name = "School Organisation" oShell.NameSpace(mDrive5).Self.Name = "Office" oShell.NameSpace(mDrive6).Self.Name = "MIS" END IF IF IsMember("PUPILS") THEN MapDrive "R:", "\\server1\Pupil Resources$" MapDrive "P:", "\\server1\Pupils$" mDrive3 = "P:\" mDrive4 = "R:\" oShell.NameSpace(mDrive3).Self.Name = "Pupil Folders" oShell.NameSpace(mDrive4).Self.Name = "Pupil Resources" END IF IF IsMember("SLT") THEN MapDrive "O:", "\\server1\Office Share$" MapDrive "J:", "\\server1\Curriculum$" MapDrive "P:", "\\server1\Pupils$" MapDrive "R:", "\\server1\Pupil Resources$" MapDrive "S:", "\\server1\Adapps$" MapDrive "G:", "\\server1\Staff Share$" mDrive1 = "G:\" mDrive2 = "J:\" mDrive3 = "P:\" mDrive4 = "R:\" mDrive5 = "O:\" mDrive6 = "S:\" oShell.NameSpace(mDrive1).Self.Name = "School Organisation" oShell.NameSpace(mDrive2).Self.Name = "Curriculum Planning" oShell.NameSpace(mDrive3).Self.Name = "Pupil Folders" oShell.NameSpace(mDrive4).Self.Name = "Pupil Resources" oShell.NameSpace(mDrive5).Self.Name = "Office" oShell.NameSpace(mDrive6).Self.Name = "MIS" END IF IF IsMember("TAS") THEN MapDrive "J:", "\\server1\Curriculum$" MapDrive "P:", "\\server1\Pupils$" MapDrive "G:", "\\server1\Staff Share$" MapDrive "R:", "\\server1\Pupil Resources$" mDrive1 = "G:\" mDrive2 = "J:\" mDrive3 = "P:\" mDrive4 = "R:\" oShell.NameSpace(mDrive1).Self.Name = "School Organisation" oShell.NameSpace(mDrive2).Self.Name = "Curriculum Planning" oShell.NameSpace(mDrive3).Self.Name = "Pupil Folders" oShell.NameSpace(mDrive4).Self.Name = "Pupil Resources" END IF '~~~~~~~~~~~~~~ Add Further Settings ~~~~~~~~~~~~~~~~~~~~~ 'RenameNetworkDrives BGInfo StartMenuClick CopyMoveToFolder '~~~~~~~~~~~~~~ Sub Routine Code ~~~~~~~~~~~~~~~~~~~~~~~~~ sub RemoveNetworkPrinters Dim i Dim objPrinters,WSHNetwork Dim PrinterPath Set WSHNetwork = WScript.CreateObject("WScript.Network") Set objPrinters = WSHNetwork.EnumPrinterConnections for i = 0 to objPrinters.Count - 1 PrinterPath = objPrinters.Item(i) ' * Only remove network printers if mid(PrinterPath, 1, 2) = "\\" then WSHNetwork.RemovePrinterConnection PrinterPath, True, True end if next end sub sub RemoveNetworkDrives Dim NetDrives Dim i Set WSHNetwork = WScript.CreateObject("WScript.Network") Set NetDrives = WSHNetwork.EnumNetworkDrives If NetDrives.Count <> 0 Then For i = 0 To NetDrives.Count - 1 WSHNetwork.RemoveNetworkDrive NetDrives(i) Next End If end sub 'sub RenameNetworkDrives 'mDrive1 = "G:\" 'mDrive2 = "J:\" 'mDrive3 = "O:\" 'mDrive4 = "P:\" 'mDrive5 = "R:\" 'mDrive6 = "S:\" 'Set oShell = CreateObject("Shell.Application") 'oShell.NameSpace(mDrive1).Self.Name = "School Organisation" 'oShell.NameSpace(mDrive2).Self.Name = "Curriculum Planning" 'oShell.NameSpace(mDrive3).Self.Name = "Office" 'oShell.NameSpace(mDrive4).Self.Name = "Pupil Folders" 'oShell.NameSpace(mDrive5).Self.Name = "Pupil Resources" 'oShell.NameSpace(mDrive6).Self.Name = "MIS" 'end sub sub BGInfo Set objShell = CreateObject("Wscript.Shell") objShell.Run "\\server1\NETLOGON\BGInfo\BGInfo.exe \\server1\NETLOGON\BGInfo\Default.bgi /nolicprompt /timer:0", 1, True end sub sub StartMenuClick Dim smpath Set WSHShell = CreateObject("Wscript.Shell") smpath = "HKCU\Control Panel\Desktop\" 'The following line will REQUIRE a click in the start menu WSHShell.RegWrite smpath & "MenuShowDelay","65535","REG_SZ" 'To undo what the above line has done, 'comment out the above line and uncomment the following... 'WSHShell.RegWrite smpath & "MenuShowDelay","400","REG_SZ" end sub sub CopyMoveToFolder Dim ctmtpath Set WSHShell = CreateObject("Wscript.Shell") ctmtpath = "HKEY_CLASSES_ROOT\AllFilesystemObjects\shellex\ContextMenuHandlers\" WSHShell.RegWrite ctmtpath,"CopyTo" WSHShell.RegWrite ctmtpath & "\CopyTo\","{C2FBB630-2971-11D1-A18C-00C04FD75D13}" WSHShell.RegWrite ctmtpath,"MoveTo" WSHShell.RegWrite ctmtpath & "\MoveTo\","{C2FBB631-2971-11d1-A18C-00C04FD75D13}" end sub '~~~~~~~~~~~~~~ Built-in Functions ~~~~~~~~~~~~~~~~~~~~~~~ Function EndsWith(ByVal str1, ByVal str2) If Len(str2) > Len(str1) Then EndsWith = False Else If Mid(str1, Len(str1) - Len(str2) + 1, Len(str2)) = str2 Then EndsWith = True Else EndsWith = False End If End If End Function Function BeginsWith(ByVal str1, ByVal str2) If Mid(str1, 1, Len(str2)) = str2 Then BeginsWith = True Else BeginsWith = False End If End Function Function IsMember(Byval groupName) DIM domain, blnIsMember DIM objUser, grp domain = WSHNetwork.UserDomain blnIsMember = False SET objUser = GetObject("WinNT://" & domain & "/" & UserName & ",user") For Each grp In objUser.Groups If LCASE(grp.Name) = LCASE(groupName) Then blnIsMember = True Exit For End If Next IsMember = blnIsMember End Function Function MapDrive(Byval Drive, Byval Path) If Not objFSO.DriveExists(Drive) Then WSHNetwork.MapNetworkDrive Drive, Path End If End Function Function AddPrinter(Byval PrintServer, Byval Default) WSHNetwork.AddWindowsPrinterConnection(PrintServer) IF Default THEN WSHNetwork.SetDefaultPrinter PrintServer End If End Function '~~~~~~~~~~~~~~ Clean Up Variables ~~~~~~~~~~~~~~~~~~~~~~~ set WSHNetwork = Nothing Set objFSO = nothing Set objUser = nothing Set objShell = nothing Set oShell = nothing Set clDrives = nothing Set objPrinters = nothing Set smpath = nothing '~~~~~~~~~~~~~~ Quit the Script ~~~~~~~~~~~~~~~~~~~~~~~~~~ wscript.quit