uhd-fischkopp
Goto Top

Computer deaktivieren und verschieben klappt nicht

Moin,

leider benötige ich mal wieder eure Hilfe.
Ich muss knapp 300 Computer deaktivieren und erst einmal verschieben.

Ich habe ein script vom Windows papst gefunden aber das klappt nicht.

# Der Windows Papst 2017 www.der-windows-papst.de #

$DisbableList = Import-Csv C:\csv\Computer.csv
$MoveTo = "OU=Deaktivierte-Rechner,DC=firma,DC=local"  
Clear-Host 
 
Function DisablePC
{ 
    Param( 
        [string] $_SamAccountName, 
        [string] $_MoveTO
        ) 
    write-host ("Deaktiviere PC: $_SamAccountName")   
    Write-Host ("Verschiebe nach OU: $MoveTo")   
 
Get-ADComputer $_SamAccountName | Set-ADComputer -Enabled $false 
Start-Sleep -s 2 
Get-ADComputer $_SamAccountName | Move-ADObject -TargetPath $MoveTo
Start-Sleep -s 2 
} 
 
FOREACH ($PC in $DisbableList) { 
    DisablePC $PC.SamAccountName $PC.MoveTO
}

nach dem Ausführen kommt:
Deaktiviere PC:
Verschiebe nach OU: OU=Deaktivierte-Rechner,DC=Firma,DC=local
Deaktiviere PC:
Verschiebe nach OU: OU=Deaktivierte-Rechner,DC=Firma,DC=local
Deaktiviere PC:
Verschiebe nach OU: OU=Deaktivierte-Rechner,DC=Firma,DC=local
Aber es wird nichts gesperrt bzw. verschoben.

Content-ID: 1852906040

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

Ausgedruckt am: 21.11.2024 um 22:11 Uhr

Doskias
Doskias 07.02.2022 um 10:15:11 Uhr
Goto Top
Moin,

das Skript hast du verstanden oder nur gefunden face-wink

Scherz beiseite: Das Skript liest die Rechner aus der CSV-Datei aus. Wenn die Überschriften nicht stimmen, funktioniert es nicht.

Zeile 4 hast du auch korrekt deiner Umgebung angepasst?

Gruß
Doskias
SlainteMhath
SlainteMhath 07.02.2022 um 10:55:02 Uhr
Goto Top
Moin,

das Script hat auch noch Fehler.

Die in Zeile 11 eingelesen Variable $_MoveTe wir ind Zeile 14 und 18 nicht verwendet, soner $MoveTo. Somit wird nicht das in der csv angebene Ziel verwendet.

Aber es wird nichts gesperrt bzw. verschoben.
Dir ist sicher aufgefallen das der PC name in der Ausgabe leer ist... wie @Doskias schon schrieb: check mal dein CSV

lg,
Slainte
148656
148656 07.02.2022 um 11:00:56 Uhr
Goto Top
Moin,

Was sagt den der Windows-Papst dazu?
Die Funktion DisablePC finde ich schon fragwürdig.
In der Funktion wird bereits vor dem deaktivieren und verschieben der Erfolg mitgeteilt.

Gruß
C.C.
UHD-Fischkopp
UHD-Fischkopp 07.02.2022 um 11:01:29 Uhr
Goto Top
Gefunden und ähhh versucht mir mein Teil zu denken ; )

Zeile 4 "firma" da steht unsere Domäne Local stimmt face-smile (C&P aus "distinguishedName")
Zeile 5 ist die Überschrift der ersten Zelle.

Hier mal eine Test csv die auch nicht klappt: (ja, die Computer gibt es ; )

Clear-Host
sparepart987
sparepart988
sparepart989
sparepart990
SlainteMhath
SlainteMhath 07.02.2022 um 11:03:51 Uhr
Goto Top
Zeile 5 ist die Überschrift der ersten Zelle.
Und das Kinder, ist der Grund warum man nur Scripts einsetzen sollte die man auch versteht....
Das "Clear-Host" hat NICHTS NULL NADA ZIP mit der CSV zu tun. Also garnichts!

Die Überschriften in der CSV müssen lauten "SamAccountName" und "MoveTo" (siehe Zeile 23)
Doskias
Lösung Doskias 07.02.2022 um 11:11:03 Uhr
Goto Top
Zitat von @SlainteMhath:
Zeile 5 ist die Überschrift der ersten Zelle.
Und das Kinder, ist der Grund warum man nur Scripts einsetzen sollte die man auch versteht....
Eigentlich was der Satz auch verstanden oder nur gefunden als Scherz gemeint face-sad

Das "Clear-Host" hat NICHTS NULL NADA ZIP mit der CSV zu tun. Also garnichts!

Die Überschriften in der CSV müssen lauten "SamAccountName" und "MoveTo" (siehe Zeile 23)
Wobei ich persönlich das MoveTo als festen Wert angeben würde, damit alle deaktivierten Rechner in der gleichen OU landen und ich in der CSV wirklich nur die Rechnernamen habe, aber dazu müsste man das Skript etwas umbauen und davon würde ich hier abraten.

Aber wie ich ja schon sagte:
Wenn die Überschriften nicht stimmen, funktioniert es nicht.

Gruß
Doskias
UHD-Fischkopp
Lösung UHD-Fischkopp 07.02.2022 um 11:48:18 Uhr
Goto Top
Erst mal danke an alle,

@SlainteMhath das der Name leer war habe ich gesehen, ich wusste aber nicht wieso ; )
die Sache mit den Fehlern, verstehe ich nicht da jetzt alles verschoben wurde, was in der csv steht.
In der ersten Zelle der csv steht SamAccountName und dann untereinander die Rechnernamen,
und schon ging es ; )

@all
Leider fehlt mir die Logik von Ps:
Letzte Woche habe ich dasselbe mit einem liste von Usern gemacht,
das hat geklappt...
meine Idee Get-ADUser in Get-ADComputer umzubenennen ging total daneben °°

Jedes Mal ein Scripts zu starten, was ich nicht kenne, gleicht ein Ohnmachtsanfall.
Aber mein Vorschlag 1 nur einen Admin einzustellen stößt auf taube Ohren.