derlomi
Goto Top

VB-Script für Überprüfung der PC-OU bei Anmeldung und gleichzeitiges mappen von festgelegten netzlaufwerken

Hab leider noch nich so wirklich erfahrung mit VB-Scripts

Hallo leute,

hab nen kleinen problem und ich hoffe ihr könnt mir helfen.

Ich hab meine Ausbildung als FISI vor 4 Mon angefangen und habe noch nich mit VB-Scripts (nut mir Batchdateien) gearbeitet.
Ich soll jetzt ein Script schreiben, welches bei uns in der Firma bei der Anmeldung an einem PC über das AD die Computer und Benutzer-OU überprüft und dann die dazugehörigen Netzlaufwerke mappt.

Es soll einfach nur eine erleichterung sein weil bei uns die Azubis in verschiedenen Abteilungen arbeiten und wo verschiedene Netzlaufwerke zur verfügung stehen sollen.

Ich bin echt ratlos.....=(

hab schon suchfunktion benutzt aber so wirklich viel hab ich da nich gefunden und wenn dann war das nich das passende.

Ich hoffe ihr könnt mich helfen.

MFG

Tobias

Content-Key: 103771

Url: https://administrator.de/contentid/103771

Ausgedruckt am: 28.03.2024 um 16:03 Uhr

Mitglied: keksdieb
keksdieb 10.12.2008 um 16:15:36 Uhr
Goto Top
Moin moin,

Mit VB Script eigentlich gar nicht so schwer:

Dim strComputerName 
Dim strUserName 
Dim strDomainName 

Dim objADSysInfo 
Dim wshNetwork 
Dim WshShell 
Dim WshSysEnv 
Dim oShell 
Dim oShFolder 
Dim objUser 
Dim objOU 
Dim rootDSE 
Dim oPq 
Set wshNetwork = WScript.CreateObject( "WScript.Network" )   
Set WshShell = WScript.CreateObject("WScript.Shell")   
Set WshProcEnv = WshShell.Environment("Process")   
Set WshUserEnv = WshShell.Environment("USER")   
Set objADSysInfo = CreateObject("ADSystemInfo")   
Set oShell = CreateObject("Shell.application")   
Set oShFolder = oShell.Namespace(17) 
Set objUser = GetObject("LDAP://" & objADSysInfo.UserName)   
Set objOU = GetObject(objUser.parent) 
Set objFSO = CreateObject("Scripting.FileSystemObject")   
Server1 = "Server1"   
Server2 = "server2"   
Server3 = "usw"  
Server4 = "etc"  

'Warten bis der Anmeldename des Users ermittelt wurde   
Do While wshNetwork.username = ""   
   WScript.Sleep 250 
Loop 

strComputerName = wshNetwork.computerName 
strUserName = wshNetwork.userName 
strDomainName = wshNetwork.userDomain 

'Aufruf der Subroutine zum Laufwerkmappen  
Call subprintermap 

Sub subprintermap() 

' ### ADSI abfragen   
adspath = "WinNT://" & strDomainName & "/" & strUserName   

Set adsobj = GetObject( adspath ) 

'vorhandene Laufwerke löschen   

On Error Resume Next 
wshNetwork.RemoveNetworkDrive "L:", True, True  
'wshNetwork.RemoveNetworkDrive "P:", True, True   
'wshNetwork.RemoveNetworkDrive "T:", True, True   

''für jeden gültige Laufwerke mappen   
wshNetwork.MapNetworkDrive "P:", "\\"&Server1&"\Freigabe\für\jeden"   

'###Laufwerk "K:" für spezielle Anwender auf bestimmte Verzeichnisse mappen  
Select Case (StrUserName)
	
	'Anwender User 1  
	Case "username1"  
		wshNetwork.MapNetworkDrive "K:", "\\"&Server1&"\Pfad\zum\Ordner"  
		
	'Anwender User 2	  
	Case "username2"  
		wshNetwork.MapNetworkDrive "K:", "\\"&Server1&"\anderer\Pfad\zum\Ordner"  
				
End Select


'###AD Gruppen auswerten  
For Each prop In adsobj.groups 



'###Laufwerk U:   
If prop.name="Dom-Gruppe" Then   
   wshNetwork.MapNetworkDrive "L:", "\\"&Server3&"\Pfad"  
   wshNetwork.MapNetworkDrive "U:", "\\"&Server1&"\Pfad\weitererPfad\etc"  
End If

Next

End Sub

Das Script geht bei uns noch weiter, du musst es also nach deinen Bedürfnissen anpassen und gegebenenfalls ändern.
Viele der Variablen brauchst du gar nicht, aber ich war jetzt zu faul die irrelevanten zu löschen...
Aber hiermit hast du einen Denkanstoß face-smile

Gruß Keks