Jump to content

AD Powershell Befehl / Filter


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,

 

ich bin auf der suche nach einem Powershell Befehl bzw. dem Filter um Computer im AD entsprechend dem Betriebssystem von einer OU in die andere zu schieben. Also z.B. Windows 10 Clients in die OU W10 und Windows 7 Clients in die OU W7

 

Hier modifiziert ein Aufräum Script was benutzt wird um Computer bei denen sich lange keiner mehr angemeldet hat in eine Aufräum OU zu schieben. Vermutlich kann ich dann den Filter mit enabled weglassen? 

 

Get-ADComputer -Filter {(enabled -eq $true)-and (???)} -Properties ?? | Select-Object ??? | Export-Csv C:\Temp\ad.csv -NoTypeInformation -Encoding UTF8
Get-ADComputer -Filter {(enabled -eq $true)-and (???)} -SearchBase "DC=Eins,DC=Zwei,DC=de" |
Get-ADComputer -Filter {(enabled -eq $true)} -SearchBase "DC=Eins,DC=Zwei,DC=de" | Move-ADObject -Targetpath "OU=W10,OU=Clients,DC=Eins,DC=Zwei,DC=de"

 
 
Danke für die Hilfe!
 
Gruß
 
Romeo
Link zu diesem Kommentar

Moin,

 

für das mit den "verwaisten" Computern gibt es eine fertige Lösung ohne PowerShell: http://www.joeware.net/freetools/tools/oldcmp/index.htm

 

Die andere Sache mit dem Filter ließe sich über den Schalter -LDAPFilter erledigen. Beispiel aus der Onlinehilfe:

Get-ADComputer -LDAPFilter "(name=*laptop*)" -SearchBase "CN=Computers,DC=Fabrikam,DC=com"

Der LDAP-Filter wäre dann etwas wie (operatingSystem=Windows 7*).

 

Gruß, Nils

Link zu diesem Kommentar

Moin,

 

@Nils: Operating-System  bzw. Operating-System-Version

https://msdn.microsoft.com/en-us/library/ms680987(v=vs.85).aspx

 

das sind die Display Names (genauer: adminDisplayName). Zur Ansprache braucht man die LDAP-Syntax (genauer: lDAPDisplayName), die Microsoft schlauerweise abweichend gesetzt hat. Mein Beispiel ist korrekt und funktioniert.

 

[Active Directory: LDAP-Feldnamen | faq-o-matic.net]
http://www.faq-o-matic.net/2002/09/21/active-directory-ldap-feldnamen/

 

[LDAP-Grundlagen für Active Directory | faq-o-matic.net]
http://www.faq-o-matic.net/2008/01/13/ldap-grundlagen-fuer-active-directory/

 

Um die LDAP-Filter erst mal ohne PowerShell auszuprobieren, eignet sich die AD-Suche im ADUC, dort dann die "Benutzerdefinierte Suche" und "Erweitert".

 

Gruß, Nils

bearbeitet von NilsK
Link zu diesem Kommentar

Wieso will man die OS Versionen in OUs aufteilen?

 

Unterschiedliche Policys, könnte man auch mit WMI Filter machen aber ist halt so gewollt das die in Unterschiedlichen OU´s sind.

 

Moin,

 

für das mit den "verwaisten" Computern gibt es eine fertige Lösung ohne PowerShell: http://www.joeware.net/freetools/tools/oldcmp/index.htm

 

Die andere Sache mit dem Filter ließe sich über den Schalter -LDAPFilter erledigen. Beispiel aus der Onlinehilfe:

Get-ADComputer -LDAPFilter "(name=*laptop*)" -SearchBase "CN=Computers,DC=Fabrikam,DC=com"

Der LDAP-Filter wäre dann etwas wie (operatingSystem=Windows 7*).

 

Gruß, Nils

 

Wäre es für den LDAP Filter nicht besser mit der Version zu arbeiten? (operatingSystemVersion=10.0) z.B.

Also so:

Get-ADComputer -LDAPFilter (OperatingSystemVersion=10.0) -SearchBase "OU=Clients,DC=Contoso,DC=com" | Move-ADObject -Targetpath "OU=W10,OU=Clients,DC=Contoso,DC=com" | Export-Csv C:\Temp\ad.csv -NoTypeInformation -Encoding UTF8

Und der der CSV Export das man sieht er hat was gemacht.

Link zu diesem Kommentar

Moin,

 

Wäre es für den LDAP Filter nicht besser mit der Version zu arbeiten? (operatingSystemVersion=10.0) z.B.

 

probier es aus. Mit dem AD-Benutzer und -Computer siehst du ja, ob der Filter das macht, was du brauchst. Aber Vorsicht: Das sind alles Textfelder, keine numerischen Werte. Du kannst bei Bedarf vorne und hinten Sternchen als Wildcard angeben.

 

Gruß, Nils

bearbeitet von NilsK
Link zu diesem Kommentar

Unterschiedliche Policys, könnte man auch mit WMI Filter machen aber ist halt so gewollt das die in Unterschiedlichen OU´s sind.

Tip aus der Praxis: WMI Filter sind zuverlässiger, die laufen nämlich immer und sind nicht abhängig von AD-seitigen Skripts. Außerdem muß der Rechner danach nicht neu booten, wie das beim Verschieben der Fall ist.

 

Aber jeder ist seines Glückes Schmied :)

Link zu diesem Kommentar

Tip aus der Praxis: WMI Filter sind zuverlässiger, die laufen nämlich immer und sind nicht abhängig von AD-seitigen Skripts. Außerdem muß der Rechner danach nicht neu booten, wie das beim Verschieben der Fall ist.

 

Aber jeder ist seines Glückes Schmied :)

 

Und bei einem Upgrade eines Rechners muss man nicht daran denken diesen im AD zu verschieben.

Link zu diesem Kommentar

Für das verschieben veralteter bzw. sich lange nicht mehr gemeldeter Clients möchte ich nochmal einen weiteren Ansatz in den Raum werfen.

Als Beispiel: Alle Clients, die sich seit länger als 30 Tagen nicht gemeldet haben in eine OU verschieben

$days = (Get-Date).AddDays(-30)
Get-ADComputer -Filter {lastLogondate -le $days} -properties *| Move-ADObject -Targetpath "OU=WelcherNameAuchImmer,OU=Clients,DC=Contoso,DC=com"
Link zu diesem Kommentar

Moin,

 

Als Beispiel: Alle Clients, die sich seit länger als 30 Tagen nicht gemeldet haben in eine OU verschieben

 

das kann OldCMP, das ich oben empfohlen habe, ebenfalls. Es ist viel schneller als die PowerShell, hat einen Schutzmechanismus vor "versehentlichem" Ausführen, eine Reporting-Funktion und bietet auch noch eine Reihe anderer Vorteile. Muss man natürlich nicht nutzen, ist aber sowas wie das Ei des Kolumbus für diese Sorte Aufgaben. ;)

 

Gruß, Nils

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...