Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Loginscript mit Gruppenabfrage

Frage Entwicklung

Mitglied: xm-bit

xm-bit (Level 2) - Jetzt verbinden

09.11.2009, aktualisiert 16:53 Uhr, 4178 Aufrufe, 13 Kommentare

Hallo und guten morgen,

ich habe ein Problem und brauche eure Unterstützung.

Nach langen suchen habe ich nun ein Script gefunden was ich gerne einsetzen möchte. Nur leider funktioniert es nicht so wie ich möchte.

Ich möchte ein Script haben, was prüft, welcher User in welchen Gruppen ist, sollte ein Übereinstimmung sein, dann bekommt er das jeweilige Laufwerk und den jeweiligen Drucker.

Der DC ist ein Server 2008, es sind mehrere Terminalserver da.
Es ist ein Fileserver vorhanden, und die Workstation bestehen zum größten Teil aus Igel-Thinclients.
Hier ist ein Script was ich gefunden , und ein wenig angepaßt habe.

Aber ich bin mir nicht sicher, ob es richtig ist, was ich gemacht habe.

Wenn ihr euch das mal anschaut, und mir eine Tipp geben könnt, den auch eine "Laie in Scripting" versteht, bin ich euch sehr dankbar.

01.
Dim strComputerName  
02.
Dim strUserName  
03.
Dim strDomainName  
04.
Dim strPrintSRV 
05.
Dim strPrintSRV2 
06.
 
07.
Dim objADSysInfo  
08.
Dim wshNetwork  
09.
Dim WshShell  
10.
Dim WshSysEnv  
11.
Dim oShell  
12.
Dim oShFolder  
13.
Dim objUser  
14.
Dim objOU  
15.
Dim rootDSE  
16.
Dim oPq  
17.
Dim ws 
18.
Set wshNetwork = WScript.CreateObject( "WScript.Network" )  
19.
Set WshShell = WScript.CreateObject("WScript.Shell")  
20.
Set WshProcEnv = WshShell.Environment("Process")  
21.
Set WshUserEnv = WshShell.Environment("USER")  
22.
Set objADSysInfo = CreateObject("ADSystemInfo")  
23.
Set oShell = CreateObject("Shell.application") 				 
24.
Set oShFolder = oShell.Namespace(17)  
25.
Set objUser = GetObject("LDAP://" & objADSysInfo.UserName)  
26.
Set objOU = GetObject(objUser.parent)  
27.
Set objFSO = CreateObject("Scripting.FileSystemObject")  
28.
strPrintSRV = "printsrv" 
29.
Server1 = "DC-Server"  
30.
Server2 = "file-Server"  
31.
 
32.
'Warten bis der Anmeldename des Users ermittelt wurde  
33.
Do While wshNetwork.username = ""  
34.
   WScript.Sleep 25  
35.
Loop  
36.
 
37.
strComputerName = wshNetwork.computerName  
38.
strUserName = wshNetwork.userName  
39.
strDomainName = wshNetwork.userDomain  
40.
 
41.
Call subdrivemap 'Aufruf der Subroutine zum Laufwerkmappen  
42.
 
43.
Sub subdrivemap()  
44.
 
45.
' ### ADSI abfragen  
46.
adspath = "WinNT://" & strDomainName & "/" & strUserName  
47.
 
48.
Set adsobj = GetObject( adspath )  
49.
WScript.Echo (Test) 
50.
'##### vorhandene Laufwerke löschen  
51.
 
52.
On Error Resume Next  
53.
wshNetwork.RemoveNetworkDrive "I:", True, True  
54.
wshNetwork.RemoveNetworkDrive "J:", True, True  
55.
wshNetwork.RemoveNetworkDrive "K:", True, True  
56.
wshNetwork.RemoveNetworkDrive "L:", True, True  
57.
wshNetwork.RemoveNetworkDrive "H:", True, True  
58.
wshNetwork.RemoveNetworkDrive "N:", True, True  
59.
wshNetwork.RemoveNetworkDrive "O:", True, True  
60.
wshNetwork.RemoveNetworkDrive "Z:", True, True  
61.
wshNetwork.RemoveNetworkDrive "P:", True, True  
62.
wshNetwork.RemoveNetworkDrive "Q:", True, True  
63.
wshNetwork.RemoveNetworkDrive "S:", True, True  
64.
wshNetwork.RemoveNetworkDrive "W:", True, True  
65.
wshNetwork.RemoveNetworkDrive "X:", True, True  
66.
wshNetwork.RemoveNetworkDrive "M:", True, True  
67.
 
68.
'##### für jeden gültige Laufwerke mappen  
69.
'wshNetwork.MapNetworkDrive "I:", "\\"&Server2&"\User\"& strUserName  
70.
'wshNetwork.MapNetworkDrive "L:", "\\"&Server2&"\AUS"  
71.
wshNetwork.MapNetworkDrive "V:", "\\" & Server2 & "\Vorlagen" 
72.
wshNetwork.MapNetworkDrive "X:", "\\" & Server1 & "\Xerox" 
73.
 
74.
'Drucker mappen 
75.
wshNetwork.AddWindowsPrinterConnection "\\" & strPrintSRV2 & "\BrotherH" 
76.
wshNetwork.AddWindowsPrinterConnection "\\" & strPrintSRV2 & "\GPKlassig" 
77.
wshNetwork.AddWindowsPrinterConnection "\\" & strPrintSRV2 & "\KyoceraF" 
78.
 
79.
'##### Gruppenabhängige Laufwerke mappen  
80.
 
81.
For Each prop In adsobj.groups  
82.
 
83.
'* ACHTUNG! Gruppennamen immer GROSS schreiben  
84.
Select Case UCase(prop.name)  
85.
 
86.
Case "MITARBEITER"  
87.
	wshNetwork.MapNetworkDrive "K:", "\\" & Server2 & "\Kanzleiverwaltung" 
88.
	wshNetwork.MapNetworkDrive "M:", "\\" & Server2 & "\Mandantenstamm" 
89.
	wshNetwork.MapNetworkDrive "P:", "\\" & Server2 & "\Software" 
90.
	 
91.
Case "GESCHÄFTSLEITUNG"  
92.
  wshNetwork.MapNetworkDrive "I:", "\\" & Server2 & "\Kanzlei_intern" 
93.
	 
94.
'Case "HR"  
95.
  'wshNetwork.MapNetworkDrive "L:", "\\"&Server2&"Groups$\Profile"  
96.
 
97.
End Select  
98.
 
99.
Next  
100.
 
101.
End Sub  
102.
 
Nach langem testen habe ich nun festgestellt, wenn ich folgende Konfiguration habe:
OU=Gruppe, OU=untergruppe.
in untergruppe sind nun meine Gruppen auf die das Script greifen soll.

Dann funktioniert es nicht.

Setze ich nun die Gruppen, direkt in die OU=gruppe dann greift auch mein Script. Woran liegt das???

Wie schon gesagt, ich bin noch Anfänger was scripting angeht, und lerne mit jedem Script dazu...

mfg
Sascha
Mitglied: Miyamoto
09.11.2009 um 10:51 Uhr
Hi,
ich würde mal sagen das liegt an deinem LDAP-Pfad in Zeile 25.
Woher soll das Skript wissen das es noch eine Weitere Gruppe gibt.

Ist aber nur eine Vermutung.

Gruß Miyamoto
Bitte warten ..
Mitglied: xm-bit
09.11.2009 um 11:39 Uhr
Hi miyamoto,

ok, und was trage ich dort ein???
Wie schon gesagt, bin noch blutiger Anfänger.

Wäre dann in dem Fall etwas wie

LDAP://OU=untergruppe, OU=gruppe, DC=server, DC=local

das richtige??

mfg
Sascha
Bitte warten ..
Mitglied: Miyamoto
09.11.2009 um 11:49 Uhr
Wenn ich mich richtig erinnere ist das so weit richtig.
Wenn es nicht klappt würde ich es noch mal ohne die "untergruppe" ausprobieren.

Weiß das auch nicht mehr so gut, ist einfach schon zulange her wo ich so was gemacht habe

Gruß Miyamoto
Bitte warten ..
Mitglied: xm-bit
09.11.2009 um 12:00 Uhr
Hi,

das habe ich getestet, aber leider bekomme ich dann folgende Fehlermeldung:

Script: \\server\netlogon\test.vbs
Zeile: 25
Zeichen: 1
Fehler: 0x80005000
Code: 80005000
Quelle: (null)

Beim googlen habe ich gefunden, das es am Pfad liegen soll. Aber den habe ich überprüft...

Bin ein wenig ratlos...

mfg
Sascha
Bitte warten ..
Mitglied: Miyamoto
09.11.2009 um 12:03 Uhr
wie sied den jetzt deine Zeile 25 aus?
Bitte warten ..
Mitglied: xm-bit
09.11.2009 um 12:09 Uhr
Hi,

hier ist die Zeile 25:
Set objUser = GetObject("LDAP://OU=Usergruppen,OU=gruppe,DC=server,DC=local" & objADSysInfo.UserName)

Ich habe es auch schon ohne die OU untergruppe probiert. Aber das ging auch nicht.
Per Adsiedit habe ich den Pfad auch überprüft, der stimmt auch..

mfg
Sascha
Bitte warten ..
Mitglied: Miyamoto
09.11.2009 um 13:14 Uhr
Eine frage habe ich noch, was steht den in der Variable "objUser " drin, wenn dein Skript läuft?
Bitte warten ..
Mitglied: xm-bit
09.11.2009 um 13:22 Uhr
Hi,

das würde ich dir gerne sagen, wenn du mir sagst, wie ich das mit Wscriptecho sichtbar machen kann.



edit:

Da wird mir der angemeldete Benutzer angezeigt, CN=nachname/ , vorname

mfg
Sascha
Bitte warten ..
Mitglied: Miyamoto
09.11.2009 um 13:52 Uhr
Schreib mal bitte in deine Zeile 25 das:
01.
Set objUser = GetObject("LDAP://" & objADSysInfo.UserName & ",OU=Usergruppen,OU=gruppe,DC=server,DC=local")  
Bitte warten ..
Mitglied: bastla
09.11.2009 um 17:11 Uhr
Hallo SasHW2k3!

Streiche die Zeilen 45 bis 49 und ersetze die Zeilen 81 durch:
For Each prop In objUser.groups
und 84 durch:
Select Case UCase(prop.cn)
Die ursprüngliche Zeile 25
Set objUser = GetObject("LDAP://" & objADSysInfo.UserName)
soll so bleiben, da diese Zeile den User als Objekt liefert, dessen Gruppenmitgliedschaften dann in der Schleife ab Zeile 81 ausgelesen werden.

Wie du schon bemerkt hast, wird bei Verwendung des Attributes ".Name" ein "CN=" vorangestellt, weswegen die Eigenschaft ".cn" für Deinen Zweck günstiger ist.

Grüße
bastla
Bitte warten ..
Mitglied: xm-bit
09.11.2009 um 20:43 Uhr
Hi Bastla,

danke schön.
Das funktioniert wunderbar.
Alleine hätte ich das bestimmt nicht so schnell geschafft.

Eine kleine Frage hätte ich da doch noch.
Wenn ich nun eine Datei von einem Laufwerk X, an einen anderen Ort im Benutzerprofil eines Users kopieren will, um die vorhandene zu überschreiben, wie stelle ich das an??

mfg
Sascha
Bitte warten ..
Mitglied: bastla
09.11.2009 um 21:26 Uhr
Hallo SasHW2k3!
Das funktioniert wunderbar.
Freut mich.

Wenn ich nun eine Datei von einem Laufwerk X, an einen anderen Ort im Benutzerprofil eines Users kopieren will ...
Auch wenn es vermutlich weiterhin um VBScript gehen soll, ist das eigentlich ein Thema für einen neuen Thread ...

Grüße
bastla
Bitte warten ..
Mitglied: xm-bit
10.11.2009 um 09:35 Uhr
Guten morgen Bastla,

ok, dann setzte ich das in einen neuen Thread. Ist doch kein Problem...

mfg
Sascha
Bitte warten ..
Ähnliche Inhalte
Windows Update
gelöst SUSID im Loginscript (1)

Frage von Emheonivek zum Thema Windows Update ...

Windows Server
Bitlocker Key per Batch - Loginscript ablegen (5)

Frage von dgrebner zum Thema Windows Server ...

Windows Server
Anmeldescripts auf W2k12 (2)

Frage von max.kobler zum Thema Windows Server ...

Windows Server
gelöst Login Script nach der Anmeldung Zeitverzögert ausführen (4)

Frage von Intruder0001 zum Thema Windows Server ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
CNC Maschinen verlieren Netzwerkverbindung (kurioser Fehler) (22)

Frage von NoHopeNoFear zum Thema LAN, WAN, Wireless ...

Webentwicklung
Aktuellen Mitarbeiter auf Homepage anzeigen (13)

Frage von alemanne21 zum Thema Webentwicklung ...

Windows Server
gelöst Parameter Übergabe Terminal Server (9)

Frage von ThomasKern zum Thema Windows Server ...

Batch & Shell
Anfängerfragen - Powershell - Mailboxvertretung im Pulk einrichten (8)

Frage von Yoshimitsu zum Thema Batch & Shell ...