Hallo Zusammen,
sitze hier gerade verzweifelt an einem Skript für WoL. Die Mac Adressen zum remote Auslesen, ist schon geschrieben und funktioniert auch. Nun möchte ich die Text-Datei mit den MAC-Adressen für den folgenden Skript auslesen lassen. Durch verschiedene Quellen
habe ich mir einen Skript gebastelt, der bei einzelen MAC-Adressen funktioniert...nur mehrere Adressen über die Textdatei funktionieren nicht...
Es hängt bei der Abfragen der MAC-Adressen wenn ich die Datei als String einlese funktioniert die erste MAC-Adresse in der .TXT-Datei....Ziel der Übung ist ja, dass alle funktionieren sollten und mit der ForEach syntax haut das irgentwie nicht hin...Bitte um Hilfe :-)
function Send-Wake
{
[CmdletBinding()]
param(
[Parameter(Mandatory=$True,Position=1)]
[string]$mac,
[string]$ip="255.255.255.255",
[int]$port=9
)
$broadcast = [Net.IPAddress]::Parse($ip)
$mac=(($mac.replace(":","")).replace("-","")).replace(".","")
$target=0,2,4,6,8,10 | % {[convert]::ToByte($mac.substring($_,2),16)}
$packet = (,[byte]255 * 6) + ($target * 16)
$UDPclient = new-Object System.Net.Sockets.UdpClient
$UDPclient.Connect($broadcast,$port)
[void]$UDPclient.Send($packet, 102)
}
$File = "_MAC.txt"
$Position = -1 #fängt bei 0 an zu zählen
ForEach ($Position in $File) {
$Position+=1
send-wake (Get-content $File | Out-String)
}
VG
Hanuta