' Logon script 10.11.03 ' last edited by froder@cicero.uio.no 10.06.04 On error Resume Next Dim strUser, strWWWpath, oFS, oExec, oDrives,oWshShell, oWshNetwork, oADSysInfo, oCurrentUser Set oFS = CreateObject("Scripting.FileSystemObject") Set oWshShell = CreateObject("WScript.Shell") 'set system time... Set oExec = oWshShell.Exec("net time /set /yes") Set oWshNetwork = WScript.CreateObject("WScript.Network") Set oDrives = oWshNetwork.EnumNetworkDrives strUser = oWshNetwork.userName strDomain = "UIO" oWshNetwork.AddWindowsPrinterConnection "\\garm\bob" oWshNetwork.AddWindowsPrinterConnection "\\o3\rajendra" '*** Monterer default printer.. cics70=(folk i nabobygningen) IF IsMember("cics70-gruppe", strUser, strDomain) Then oWshNetwork.SetDefaultPrinter "\\o3\rajendra" Else oWshNetwork.SetDefaultPrinter "\\garm\bob" End If '* Monterer W: Benytter ADSI LDAP-provider for å luke ut sambaserver. '* takk til oyvind.sorbye@stv og $MS Set oADSysInfo = CreateObject("ADSystemInfo") Set oCurrentUser = GetObject("LDAP://" & oADSysInfo.UserName) '* Finner sambaserveren til brukeren og lager ressursstreng strWWWpath="\\" + Split(oCurrentUser.homeDirectory,"\")(2) +"\my_www_docs" oWshNetwork.MapNetworkDrive "w:",strWWWpath oWshNetwork.MapNetworkDrive "t:", "\\solflekk\transfer" '*** Her monterer vi en disk hvis brukeren er medelem av cicgis-gruppe. Vi har '*** benyttet en litt mer omfattende rutine som sikrer at det ikke henger igjen '*** persistente oppkoplinger av u: fra tidligere sesjoner If IsMember("cicgis-gruppe", strUser, strDomain) Then Err.Clear oWshNetwork.MapNetworkDrive "u:","\\solflekk\gis" If Err.Number <> 0 Then Err.Clear On Error GoTo 0 oWshNetwork.RemoveNetworkDrive "u:", True, True oWshNetwork.MapNetworkDrive "u:","\\solflekk\gis" End If On Error GoTo 0 End If '*** Calling the good old "archive-bit backup routine" IF oFS.FileExists("C:\bin\" + strUser + ".txt") THEN Set oExec = oWshShell.Exec("\\solflekk\netlogon\backNT.bat " + strUser) Do While oExec.Status = 0 WScript.Sleep 100 Loop End If '********************************************************************************************* ' Fuction - checks recursive for group membership - doesnt list nested global groups '********************************************************************************************* Function IsMember(strGroup, strUser, strDomain) Dim objMember, objGroup On Error Resume Next ' Get reference to scanned group, if it can connect, it is a group Set objGroup = GetObject("WinNT://" & strDomain & "/" & strGroup & ",group") ' Is the given scanned group really a group? Check error of the line above If Err.Number = 0 Then ' Is the searched user a direct member of the group? No recursive checking here IsMember = objGroup.IsMember("WinNT://" & strDomain & "/" & strUser) If Not IsMember Then ' Search the nesting groups For Each objMember In objGroup.Members ' Recursive funtion call IsMember = IsMember(objMember.Name, strUser, strDomain) ' Membership found, exit loop If IsMember Then Exit For Next ' For Each objMember In objGroup.Members End If ' If Not IsMember Else ' If Err.Number = 0 ' Can't search in a user -> no group IsMember = False End If ' If Err.Number = 0 On Error Goto 0 End Function