У меня есть следующий код, который работает в том смысле, что он создает несколько заданий и запускает то, что находится внутри блока сценария, на всех компьютерах в массиве ($SMSMembers
). Проблема в том, что он не дает никакого значимого вывода, который я мог бы использовать, чтобы определить, успешно ли выполнился код. Я пробовал около 100 различных вещей, которые я искал в Google, но ни одно из решений не сработало для меня. Это код, который я пытаюсь запустить, и я думал, что он должен работать в соответствии с другими сообщениями, которые я видел в StackOverflow.
$SMSMembers = @("computer1","computer2","computer3")
$output = @()
foreach ($compName in $SMSMembers) {
$scriptblock = {
$file = {"test"}
$filepath = "\\$using:compName\c$\scripts\NEWFILE.txt"
$file | Out-File -FilePath $filepath
Start-Sleep -Seconds 5
Remove-Item $filepath
}
$output += Start-Job -ScriptBlock $scriptblock | Get-Job | Receive-Job
}
Get-Job | Wait-Job
foreach ($item in $output) {
Write-Host $item
}
Этот сценарий мало что делает, кроме как копирует файл на удаленный компьютер, а затем удаляет его. Я просто хотел бы получить результат, если работа была успешной или нет. Как я уже сказал, этот код работает так, как должен, просто я не получаю обратной связи.
Моя конечная цель - иметь возможность отправить команду на массив компьютеров ($SMSMembers
) и запросить текущего пользователя с помощью этого кода и вернуть ввод имени пользователя:
$user = gwmi Win32_ComputerSystem -Comp $compName |
select Username -ExpandProperty Username