WoL mit .TXT versenden Funktioniert nicht
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....
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 = "MacAdressen.txt"
send-Wake (Get-Content $File | Out-String)
VG
Hanuta
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....
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 = "MacAdressen.txt"
send-Wake (Get-Content $File | Out-String)
VG
Hanuta
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 280498
Url: https://administrator.de/forum/wol-mit-txt-versenden-funktioniert-nicht-280498.html
Ausgedruckt am: 09.04.2025 um 09:04 Uhr
6 Kommentare
Neuester Kommentar

gc $file | %{send-wake $_}
Hallo,
da Du keine Zeitverzögerung drin hast auch besser so.
Die CSV
Erste Zeile MAC un ddann darunter die Macadressen mit : zwischen den Zeichen
Gruß
Chonta
da Du keine Zeitverzögerung drin hast auch besser so.
$Script:csv_path = "$env:USERPROFILE\Desktop\Macadressliste.csv"
$Script:csv_import = import-csv $Script:csv_path -delimiter ";"
foreach ($MAC in $Script:csv_import)
{
try {
# write-host $MAC.MAC
Start-Sleep -s 15
$MAC.MAC = $MAC.MAC.split(':') | %{ [byte]('0x' + $_) }
$UDPclient = new-Object System.Net.Sockets.UdpClient
$UDPclient.Connect(([System.Net.IPAddress]::Broadcast),9)
$Packet = [byte[]](,0xFF * 6)
$Packet += $MAC.MAC * 16
Write-Verbose ([bitconverter]::tostring($Packet))
[void] $UDPclient.Send($Packet, $Packet.Length)
write-host "WOL command sent to $MAC.MAC" + "<br>"
}
catch [system.exception] {
write-host "ERROR: Unable to send WOL command to $MAC.MAC"
}
}
# write-host "$Script:csv_path"
Die CSV
Erste Zeile MAC un ddann darunter die Macadressen mit : zwischen den Zeichen
Gruß
Chonta