Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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! :)

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 von Clay61

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 🤷‍♂️.

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) {
   .
   .
   .
}

 

  • 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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.