uhli90
Goto Top

Powershell: Active Directory nach deaktivierten Computern durchsuchen und nach Betriebssystem filtern

Ich arbeite mich zur Zeit etwas in die Powershell ein und bin am Verzweifeln. Ich möchte auf einem Domänen-Controller alle deaktivierten Windows 7 Computer per Powershell-Script entfernen lassen. Leider klappt es nicht. Hier einer meiner Versuche:


Ich vermute, dass "Search-ADAccount" das Betriebssystem nicht zurückgibt. Ich habe es auch mit "Get-ADComputer" versucht, hier finde ich aber keinen Operator bzw. Attribut für den Deaktiviert-Status.

Habt Ihr eine Lösung oder einen Ansatz mit dem ich das am Besten umsetzten kann?

Danke, der Uhli.

Content-Key: 4173687821

Url: https://administrator.de/contentid/4173687821

Printed on: December 4, 2022 at 19:12 o'clock

Member: chaot1coz
Solution chaot1coz Oct 06, 2022 updated at 12:55:29 (UTC)
Goto Top
Auch kein Hallo


Vielleicht zur Sicherheit vorher:


Das "-WhatIf" zeigt dir die durchzuführenden Aktionen an, ohne sie wirklich auszuführen
Mitglied: 4091525239
Solution 4091525239 Oct 06, 2022 updated at 12:51:29 (UTC)
Goto Top
Oder alternativ auch
wenn man bei Search-ADAccount bleiben will.
Member: em-pie
em-pie Oct 06, 2022 at 12:50:58 (UTC)
Goto Top
Moin,

probier es mal mit

Quelle: https://sid-500.com/2019/07/30/powershell-retrieve-list-of-domain-comput ...

Gruß
em-pie
Member: Uhli90
Uhli90 Oct 06, 2022 updated at 13:07:42 (UTC)
Goto Top
Ich danke euch für eure Mühe. Das es dann doch so einfach ist. -WhatIf ist übrigens ein klasse Tipp, dann muss ich meine Testsystem nicht immer verhunzen.

Gruß, der Uhli.
Member: steffepro
steffepro Oct 07, 2022 at 06:07:18 (UTC)
Goto Top
Servus, gibt es vielleicht auch eine Lösung, dass Rechner rausfliegen, die z.B. seit 2 Jahren nicht mehr im AD angemeldet waren?
Es gibt ja Firmen, wo manche Maschinen einen Windows7 Rechner noch als Input benötigen und die dürfen dann nicht einfach rausfallen.
Member: chaot1coz
chaot1coz Oct 07, 2022 updated at 06:18:04 (UTC)
Goto Top
Klar:

Mit -WhatIf:



Eventuell mit -Searchbase nach OU filtern und unbedingt vorher mit -WhatIf testen!
Member: steffepro
steffepro Oct 07, 2022 at 07:48:18 (UTC)
Goto Top
Zitat von @chaot1coz:

Klar:

Mit -WhatIf:



Eventuell mit -Searchbase nach OU filtern und unbedingt vorher mit -WhatIf testen!

Sauber, Danke Dir!
Mitglied: 4091525239
4091525239 Oct 07, 2022 at 07:53:13 (UTC)
Goto Top
-Filter 'lastLogondate -lt $date'
Achtung Fehler, Variablen werden innerhalb von Hochkommas nicht aufgelöst ...
Member: chaot1coz
chaot1coz Oct 07, 2022 updated at 07:55:44 (UTC)
Goto Top
Zitat von @4091525239:

-Filter 'lastLogondate -lt $date'
Achtung Fehler, Variablen werden innerhalb von Hochkommas nicht aufgelöst ...

Achtung Halbwissen...
rwoc4rifnq

Microsoft Docs:
b9kyal80w5
Mitglied: 4091525239
4091525239 Oct 07, 2022 updated at 07:58:35 (UTC)
Goto Top
Zitat von @chaot1coz:

Zitat von @4091525239:

-Filter 'lastLogondate -lt $date'
Achtung Fehler, Variablen werden innerhalb von Hochkommas nicht aufgelöst ...

Achtung Halbwissen...
rwoc4rifnq

Microsoft Docs:
b9kyal80w5

Nöp
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell ...
Single-quoted strings
A string enclosed in single quotation marks is a verbatim string. The string is passed to the command exactly as you type it. No substitution is performed

Member: chaot1coz
chaot1coz Oct 07, 2022 updated at 08:13:22 (UTC)
Goto Top
Ich weiß, dass normalerweise Variablen in Double-Quotes nicht aufgelöst, in diesem Fall aber schon. Das liegt am AD-Modul.

Anstatt mit "nöp" zu antworten, erkläre mir das?
b9kyal80w5

Die Variablen werden in all meinen AD Skripts aufgelöst..

Die Variablenersetzung ist ein Feature des AD-Modules. -Filter wird in einen LDAP-Filter umgewandelt und die Variablen darin ersetzt.

Es ist richtig, dass Powershell die Variablen nicht direkt ersetzt, sondern als String wörtlich an das AD-Modul übergibt. Dieses ersetzt dann die Variablen entsprechend.

Wohl doch kein Fehler face-smile

Hier kannst du mehr darüber erfahren.