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, 4151 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...

Mit freundlichen Grüßen
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??

Mit freundlichen Grüßen
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...

Mit freundlichen Grüßen
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..

Mit freundlichen Grüßen
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

Mit freundlichen Grüßen
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??

Mit freundlichen Grüßen
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...

Mit freundlichen Grüßen
Sascha
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ä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 Userverwaltung
gelöst Powershell: Rekursiver AD Gruppenabfrage schlägt fehl (4)

Frage von bensonhedges zum Thema Windows Userverwaltung ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...