forked from CodeblackNL/HyperVLab
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRemoteLogListener.ps1
More file actions
35 lines (32 loc) · 990 Bytes
/
RemoteLogListener.ps1
File metadata and controls
35 lines (32 loc) · 990 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#Requires -Version 4.0
param (
[int]$Port = 7000
)
try {
$endpoint = new-object System.Net.IPEndPoint ([System.Net.IPAddress]::Any, $Port)
$receiver = new-object System.Net.Sockets.UdpClient $Port
Write-Host "Started listening on port '$Port'"
do {
if ($receiver -and $receiver.Client.Poll(500, [System.Net.Sockets.SelectMode]::SelectRead)) {
$dataBytes = $receiver.Receive([ref]$endpoint)
$dataText = [System.Text.Encoding]::ASCII.GetString($dataBytes)
$data = ConvertFrom-Json $dataText
$exit = $data.exit
if ($data.exit) {
break
}
Write-Host ("{0:HH:mm:ss.fff} {1,-10} ({2}): {3} " -f $data.timestamp, $data.hostname,$data.instanceId,$data.message) -fore cyan
}
else {
Start-Sleep -Milliseconds 500
}
} while ($true)
}
catch {
Write-Error $_
}
finally {
if ($receiver) {
$receiver.Close()
}
}