marcx2 10 Geschrieben 3. November 2015 Melden Teilen 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 Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 3. November 2015 Melden Teilen Geschrieben 3. November 2015 Bei invoke-command hast du keine Lokalen Variablen zur Verfügung. Du musst diese mit dem Parameter -argumentlist übergeben. 1 Zitieren Link zu diesem Kommentar
marcx2 10 Geschrieben 3. November 2015 Autor Melden Teilen 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 Zitieren Link zu diesem Kommentar
Beste Lösung Dukel 455 Geschrieben 3. November 2015 Beste Lösung Melden Teilen 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. Zitieren Link zu diesem Kommentar
marcx2 10 Geschrieben 3. November 2015 Autor Melden Teilen 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 Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 3. November 2015 Melden Teilen Geschrieben 3. November 2015 Gerne. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.