Я пытаюсь создать процедуру, которая будет отображать всплывающие окна на каждом компьютере в нашей сети. Однако, похоже, что функция не активирует команду invoke должным образом. Не расширяет переменную
Код работает нормально с некоторым фиксированным текстом в команде, но при замене текста на переменную он больше не запускается
function ZendAllen($commando) {
$numberofpcs=$(Get-Content $lijst).count
Write-host "Zenden van bericht naar" $numberofpcs "systemen"
$pclijst=Get-Content $lijst
write-output "commando in subroutine = "$commando
foreach ($pc in $pclijst) {
# Invoke-Command -ComputerName $pc -Scriptblock {
# $CmdMessage = {C:\windows\system32\msg.exe * 'hi there'}
# $CmdMessage | Invoke-Expression
# }
Invoke-Command -ComputerName $pc -Scriptblock {
$commando | Invoke-Expression
}
write-host "Zenden naar" $pc
}
}
с фиксированным текстом привет там .. он работает нормально и появляется на каждом экране. Когда запрашивается ввод в другой строке через read-host и помещается текст в переменную с именем $ cmd, команда не запускается.
Я должен сказать, что $ cmd встраивается в разные разделы, чтобы в итоге получить одну строку, т.е.
$ cmd = "{c: \ windows \ system32 \ msg.exe *}"