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, 3037 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
Backup

Backup-Script erweitern mit automatischer bereinigung

gelöst Frage von DarkHerculesBackup6 Kommentare

Hallo, Ich sichere meine Hyper-V-Testumgebung momentan mit einem Powershell-Script. Dabei wird mir ein Ordner gesichert in dem ich meine ...

Batch & Shell

Powershell Script für VHD Sicherung erweitern

gelöst Frage von EmheonivekBatch & Shell7 Kommentare

Liebe User, ich habe vor folgendes Powershell Script zu erweitern, um mehrere Backupsätze einer virtuellem Maschine vorzuhalten. Stop-VM –Name ...

Batch & Shell

Batch Script soll aus einer Datei ein Zeileninhalt in ein anderen Batch kopieren und erweitern

Frage von Fazer1000Batch & Shell4 Kommentare

Hallo ich habe keine erfahrung mit Batch Script. Ich möchte gerne mit Hilfe eines Scriptes ein Befehl erzeugen der ...

Batch & Shell

Script zum Kopieren einer Datei in mehren unterschiedlichen Ordner über eine Verknüpfung

gelöst Frage von KnuefiBatch & Shell12 Kommentare

Hallo zusammen, ich benötige mal wieder euren fachmännischen Rat. Ich benötige ein Script das mir eine Datei (unterschiedliche Namen, ...

Neue Wissensbeiträge
Ausbildung

Linux-Ausstieg in Niedersachsen - Windows statt Bugfix

Information von StefanKittel vor 1 TagAusbildung23 Kommentare

Sind ja nur Steuergelder

Speicherkarten

Neuer Speicherkartentyp - zunächst nur für Huawei-Smartphones (künftig auch für Notebooks u. Tablets?)

Tipp von VGem-e vor 3 TagenSpeicherkarten3 Kommentare

Servus, als ob das "Chaos" i.S. Speicherkarten noch nicht groß genug wäre?! Evtl. kommt dieser neue Kartentyp bald auch ...

Sicherheit

Diverse D-Link-Router durch drei Schwachstellen kompromittierbar

Information von kgborn vor 3 TagenSicherheit1 Kommentar

Hat jemand D-Link-Router in Verwendung? Einige Modelle sind sicherheitstechnisch offen wie ein Scheunentor. Äußerst unschöne Sache, aber nichts neues ...

Hardware

100.000 Mikrotik-Router ungefragt von Hacker abgesichert

Information von 7Gizmo7 vor 4 TagenHardware3 Kommentare

Hallo zusammen, da hier ja öfters mal von Mikrotik gesprochen wird. Trotz Updates klafft eine Sicherheitslücke in Hundertausenden Mikrotik-Routern. ...

Heiß diskutierte Inhalte
Ausbildung
Linux-Ausstieg in Niedersachsen - Windows statt Bugfix
Information von StefanKittelAusbildung22 Kommentare

Sind ja nur Steuergelder

Vmware
Offene LDAP-Server in AS
gelöst Frage von obi-wan-kenobiVmware19 Kommentare

Hallo alle Miteinander, ich habe ein Problem, unsere VM-Ware Appliance (Version. 6.5.0.10000) ist scheinbar angreifbar. Wir haben eben die ...

Windows 10
Windows 10 Spracherkennung - Eure Meinungen?
Frage von honeybeeWindows 1014 Kommentare

Hallo, wollte heute mal aus Neugier die Spracherkennung unter Windows 10 (Version 1803) ausprobieren und war mehr wie enttäuscht. ...

Windows Server
Zertifikat RemoteDesktop hinterlegen
gelöst Frage von Green14Windows Server12 Kommentare

Hallo zusammen. ich habe mehrere Server (WinSrv 2016). Die Server sind in keiner Domäne und keine Terminalserver. Ich verbinde ...