Запускаю код:
[xml]$inputs = New-Object system.Xml.XmlDocument
$inputs.Load('.\inputs.xml')
$matrix = New-Object System.Collections.ArrayList
$hostname = 'ya.ru'
$r = Start-Job {getMyPing $hostname}
[int]$id = $r.Id
$matrix.Add(($id))
$matrix
Start-Sleep -Sec 12
Get-Job
Receive-Job $id
function global:getMyPing($hostname) {
[string]$resPing = ''
if (Test-Connection $hostname -Quiet)
{
$resPing += "Ping to " + $hostname + " success`r`n" # формируем содержимое файла report.txt
$port = $server.port
$sock = new-object System.Net.Sockets.Socket -ArgumentList $([System.Net.Sockets.AddressFamily]::InterNetwork),$([System.Net.Sockets.SocketType]::Stream),$([System.Net.Sockets.ProtocolType]::Tcp)
try {
$sock.Connect($hostname,$Port) | Out-Null # попытка соединения
$resPing += "port " + $port + " connect success`r`n"
$resPing += "`r`n"
$sock.Close()
}
catch {
$resPing += "port " + $port + " connect fail`r`n"
$resPing += "`r`n"
}
}
else
{
$resPing += "Ping to " + $hostname + " fail`r`n" # формируем содержимое файла report.txt
}
$events = $resPing
return $events
}
на строке:
Receive-Job $id
выскакивает ошибка:
Имя "getMyPing" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Проверьте правильность написания имени, а также наличие и правильность пути, после чего повторите попытку.
Вопрос: что, в коде, я делаю не так?