Wie weise ich einer Benutzer einer OU Drucker, Netzlaufwerke, Verknüpfungen auf Desktop etc zu?
Hallo
Ich administriere ein Win 2003 Netzwerk mit 1 Server, ca 60 Clients und ca 200 User. AD, DNS; DHCP, Servergespeicherte Profile; läuft alles.
Meine Fragen:
1. Ich möchte den Benutzer einer OU Drucker und Netzlaufwerke zuweisen. Die Benutzer haben sich noch nie angemeldet, ihr Profil ist also noch inexistent.
Wenn die Benutzer sich das erste mal anmelden, erhalten sie den Default User in der Netlogon Freigabe und dann sollten sie eben nach OUs spezifische Netzlaufwerke, Drucker und Verknüfungen auf dem Desktop erhalten. Wie macht man das?
2. Wieviele Benutzer können gleichzeitig mit dem selben Benutzer angemeldet sein?
Vielen Dank für Eure Hilfe!
Gruss
Reto
Ich administriere ein Win 2003 Netzwerk mit 1 Server, ca 60 Clients und ca 200 User. AD, DNS; DHCP, Servergespeicherte Profile; läuft alles.
Meine Fragen:
1. Ich möchte den Benutzer einer OU Drucker und Netzlaufwerke zuweisen. Die Benutzer haben sich noch nie angemeldet, ihr Profil ist also noch inexistent.
Wenn die Benutzer sich das erste mal anmelden, erhalten sie den Default User in der Netlogon Freigabe und dann sollten sie eben nach OUs spezifische Netzlaufwerke, Drucker und Verknüfungen auf dem Desktop erhalten. Wie macht man das?
2. Wieviele Benutzer können gleichzeitig mit dem selben Benutzer angemeldet sein?
Vielen Dank für Eure Hilfe!
Gruss
Reto
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 35673
Url: https://administrator.de/contentid/35673
Ausgedruckt am: 23.11.2024 um 02:11 Uhr
4 Kommentare
Neuester Kommentar
Wie WaRCraFt schreibt über ein Loginscript und GPO.
Das Script könnte so aussehen:
(Auszug aus meinem Script - eventuell ist noch überflüssiges vorhanden)
Dim strComputerName
Dim strUserName
Dim strDomainName
Dim BtnCode
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")
'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
If UCase(strUserName) = "ADMINISTRATOR" Then
Call Adminlogin
Else
Call subdrivemap 'Aufruf der Subroutine zum Laufwerkmappen
End If
Call SubmapprinterLPT
'* Call Submapprinter
Call subdriverename
Call Favoriten
Call SubZusammenfassung
Call Zenworksstart
Sub subdrivemap()
' ### ADSI abfragen
adspath = "WinNT:" & strDomainName & "/" & strUserName
Set adsobj = GetObject( adspath )
'##### vorhandene Laufwerke löschen
On Error Resume Next
wshNetwork.RemoveNetworkDrive "I:", True, True
wshNetwork.RemoveNetworkDrive "L:", True, True
wshNetwork.RemoveNetworkDrive "P:", True, True
'##### Laufwerke mappen
wshNetwork.MapNetworkDrive "L:", "\\"&Server2&"\AUS"
wshNetwork.MapNetworkDrive "P:", "\\"&Server1&"\Pro"
wshNetwork.MapNetworkDrive "I:", "\\"&Server2&"\User\"& strUserName
For Each prop In adsobj.groups
'* Jetzt noch ein paar Laufwerke abhängig von Gruppenzugehörigkeit
'* ACHTUNG! Gruppennamen immer GROSS schreiben
Select Case UCase(prop.name)
Case "GRUPPENNAME"
wshNetwork.MapNetworkDrive "M:", "\\"&Server2&"\AUS\APEV"
End Select
Next
End Sub
Sub Submapprinter()
objOU.Filter=Array("printqueue")
For Each oPq In objOU
wshNetwork.AddWindowsPrinterConnection oPq.PrinterPath
Next
End Sub
Sub SubmapprinterLPT()
objOU.Filter=Array("printqueue") '*Filtert alle Printer Queue Objekte aus der OU des Benutzers
For Each oPq In objOU
If UCase(oPq.PrinterName) = UCase(objUser.extensionAttribute2) Then
On Error Resume Next
'* Trennt bei Vorhandensein die Verbindung von LPT1:
wshNetwork.RemovePrinterConnection "LPT1", True, True
wshNetwork.AddPrinterConnection "LPT1", oPq.PrinterPath
wshNetwork.AddWindowsPrinterConnection oPq.PrinterPath
wshNetwork.SetDefaultPrinter oPq.Printerpath
Else
wshNetwork.AddWindowsPrinterConnection oPq.PrinterPath
End If
Next
End Sub
Sub subdriverename()
For Each oShFolderItem In oShFolder.Items
Select Case oShFolderItem.Path
Case "I:\" oShFolderItem.Name = "Meine persönlichen Daten"
Case "L:\" oShFolderItem.Name = "Globaler Austausch"
Case "P:\" oShFolderItem.Name = "Projekt"
End Select
Next
Set oShell = Nothing
Set oShFolder = Nothing
Set oShFolderItem = Nothing
End Sub
Sub Favoriten ()
Set folder = objFSO.GetFolder(strFavoriten)
For Each file In folder.files
If file.type = "Verknüpfung" OR Shortcut Then
file.Delete
End If
Next
Set oUrlLink =WshShell.CreateShortcut(strFavoriten &"\Laufwerk I.lnk")
oUrlLink.TargetPath = "I:\"
oUrlLink.Save
Set oUrlLink =WshShell.CreateShortcut(strFavoriten &"\Laufwerk L.lnk")
oUrlLink.TargetPath = "L:\"
oUrlLink.Save
Set oUrlLink =WshShell.CreateShortcut(strFavoriten &"\Laufwerk M.lnk")
oUrlLink.TargetPath = "M:\"
oUrlLink.Save
End Sub
Sub SubZusammenfassung ()
Set colDrives = wshNetwork.EnumNetworkDrives
Set colPrinters = wshNetwork.EnumPrinterConnections
Dim CRLF
CRLF = Chr(13) & Chr(10)
Dim Company
Company = "Firmenname"
strMsg = "Anmelde Ergebnisse" & CRLF & CRLF & "Benutzername" & Chr(9) & "= " & strUserName & CRLF & "Computername" & Chr(9) & "= " & strComputerName & CRLF & "Domäne" & Chr(9) & Chr (9) & "= " & strDomainName & CRLF
'* Verbundene Laufwerke Listen
If colDrives.Count = 0 Then
strMsg = strMsg & CRLF & "Kein Netzlaufwerk ist verbunden." & CRLF
Else
strMsg = strMsg & CRLF & "Verbundene Netzlaufwerk(e):" & CRLF
For i = 0 To colDrives.Count - 1 Step 2
strMsg = strMsg & CRLF & colDrives(i) & Chr(9) & colDrives(i + 1)
Next
End If
'* Verbundene Drucker Listen
If colPrinters.Count = 0 Then
strMsg = strMsg & CRLF & CRLF & _
"Kein Netzwerk-Drucker ist verbunden." & CRLF
Else
strMsg = strMsg & CRLF & CRLF & _
"Verbundene Netzwerk-Drucker:" & CRLF
For i = 0 To colPrinters.Count - 1 Step 2
strMsg = strMsg & CRLF & colPrinters(i) & _
Chr(9) & colPrinters(i + 1)
Next
End If
strMsg = strMsg & CRLF & CRLF & "Dieses Fenster schließt sich in 10 Sekunden automatisch." & CRLF & "Wir wünschen noch einen schönen Arbeitstag"
BtnCode = WshShell.PopUp(strMsg,10,Company,64)
End Sub
Gruß Stefan
http://www.Admins-Tipps.de
Das Script könnte so aussehen:
(Auszug aus meinem Script - eventuell ist noch überflüssiges vorhanden)
Dim strComputerName
Dim strUserName
Dim strDomainName
Dim BtnCode
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")
'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
If UCase(strUserName) = "ADMINISTRATOR" Then
Call Adminlogin
Else
Call subdrivemap 'Aufruf der Subroutine zum Laufwerkmappen
End If
Call SubmapprinterLPT
'* Call Submapprinter
Call subdriverename
Call Favoriten
Call SubZusammenfassung
Call Zenworksstart
Sub subdrivemap()
' ### ADSI abfragen
adspath = "WinNT:" & strDomainName & "/" & strUserName
Set adsobj = GetObject( adspath )
'##### vorhandene Laufwerke löschen
On Error Resume Next
wshNetwork.RemoveNetworkDrive "I:", True, True
wshNetwork.RemoveNetworkDrive "L:", True, True
wshNetwork.RemoveNetworkDrive "P:", True, True
'##### Laufwerke mappen
wshNetwork.MapNetworkDrive "L:", "\\"&Server2&"\AUS"
wshNetwork.MapNetworkDrive "P:", "\\"&Server1&"\Pro"
wshNetwork.MapNetworkDrive "I:", "\\"&Server2&"\User\"& strUserName
For Each prop In adsobj.groups
'* Jetzt noch ein paar Laufwerke abhängig von Gruppenzugehörigkeit
'* ACHTUNG! Gruppennamen immer GROSS schreiben
Select Case UCase(prop.name)
Case "GRUPPENNAME"
wshNetwork.MapNetworkDrive "M:", "\\"&Server2&"\AUS\APEV"
End Select
Next
End Sub
Sub Submapprinter()
objOU.Filter=Array("printqueue")
For Each oPq In objOU
wshNetwork.AddWindowsPrinterConnection oPq.PrinterPath
Next
End Sub
Sub SubmapprinterLPT()
objOU.Filter=Array("printqueue") '*Filtert alle Printer Queue Objekte aus der OU des Benutzers
For Each oPq In objOU
If UCase(oPq.PrinterName) = UCase(objUser.extensionAttribute2) Then
On Error Resume Next
'* Trennt bei Vorhandensein die Verbindung von LPT1:
wshNetwork.RemovePrinterConnection "LPT1", True, True
wshNetwork.AddPrinterConnection "LPT1", oPq.PrinterPath
wshNetwork.AddWindowsPrinterConnection oPq.PrinterPath
wshNetwork.SetDefaultPrinter oPq.Printerpath
Else
wshNetwork.AddWindowsPrinterConnection oPq.PrinterPath
End If
Next
End Sub
Sub subdriverename()
For Each oShFolderItem In oShFolder.Items
Select Case oShFolderItem.Path
Case "I:\" oShFolderItem.Name = "Meine persönlichen Daten"
Case "L:\" oShFolderItem.Name = "Globaler Austausch"
Case "P:\" oShFolderItem.Name = "Projekt"
End Select
Next
Set oShell = Nothing
Set oShFolder = Nothing
Set oShFolderItem = Nothing
End Sub
Sub Favoriten ()
Set folder = objFSO.GetFolder(strFavoriten)
For Each file In folder.files
If file.type = "Verknüpfung" OR Shortcut Then
file.Delete
End If
Next
Set oUrlLink =WshShell.CreateShortcut(strFavoriten &"\Laufwerk I.lnk")
oUrlLink.TargetPath = "I:\"
oUrlLink.Save
Set oUrlLink =WshShell.CreateShortcut(strFavoriten &"\Laufwerk L.lnk")
oUrlLink.TargetPath = "L:\"
oUrlLink.Save
Set oUrlLink =WshShell.CreateShortcut(strFavoriten &"\Laufwerk M.lnk")
oUrlLink.TargetPath = "M:\"
oUrlLink.Save
End Sub
Sub SubZusammenfassung ()
Set colDrives = wshNetwork.EnumNetworkDrives
Set colPrinters = wshNetwork.EnumPrinterConnections
Dim CRLF
CRLF = Chr(13) & Chr(10)
Dim Company
Company = "Firmenname"
strMsg = "Anmelde Ergebnisse" & CRLF & CRLF & "Benutzername" & Chr(9) & "= " & strUserName & CRLF & "Computername" & Chr(9) & "= " & strComputerName & CRLF & "Domäne" & Chr(9) & Chr (9) & "= " & strDomainName & CRLF
'* Verbundene Laufwerke Listen
If colDrives.Count = 0 Then
strMsg = strMsg & CRLF & "Kein Netzlaufwerk ist verbunden." & CRLF
Else
strMsg = strMsg & CRLF & "Verbundene Netzlaufwerk(e):" & CRLF
For i = 0 To colDrives.Count - 1 Step 2
strMsg = strMsg & CRLF & colDrives(i) & Chr(9) & colDrives(i + 1)
Next
End If
'* Verbundene Drucker Listen
If colPrinters.Count = 0 Then
strMsg = strMsg & CRLF & CRLF & _
"Kein Netzwerk-Drucker ist verbunden." & CRLF
Else
strMsg = strMsg & CRLF & CRLF & _
"Verbundene Netzwerk-Drucker:" & CRLF
For i = 0 To colPrinters.Count - 1 Step 2
strMsg = strMsg & CRLF & colPrinters(i) & _
Chr(9) & colPrinters(i + 1)
Next
End If
strMsg = strMsg & CRLF & CRLF & "Dieses Fenster schließt sich in 10 Sekunden automatisch." & CRLF & "Wir wünschen noch einen schönen Arbeitstag"
BtnCode = WshShell.PopUp(strMsg,10,Company,64)
End Sub
Gruß Stefan
http://www.Admins-Tipps.de
genau den teil des vbs-scripts hab ich weggelassen, moment ... steht aber auf meiner Homepage:
siehe: http://www.admins-tipps.de/Microsoft/Windows_Scripting_Host_%28WSH%29/V ...
moment, steht doch oben schon drin - die routine subdriverename
siehe: http://www.admins-tipps.de/Microsoft/Windows_Scripting_Host_%28WSH%29/V ...
moment, steht doch oben schon drin - die routine subdriverename