scroller
Goto Top

Powershell - Problem mit get-adcomputer in einer schleife

Hallo,

ich will alle Computerkontos die nicht mehr benötigt werden sperren lassen.
mein ANsatz:


$PCs = Search-ADAccount -AccountInactive –Timespan 180 -Searchbase $SB –ComputersOnly | Sort-Object | FT Name -A


foreach ($pc in $pcs){

 $c = get-adcomputer $pc
 
}

wobei in $SB der distinghuished name zur ou steht.
Der erste Befehl wird auch Fehlerfrei ausgeführt

bei $c = get-adcomputer $pc tritt jedoch folgender Fehler auf:

get-adcomputer <<<< $pc
+ CategoryInfo : InvalidArgument: ( : ) [Get-ADComputer], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.ActiveDirectory.Management.Commands.GetADComputer


get-adcomputer : Der Parameter "Identity" kann nicht gebunden werden. Der Wert "Microsoft.PowerShell.Commands.Internal.Format.FormatEnd
Data" vom Typ "Microsoft.PowerShell.Commands.Internal.Format.FormatEndData" kann nicht in den Typ "Microsoft.ActiveDirectory.Management
.ADComputer" konvertiert werden.

Was mache ich falsch?

Danke!
SC

Content-ID: 197471

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

Ausgedruckt am: 25.11.2024 um 14:11 Uhr

colinardo
colinardo 23.01.2013 aktualisiert um 11:15:30 Uhr
Goto Top
Das Format-Table Name -A am Ende von Zeile 1 weglassen, sollte helfen.

Grüße Uwe
Scroller
Scroller 24.01.2013 um 06:25:27 Uhr
Goto Top
Format-Table Name -A weglassen alleine wars nicht.
Ich musste noch die Schleife anpassen:

$c = get-adcomputer $pc.name

...jetzt gehts


trotzdem Danke!
SC
colinardo
colinardo 24.01.2013 um 09:43:34 Uhr
Goto Top
dies scheint an der PowerShell Version zu liegen, zumindest funktioniert es unter Server 2012 mit Powershell 3.0 auch mit $c = get-adcomputer $pc
106543
106543 24.01.2013 um 10:24:29 Uhr
Goto Top
Hi,

mit Powershell 3.0 wurden viele Verbesserungen eingeführt, wie z.B. wenn bei bestimmten Befehlen kein Parameter angegeben ist, dass automatisch ein bestimmter genommen wird.

Grüße
Exzellius