kleiner-romeo 10 Geschrieben 15. Dezember 2016 Melden Teilen Geschrieben 15. Dezember 2016 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 UTF8Get-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 Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 15. Dezember 2016 Melden Teilen Geschrieben 15. Dezember 2016 Wieso will man die OS Versionen in OUs aufteilen? Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 15. Dezember 2016 Melden Teilen Geschrieben 15. Dezember 2016 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 Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 15. Dezember 2016 Melden Teilen Geschrieben 15. Dezember 2016 Wieso will man die OS Versionen in OUs aufteilen? z.b. verschiedene PolicySets @Nils: "Operating-System" bzw. "Operating-System-Version" https://msdn.microsoft.com/en-us/library/ms680987(v=vs.85).aspx Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 15. Dezember 2016 Melden Teilen Geschrieben 15. Dezember 2016 (bearbeitet) Moin, @Nils: Operating-System bzw. Operating-System-Versionhttps://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 15. Dezember 2016 von NilsK Zitieren Link zu diesem Kommentar
kleiner-romeo 10 Geschrieben 16. Dezember 2016 Autor Melden Teilen Geschrieben 16. Dezember 2016 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. Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 16. Dezember 2016 Melden Teilen Geschrieben 16. Dezember 2016 (bearbeitet) 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 16. Dezember 2016 von NilsK Zitieren Link zu diesem Kommentar
daabm 1.354 Geschrieben 16. Dezember 2016 Melden Teilen Geschrieben 16. Dezember 2016 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 :) 2 Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 16. Dezember 2016 Melden Teilen Geschrieben 16. Dezember 2016 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. Zitieren Link zu diesem Kommentar
hell-boy 0 Geschrieben 23. Dezember 2016 Melden Teilen Geschrieben 23. Dezember 2016 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" Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 23. Dezember 2016 Melden Teilen Geschrieben 23. Dezember 2016 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 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.