我尝试构建一个例程,该例程将在我们网络中的每台PC上弹出一个窗口。但是,该函数似乎没有正确激活invoke-command。它不会扩展变量
代码在命令中带有一些固定文本的情况下运行良好,但是当用变量替换文本时,该代码将不再运行
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
}
}
那里有固定文本。.它运行良好,并在每个屏幕上弹出。当通过读取主机在另一行上输入内容并将文本放在名为$ cmd的变量中时,该命令不会运行。 我不得不说$ cmd被构建到最终一行的不同部分中,即 $ cmd =“ {c:\ windows \ system32 \ msg.exe *}”