marcx2 10 Geschrieben 3. November 2015 Melden Geschrieben 3. November 2015 Hallo zusammen, ich habe folgendes kleines Problem! Ich würde gerne über PS Wake-on-Lan machen. Das ganze funktioniert auch. Allerdings habe ich das Problem das ich aufgrund der Standortanbindung keine UDP Broadcasts über die Standortgrenzen hinaus machen kann. Dann habe ich mir überlegt das ich den Code ja auch remote ausführen könnte auf Servern die in dem benötigten Netz liegen. Das habe ich mir auch alles eingerichtet. Funktionieren tut es auch. Allerdings funktioniert es nur so wie im 2ten Code Beispiel gezeigt. So funktioniert es nicht: $s = New-PSSession –ComputerName Servername Invoke-command -session $s -Scriptblock {(import-module C:\PSScripts\Send-WOL.ps1) + (Send-WOL -mac $MACADRESS -ip Broadcastaddress des Netzes)} $s | Remove-PSSession Fehler: Ausnahme beim Aufrufen von "Substring" mit 2 Argument(en): "Der Index und die Länge müssen sich auf eine Position in der Zeichenfolge beziehen. Parametername: length" + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException übergebe ich die MAC direkt mit tut alles! $s = New-PSSession –ComputerName Servername Invoke-command -session $s -Scriptblock {(import-module C:\PSScripts\Send-WOL.ps1) + (Send-WOL -mac D0:67:E5:18:D5:73 -ip Broadcastaddress des Netzes)} $s | Remove-PSSession Könnte mir jemand helfen wie ich die $MACADDRESS übergeben kann? Diese bekomme ich raus mit: $MACADDRESS = (Gwmi -Name Root\SMS\Site_XXX -cl SMS_R_System -Comp Servername | where {$_.Name -eq "$ComputerName"}).MACAddresses Danke schonmal für eure Hilfe! LG Marc
Dukel 468 Geschrieben 3. November 2015 Melden Geschrieben 3. November 2015 Bei invoke-command hast du keine Lokalen Variablen zur Verfügung. Du musst diese mit dem Parameter -argumentlist übergeben. 1
marcx2 10 Geschrieben 3. November 2015 Autor Melden Geschrieben 3. November 2015 Das hatte ich vergessen, vielen Dank für die Info! Allerdings kommt der Fehler immer noch wenn ich den Befehl folgendermaßen ausführe: Vielleicht noch eine Idee? Invoke-Command -Session $s -ArgumentList $MACADDRESS -ScriptBlock {Send-WOL -mac $MACADDRESS -ip 192.168.xxx.xxx} Ausnahme beim Aufrufen von "Substring" mit 2 Argument(en): "Der Index und die Länge müssen sich auf eine Position in der Zeichenfolge beziehen. Parametername: length" + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException Ausnahme beim Aufrufen von "Substring" mit 2 Argument(en): "startIndex darf nicht länger als die Länge der Zeichenfolge sein. Parametername: startIndex" + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException + PSComputerName : name Ausnahme beim Aufrufen von "Substring" mit 2 Argument(en): "startIndex darf nicht länger als die Länge der Zeichenfolge sein. Parametername: startIndex" + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException + PSComputerName : name Ausnahme beim Aufrufen von "Substring" mit 2 Argument(en): "startIndex darf nicht länger als die Länge der Zeichenfolge sein. Parametername: startIndex" + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException + PSComputerName : name Ausnahme beim Aufrufen von "Substring" mit 2 Argument(en): "startIndex darf nicht länger als die Länge der Zeichenfolge sein. Parametername: startIndex" + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException + PSComputerName : name Ausnahme beim Aufrufen von "Substring" mit 2 Argument(en): "startIndex darf nicht länger als die Länge der Zeichenfolge sein. Parametername: startIndex" + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException + PSComputerName : name Ausnahme beim Aufrufen von "Send" mit 2 Argument(en): "Das angegebene Argument liegt außerhalb des gültigen Wertebereichs. Parametername: size" + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException + PSComputerName : name
Beste Lösung Dukel 468 Geschrieben 3. November 2015 Beste Lösung Melden Geschrieben 3. November 2015 In deinem Scriptblock ist jetzt zwar der Inhalt der Variable, aber nicht als Variable $macaddress. -Scriptblock {param($MACADDRESS); ...} Das funktioniert wie eine Function.
marcx2 10 Geschrieben 3. November 2015 Autor Melden Geschrieben 3. November 2015 (bearbeitet) AAAAhhhhhh. sehr nice!!! Jetzt klappt das genau so wie ich mir das vorgestellt habe! Vielen Dank Dukel! bearbeitet 3. November 2015 von marcx2
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden