Veröffentlicht 22. Februar 20232 j Hi Zusammen, ich komme bei einer wahrscheinlich sehr simplen Aufgabe nicht weiter.... Ich benötige in einem Teil des Skriptes, dass die Notebooks, welche in der Variable sind neustarten sollen, jedoch erhalte ich hierbei immer eine Fehlermeldung. Ausschnitt Code: $COM =Get-ADComputer -Filter 'Name -like "NB*"' -Properties * | select name Invoke-Command {Restart-Computer} -computer $COM Fehlermeldung: Invoke-Command : Mindestens ein Computername ist ungültig. Wenn Sie einen URI übergeben möchten, verwenden Sie den Parameter "-ConnectionUri", oder übergeben Sie URI-Objekte anstelle von Zeichenfolgen. Vielen Dank vorab!
22. Februar 20232 j Hi, ich bin kein Powershell Profi, sondern lerne es auch nebenbei. Ich frage mich warum du die Properties des Objekts auflistest und den Namen auswählst. Wäre es mit folgenden Code auch nicht möglich? (Bin mir unsicher) Get-ADComputer -Filter 'Name -like "NB*"' | Foreach-Object {Restart-Computer} Oder musst du zwingend eine Variable benutzen? Bearbeitet 22. Februar 20232 j von Clay61
22. Februar 20232 j Hallihallo, ich habe den code und deiner Fehlerbeschreibung mal einfach kurz und knapp in ChatGPT eingetippt, der hat folgendes ausgespuckt: Die Fehlermeldung deutet darauf hin, dass der Parameter -ComputerName für Invoke-Command möglicherweise nicht in der richtigen Form angegeben wurde. Die Variable $COM enthält eine Liste von Computerobjekten, nicht nur eine Liste von Computernamen. Sie können die Computerliste durch die Verwendung der Eigenschaft Name der $COM-Variable extrahieren, bevor Sie sie an Invoke-Command übergeben. Versuchen Sie es mit dem folgenden Code: $COM = Get-ADComputer -Filter 'Name -like "NB*"' -Properties Name $ComputerNames = $COM.Name Invoke-Command -ComputerName $ComputerNames -ScriptBlock {Restart-Computer} Dieser Code verwendet die Eigenschaft Name, um eine Liste von Computernamen aus der $COM-Variable zu extrahieren und in der Variablen $ComputerNames zu speichern. Dann wird der Parameter -ComputerName von Invoke-Command mit der Liste von Computernamen aufgerufen. Hab den zwar nie in der Praxis für meine Powershell skripts benutzt, aber vielleicht wird es hier was 🤷♂️.
22. Februar 20232 j vor 39 Minuten schrieb Ilo496: Die Variable $COM enthält eine Liste von Computerobjekten, nicht nur eine Liste von Computernamen. Das ist falsch, es ist eine Liste mit Computernamen, -ComputerName möchte meiner Meinung nach genau einen Namen, keine Liste. ich mach das so $ComputerNames = Get-ADComputer -Filter "Name -Like 'Laptop*'" -Properties dNSHostName |Select-Object -ExpandProperty dNSHostName foreach($Computer in $ComputerNames) { . . . }
23. Februar 20232 j Autor Servus Zusammen, Vielen Dank euch, jetzt funktionierts. ich habe eure Lösungen probiert, am besten hat für mich die Lösung mit den DNS Namen funktioniert. Warum genau es mit Namen leider funktioniert weiß ich leider nicht, aber die Auflösung mit DNS Namen reicht aus..... Besten Gruß Systemer
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.