Top-Themen

Aktuelle Themen (A bis Z)

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

Script zur Verknüpfung von GPOs zu OUs (erweitern)

Mitglied: jschneider

jschneider (Level 1) - Jetzt verbinden

18.10.2007, aktualisiert 19.10.2007, 3072 Aufrufe, 1 Kommentar

eigentliche Funktion vorhanden, aber keine "Stapelverarbeitung"

Hallo,

ich habe hier ein nettes Script (von MS) welches ein vorhandenes GPO-Objekt zu einer OU verlinkt.

Soweit so gut.

Ich brauch es so,dass dieses Scripteine TXT-Datei schaut in der meinetwegen 20 OU's drin stehen die dann nach und nach vom Script abgearbeitet werden

wie dies Quell-OU Textdatei formatiert ist nicht vorgegeben - da bin ich alo frei

So hier sieht das Script aus, welches ich aber schon etwas erweitert habe:

01.
Dim OUType
02.
Dim OUFile
03.
Dim GPOStatus
04.

05.
OUType = inputbox("Waehlen Sie die gewünschte OU zum verlinken aus" & vbnewline & vbnewline & "1 = Alle Benutzer OUs" & vbnewline & "2 = Alle Desktop OUs" & vbnewline & "3 = Alle Desktop -Windows2000 OUs" & vbnewline & "4 = Alle Desktop -WindowsXP OUs" & vbnewline & "5 = Alle Desktop -WindowsVista OUs" & vbnewline & "6 = Alle Notebook OUs" & vbnewline & "7 = Alle Notebook -Windows2000 OUs" & vbnewline & "8 = Alle Notebook -WindowsXP OUs" & vbnewline & "9 = Alle Notebook -WindowsVista OUs" ,"GPO zu OUs Verlinken")
06.

07.
if OUType ="" then
08.
msgbox "Ohne Eingabe wird das Script beendet",16,"Hinweis"
09.
WScript.Quit
10.
end if
11.

12.
if isnumeric(OUType) = false then
13.
msgbox "Bitte nur einzelne Zahlen eingeben",16,"Hinweis"
14.
WScript.Quit
15.
else
16.
end if
17.

18.
if OUType > 9 or OUtype = 0 then
19.
msgbox "Bitte nur zwischen 1 und 9 wählen",16,"Hinweis"
20.
WScript.Quit
21.
else
22.
end if
23.

24.
if OUType = 1 then 
25.
OUFile="C:\01-Alle-BenutzerOUs.txt"
26.
end if
27.

28.

29.
if OUType = 2 then 
30.
	OUFile="C:\02-Alle-DesktopOUs.txt"
31.
end if
32.

33.
if OUType = 3 then 
34.
	OUFile="C:\03-Alle-DesktopW2kOUs.txt"
35.
end if
36.

37.
if OUType = 4 then 
38.
	OUFile="C:\04-Alle-DesktopXPOUs.txt"
39.
end if
40.

41.
if OUType = 5 then 
42.
OUFile="C:\05-Alle-DesktopVistaOUs.txt"
43.
end if
44.

45.
if OUType = 6 then 
46.
	OUFile="C:\06-Alle-NotebookOUs.txt"
47.
end if
48.

49.
if OUType = 7 then 
50.
	OUFile="C:\07-Alle-NotebookW2kOUs.txt"
51.
end if
52.

53.
if OUType = 8 then 
54.
OUFile="C:\08-Alle-NotebookXPOUs.txt"
55.
end if
56.

57.
if OUType = 9 then 
58.
OUFile="C:\09-Alle-NotebookVistaOUs.txt"
59.
end if
60.

61.

62.
wscript.echo "OUs aus der Datei " & OUfile & " werden benutzt."
63.

64.

65.
GPOStatus = inputbox("Bitte geben Sie den Status der verlinkten GPO an" & vbnewline & vbnewline & "1 = deaktiviert" & vbnewline & "2 = aktiviert","Eingabe der Richtlinie")
66.

67.
if GPOStatus ="" then
68.
	msgbox "Ohne Eingabe wird das Script beendet",16,"Hinweis"
69.
	WScript.Quit
70.
end if
71.

72.
if isnumeric(GPOStatus) = false then
73.
	msgbox "Bitte nur einzelne Zahlen eingeben",16,"Hinweis"
74.
	WScript.Quit
75.
else
76.
end if
77.

78.
if GPOStatus > 2 or GPOStatus = 0 then
79.
	msgbox "Bitte nur 1 oder 2 wählen",16,"Hinweis"
80.
	WScript.Quit
81.
else
82.
end if
83.

84.
if GPOStatus = 1 then 
85.
	strGPOLinkOptions = 1
86.
end if
87.

88.

89.
if GPOStatus = 2 then 
90.
	strGPOLinkOptions = 2
91.
end if
92.

93.

94.

95.
GPOName = inputbox("Bitte geben Sie den Namen der zu verlinkenden Richtlinie ein" ,"Eingabe der Richtlinie")
96.

97.

98.

99.

100.

101.
On Error Resume Next
102.

103.
Set objContainer = GetObject _
104.
    ("LDAP://ou=99-ClientMigTest,DC=ADS,DC=meinedomain,DC=NET") 
105.
 
106.
strExistingGPLink = objContainer.Get("gPLink")
107.
 
108.
strGPODisplayName = GPOName
109.

110.
strNewGPLink = "[" & GetGPOADsPath & ";" & strGPOLinkOptions & "]"
111.
 
112.
objContainer.Put "gPLink", strExistingGPLink & strNewGPLink
113.
objContainer.Put "gPOptions", "0"
114.
 
115.
objContainer.SetInfo
116.
 
117.
Function GetGPOADsPath
118.
    Set objConnection = CreateObject("ADODB.Connection")  
119.
    objConnection.Open "Provider=ADsDSOObject;"   
120.
 
121.
    Set objCommand = CreateObject("ADODB.Command")
122.
    objCommand.ActiveConnection = objConnection
123.
 
124.
    objCommand.CommandText = _
125.
      "<LDAP://cn=Policies,cn=System,DC=ADS,DC=meinedomain,DC=NET>;;" & _
126.
          "distinguishedName,displayName;onelevel"
127.
    Set objRecordSet = objCommand.Execute
128.
 
129.
    Do Until objRecordSet.EOF
130.
        If objRecordSet.Fields("displayName") = strGPODisplayName Then
131.
          GetGPOADsPath = "LDAP://" & objRecordSet.Fields("distinguishedName")
132.
          objConnection.Close
133.
          Exit Function
134.
        End If
135.
        objRecordSet.MoveNext
136.
    Loop
137.
    objConnection.Close
138.
End Function
139.

140.
müsste ich halt "irgendwie" so haben, dass dieser Wert aus der Textdatei ausgelesen und verarbeitet wird Bis die Datei keine weiteren Einträge mehr aufweisst. Die Übergabe des Dateinamens habe ich schon, nur wie auslesen und abarbeiten ?

Und da das für Euch Profis natürlich Zuuu einfach wäre ... hier noch was

Ich frage ja nach der EIngabe des GPO-namens der verlinkt werden soll - wer hier eine Idee hat zur Abfrage ob diese GPO überhaupt existiert (wegen falscheingaben)....

(editiert weil ich mit den abfragen schon etwas weiter gekommen bin)

Vielen Dank für Eure Mithilfe

Jan
Mitglied: bastla
19.10.2007 um 00:03 Uhr
Hallo jschneider!

Da ich das "nette Script (von MS)" einerseits nicht in Frage stellen und andererseits auch nicht testen mochte , habe ich nur einen Vorschlag für das "Drumherum":
01.
Do
02.
	OUType = InputBox("Waehlen Sie die gewünschte OU zum Verlinken aus" & vbnewline & vbnewline & _
03.
		"1 = Alle Benutzer OUs" & vbnewline & _
04.
		"2 = Alle Desktop OUs" & vbnewline & _
05.
		"3 = Alle Desktop -Windows2000 OUs" & vbnewline & _
06.
		"4 = Alle Desktop -WindowsXP OUs" & vbnewline & _
07.
		"5 = Alle Desktop -WindowsVista OUs" & vbnewline & _
08.
		"6 = Alle Notebook OUs" & vbnewline & _
09.
		"7 = Alle Notebook -Windows2000 OUs" & vbnewline & _
10.
		"8 = Alle Notebook -WindowsXP OUs" & vbnewline & _
11.
		"9 = Alle Notebook -WindowsVista OUs" & vbnewline & vbnewline & _
12.
		"0 = Abbruch", _
13.
		"GPO zu OUs Verlinken")
14.

15.
	blnOK = True
16.
	If OUType = "" Then OUType = "0"
17.

18.
	If Not IsNumeric(OUType) Then
19.
		blnOK = False
20.
		MsgBox "Nur eine Zahl zwischen 0 und 9 eingeben!", vbCritical, "Hinweis"
21.
	Else
22.
		OUType = Abs(CInt(OUType))
23.
		Select Case OUType
24.
		Case 0: WScript.Quit
25.
		Case 1: OUFile="C:\01-Alle-BenutzerOUs.txt"
26.
		Case 2: OUFile="C:\02-Alle-DesktopOUs.txt"
27.
		Case 3: OUFile="C:\03-Alle-DesktopW2kOUs.txt"
28.
		Case 4: OUFile="C:\04-Alle-DesktopXPOUs.txt"
29.
		Case 5: OUFile="C:\05-Alle-DesktopVistaOUs.txt"
30.
		Case 6: OUFile="C:\06-Alle-NotebookOUs.txt"
31.
		Case 7: OUFile="C:\07-Alle-NotebookW2kOUs.txt"
32.
		Case 8: OUFile="C:\08-Alle-NotebookXPOUs.txt"
33.
		Case 9: OUFile="C:\09-Alle-NotebookVistaOUs.txt"
34.
		Case Else
35.
			blnOK = False
36.
			MsgBox "Nur eine Zahl zwischen 0 und 9 eingeben!", vbCritical, "Hinweis"
37.
		End Select
38.
	End If
39.
Loop Until blnOK
40.

41.
Set fso = CreateObject("Scripting.FileSystemObject")
42.
If Not fso.FileExists(OUFile) Then
43.
	MsgBox "Datei " & OUFile & " wurde nicht gefunden - " & vbCrLF & _
44.
		"bitte benachrichtigen Sie ...", _
45.
		vbCritical, "Hinweis"
46.
	WScript.Quit
47.
End If
48.

49.
WScript.Echo "OUs aus der Datei " & OUfile & " werden benutzt."
50.

51.
Do
52.
	GPOStatus = InputBox("Bitte geben Sie den Status der verlinkten GPO an" & vbnewline & vbnewline & _
53.
		"1 = deaktiviert" & vbnewline & _
54.
		"2 = aktiviert" & vbnewline & vbnewline & _
55.
		"0 = Abbruch", _
56.
		"Eingabe der Richtlinie")
57.

58.
	blnOK = True
59.
	If GPOStatus = "" Then GPOStatus = "0"
60.

61.
	If Not IsNumeric(GPOStatus) Then
62.
		blnOK = False
63.
		MsgBox "Nur eine Zahl zwischen 0 und 2 eingeben!", vbCritical, "Hinweis"
64.
	Else
65.
		GPOStatus = Abs(CInt(GPOStatus))
66.
		Select Case GPOStatus
67.
		Case 0: WScript.Quit
68.
		Case 1, 2: strGPOLinkOptions = CStr(GPOStatus)
69.
		Case Else
70.
			blnOK = False
71.
			MsgBox "Nur eine Zahl zwischen 0 und 2 eingeben!", vbCritical, "Hinweis"		
72.
		End Select
73.
	End If
74.
Loop Until blnOK
75.

76.
Do
77.
	GPOName = InputBox("Bitte geben Sie den Namen der zu verlinkenden Richtlinie ein" & vbCrLF & vbCrLF & _
78.
		"oder wählen Sie 'Abbrechen'!", _
79.
		"Eingabe der Richtlinie")
80.

81.
	If GPOName = "" Then WScript.Quit
82.
	
83.
	blnOK = True
84.
	strGPODisplayName = GPOName
85.
	strGPOADsPath = GetGPOADsPath
86.
	If strGPOADsPath = "" Then
87.
		blnOK = False
88.
		MsgBox GPOName & " wurde nicht gefunden!", vbCritical, "Hinweis"
89.
	End If
90.
Loop Until blnOK = True
91.

92.
strNewGPLink = "[" & strGPOADsPath & ";" & strGPOLinkOptions & "]"
93.

94.
On Error Resume Next
95.
aOU = Split(fso.OpenTextFile(OUFile, 1).ReadAll, vbCrLF)
96.
For Each strOU In aOU
97.
	Set objContainer = GetObject _
98.
		("LDAP://ou=" & strOU & ",DC=ADS,DC=meinedomain,DC=NET") 
99.
	strExistingGPLink = objContainer.Get("gPLink")
100.

101.
	objContainer.Put "gPLink", strExistingGPLink & strNewGPLink
102.
	objContainer.Put "gPOptions", "0"
103.
	objContainer.SetInfo
104.
Next
105.

106.
MsgBox "Verlinkungen vorgenommen.", vbInformation
107.

108.
'########## Ende Hauptprogramm ##########
109.

110.
Function GetGPOADsPath
111.
    Set objConnection = CreateObject("ADODB.Connection")  
112.
    objConnection.Open "Provider=ADsDSOObject;"   
113.
 
114.
    Set objCommand = CreateObject("ADODB.Command")
115.
    objCommand.ActiveConnection = objConnection
116.
 
117.
    objCommand.CommandText = _
118.
      "<LDAP://cn=Policies,cn=System,DC=ADS,DC=meinedomain,DC=NET>;;" & _
119.
          "distinguishedName,displayName;onelevel"
120.
    Set objRecordSet = objCommand.Execute
121.
 
122.
    Do Until objRecordSet.EOF
123.
        If objRecordSet.Fields("displayName") = strGPODisplayName Then
124.
          GetGPOADsPath = "LDAP://" & objRecordSet.Fields("distinguishedName")
125.
          objConnection.Close
126.
          Exit Function
127.
        End If
128.
        objRecordSet.MoveNext
129.
    Loop
130.
    objConnection.Close
131.
End Function
... eine Idee (hat) zur Abfrage ob diese GPO überhaupt existiert (wegen falscheingaben)....
Meine Idee dazu war eigentlich nur:
01.
strGPOADsPath = GetGPOADsPath
02.
If strGPOADsPath = "" Then ... 'nicht gefunden
Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Windows Netzwerk
GPOs aufräumen
gelöst Frage von erwin.tWindows Netzwerk7 Kommentare

Hallo, gibt es ein nützliches Tool, das mir dabei hilft, alte GPOs aufzuräumen? Würde gerne sehen, ob manche Settings ...

Netzwerkmanagement
Tattooing GPOs entfernen
gelöst Frage von winterj86Netzwerkmanagement8 Kommentare

Hallo, ich habe gerade herausgefunden dass auf einem Server(2012) vermutlich eine Altlast verhindert das im IE-Einstellungen vorgenommen werden können. ...

Windows Userverwaltung

GPOs: Sicherheitsfilterung aufräumen?

Frage von Ex0r2k16Windows Userverwaltung4 Kommentare

Hallo zusammen, ich habe leider viele GPOs mit direkt berechtigten Usern und Computern. Ich muss jedoch egal in welchem ...

Windows Server

GPOs greifen nicht

gelöst Frage von scusimarcusWindows Server2 Kommentare

Hallo Leute, folgende Szenerie: GPO soll den lokalen Administrator auf einem Client (Win 7) deaktivieren. Die GPO wird vom ...

Neue Wissensbeiträge
Windows 10

Windows 10 kann XPS erzeugen aber nicht anzeigen ????

Erfahrungsbericht von Deepsys vor 1 TagWindows 101 Kommentar

Heute schickt mir ein Kollegen eine E-Mail mit einer XPS-Datei vom Kunden im Anhang und fragt wie er diese ...

Exchange Server

1und1 IONOS: Probleme beim Mailversand mit Exchange

Information von reksierp vor 1 TagExchange Server3 Kommentare

Hallo, seit Do, 17.1.19 etwa Mittags nimmt 1und1 IONOS keine Mails mehr über den Standard-Port SMTP 25 an. Nachdem ...

LAN, WAN, Wireless

Cisco Mikrotik VPN Standort Vernetzung mit dynamischem Routing

Anleitung von aqui vor 2 TagenLAN, WAN, Wireless

1. Allgemeine Einleitung Das nachfolgende Tutorial ist eine Fortführung der hier bei Administrator.de schon bestehenden VPN Tutorials und beschreibt ...

Windows Mobile

Support für Windows Mobile endet im Dezember 2019

Information von transocean vor 3 TagenWindows Mobile1 Kommentar

Moin, Microsoft empfiehlt als Alternative den Umstieg auf iOS oder Android, wie man hier lesen kann. Gruß Uwe

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Wo lässt sich das Gateway in der FRITZ!Box 7360 einstellen?
gelöst Frage von OssabowLAN, WAN, Wireless18 Kommentare

Hallo all, nach gründlicher Suche scheine ich der einzige zu sein der das Problem hat (macht micht schon mal ...

Windows Server
Sicherung Domain Controller
gelöst Frage von Monto1Windows Server16 Kommentare

Hallo zusammen, wie sichert Ihr den Domain Controller? Selbst, wenn zwei parallel laufen, ist eine Sicherung doch mal nützlich. ...

Windows Server
MSSQL Backup in Form von .sql einspielen
Frage von janosch12Windows Server15 Kommentare

Guten Morgen, wir verwenden das Tool SQLandFTPBackup ( ) zum sichern einiger MSSQL Datenbanken. Nun sichert das Toll die ...

Microsoft Office
Office 2016 oder Office 2019
Frage von PeterzMicrosoft Office13 Kommentare

Hallo zusammen, wir müssen unser Office von 2010 auf eine neuere Version Umstellen. Jetzt stellt sich die Frage, ob ...