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

Überprüfen ob Computer Mitglied einer OU ist

Frage Entwicklung Batch & Shell

Mitglied: 15858

15858 (Level 1)

02.04.2007, aktualisiert 15:01 Uhr, 6509 Aufrufe, 11 Kommentare

Hi,

ich möchte per Script, am besten mit VB-Script überprüfen ob ein Computer Mitglied einer OU des Active Directory ist? Ich habe mitlerweile schon ettliche Foren durchsucht aber kein Beitrag konnte mir so richtig helfen.

Vielen Dank für eure Hilfe.

mfg 0per8or
Mitglied: dsmcg
02.04.2007 um 11:53 Uhr
Wozu soll das gut sein?

Beschreib ein wenig was du ereichen willst.
Bitte warten ..
Mitglied: 15858
02.04.2007 um 12:00 Uhr
Bei uns wird die Clientinstallation per RIS-Server bereitgestellt. Als letzte Aktion wird am Ende einer Installation noch ein Script ausgeführt. In diesem Script kann jetzt ja alles mögliche gemacht werden, was noch auf dem Client ausgeführt werden soll.

Nun möchte ich eine Softwareinstallation anstoßen, die aber nur auf PCs in der OU Notebooks ausgeührt werden soll.

Ich hoffe das das verständlich war.

mfg 0per8or
Bitte warten ..
Mitglied: catachan
02.04.2007 um 12:08 Uhr
wieso machst du die installation nicht über die group policy ?? dann hättest du genau was du willst
Bitte warten ..
Mitglied: 15858
02.04.2007 um 12:16 Uhr
Das hatte ich auch schon. Hat auch soweit funktioniert. Das hat nur ein Problem. Die Software die ich installieren möchte nennt sich Safeguard und verschlüsselt das Notebook. Bei jedem Start des PC, startet SafeGuard und es muss ein Passwort eingegeben werden.

Das bedeutet sobald der PC die GPO zieht führt er beim nächsten Neustart die Installation von SafeGuard aus. Die RIS Installation dauert aber weiter an und es werden immer noch Pakete von der Erstinstallation installiert. Ich muss also bei jedem Neustart das Safeguard Passwort eingeben.

Einfacher wäre es nun wenn Safeguard am Ende der RIS-Installation ausgeführt wird. Deshalb möchte per VBS überprüfen ob der PC Mitglied einer OU ist. Wenn ja wird dann die Installation ausgeführt.

mfg 0per8or
Bitte warten ..
Mitglied: catachan
02.04.2007 um 12:23 Uhr
solange der ris nicht fertig ist führt er so weit ich weiß keine gpo aus
Bitte warten ..
Mitglied: bastla
02.04.2007 um 12:25 Uhr
Hallo Oper8or!

Als Grundgerüst:
01.
strComputer = "TestRechner" 
02.
strOU = "TestOU" 
03.
 
04.
Set objConnection = CreateObject("ADODB.Connection") 
05.
Set objCommand =   CreateObject("ADODB.Command") 
06.
objConnection.Provider = "ADsDSOObject" 
07.
objConnection.Open "Active Directory Provider" 
08.
 
09.
Set objCOmmand.ActiveConnection = objConnection 
10.
objCommand.CommandText = _ 
11.
    "Select Name, Location from 'LDAP://OU=" & strOU & ",DC=firma,DC=local' " _ 
12.
        & "Where objectClass='computer'"   
13.
objCommand.Properties("Page Size") = 1000 
14.
Set objRecordSet = objCommand.Execute 
15.
If objRecordSet.EOF Then 
16.
	WScript.Echo "In OU " & strOU & " keine Computer gefunden!" 
17.
	WScript.Quit(1) 
18.
End If 
19.
objRecordSet.MoveFirst 
20.
bolInOU = False 
21.
Do Until objRecordSet.EOF 
22.
    If UCase(objRecordSet.Fields("Name").Value) = UCase(strComputer) Then 
23.
		bolInOU = True 
24.
		Exit Do 
25.
	End If 
26.
    objRecordSet.MoveNext 
27.
Loop 
28.
If bolInOU Then 
29.
    WScript.Echo strComputer & " ist in der OU " & strOU 
30.
Else 
31.
    WScript.Echo strComputer & " ist nicht in der OU " & strOU 
32.
    WScript.Quit(1) 
33.
End If
Grüße
bastla
Bitte warten ..
Mitglied: 15858
02.04.2007 um 12:28 Uhr
Die RIS-Installation ist modifiziert, und da werden nach der Windows Installation weitere Pakete ausgeführt zwischen denen ein Neustart erforderlich ist. Da werden dann alle GPOs gezogen. Leider kann ich die Installation von Safeguard nicht in die Reihenfolge einfügen, deshalb möchte ich es anders realisieren.

Ist es möglich das mit VBS zu realisieren?
Bitte warten ..
Mitglied: 15858
02.04.2007 um 12:32 Uhr
Danke. Damit komm ich zurecht!

mfg 0per8or
Bitte warten ..
Mitglied: Biber
02.04.2007 um 12:52 Uhr
Moin 0per8or,

eine Winzigkeit schlanker als bastla's Vorlage wäre die (wiederverwendbare) Funktion IsMember() als VBS-Schnipsel.
01.
'....irgendwo in Deinem VBS-krams... 
02.
.... 
03.
Function IsMember(strGroup) 
04.
 
05.
Set objNetwork = CreateObject("WScript.Network") 
06.
 
07.
  strDomain = objNetwork.UserDomain 
08.
  strADUser = objNetwork.UserName 
09.
  bIsMember = False 
10.
 strCompGrp = UCase(strGroup) 
11.
' mit LDAP User in Active Directory finden und binden 
12.
Set strADUser = GetObject("WinNT://" & strDomain & "/" & strADUser & ",user") 
13.
  For Each objGroup In strADUser.Groups  
14.
    If UCase(objGroup.Name) = strCompGrp Then 
15.
      bIsMember = True 
16.
      Exit For 
17.
    End If 
18.
  Next 
19.
  IsMember = bIsMember 
20.
End Function
Gruss
Biber
[Edit] vorletzte Zeile (falscher Variablenname) korrigiert, s. bastla's Folgepost.
@bastla Thx, und bzgl. "Zu schlank ist ja nicht so unbedingt mein Fall":
Soll ich Dir meine Ex-Schwiegermutter vorstellen? [/Edit]
Bitte warten ..
Mitglied: bastla
02.04.2007 um 13:17 Uhr
@Biber

Zu schlank ist ja nicht so unbedingt mein Fall, aber wiederverwendbar ist gut:
01.
WScript.Echo CompIsOUMember("TestRechner", "TestOU", "DC=firma,DC=local") 
02.
 
03.
Function CompIsOUMember(strComputer, strOU, strDom) 
04.
Set objConnection = CreateObject("ADODB.Connection") 
05.
Set objCommand =   CreateObject("ADODB.Command") 
06.
objConnection.Provider = "ADsDSOObject" 
07.
objConnection.Open "Active Directory Provider" 
08.
Set objCOmmand.ActiveConnection = objConnection 
09.
 
10.
objCommand.CommandText = _ 
11.
    "Select Name from 'LDAP://OU=" & strOU & "," & strDom & "' " & _ 
12.
    "Where objectClass='computer' And Name='" & strComputer & "'" 
13.
 
14.
Set objRecordSet = objCommand.Execute 
15.
If objRecordSet.EOF Then 
16.
	bolInOU = False 
17.
Else 
18.
	bolInOU = True 
19.
End If 
20.
CompIsOUMember = bolInOU 
21.
End Function
Grüße
bastla

P.S.: In Deiner vorletzten Zeile ist war ein Tippfehler, ansonsten ging's hier mehr um Computer und OU ...
Bitte warten ..
Mitglied: bastla
02.04.2007 um 15:01 Uhr
@Biber

Soll ich Dir meine Ex-Schwiegermutter vorstellen?
Obwohl ich bisher erst sehr wenig über sie weiß ("Social Engineering" ist ja mehr die Stärke von LSW), muss ich Dich trotzdem fragen: Womit hätte ich das verdient?

Grüße
bastla

P.S.: Anderes P.S. an die veränderte Code-Lage angepasst ...
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows 7
Computer OU auslesen bzw. abfragen (2)

Frage von mexx991 zum Thema Windows 7 ...

Windows Server
gelöst Bestimmte Computer-Namen automatisch in bestimmte OU verschieben (1)

Frage von Robbi666 zum Thema Windows Server ...

Windows 10
Kein Internet: Nach Windows-Update weltweit Computer offline (5)

Link von transocean zum Thema Windows 10 ...

Hyper-V
Wieso werden Computer aus der Domäne "geworfen" ? (5)

Frage von Tastuser zum Thema Hyper-V ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...