Invoke-команда не распознает команду, переданную через функцию - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь создать процедуру, которая будет отображать всплывающие окна на каждом компьютере в нашей сети. Однако, похоже, что функция не активирует команду 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 *}"

...