在下面的示例中,我的scriptblock中只有Get-Process
正在执行。 " DEH系统"由于某种原因不打印
Invoke-Command -ComputerName mycomputer -Credential $mycreds -ScriptBlock {
Get-Process
Write-Host "deh"
}
如果我删除-ComputerName
并在本地执行,那么它运行两个命令就好了。
编辑:
这里我尝试对远程服务器执行IIS cmdlet。以下命令有效
Invoke-Command -ComputerName mycomputer -ScriptBlock {
Trace-Command CommandDiscovery {
Import-Module webAdministration
Start-WebAppPool -Name DefaultAppPool
} -PSHost
}
但这不起作用
Invoke-Command -ComputerName mycomputer -ScriptBlock {
Import-Module webAdministration
Start-WebAppPool -Name DefaultAppPool
}
它有助于Start-WebAppPool工作的Trace-Command
有什么特别之处?这真的很奇怪,我无法解释为什么这个功能......
答案 0 :(得分:2)
不,Invoke-Command
cmdlet采用 scriptblock ,您可以在其中放置多个命令。您还应该能够看到Write-Host
输出。
答案 1 :(得分:1)
您可以通过\*
在远程计算机上执行Trace-Command
,看看发生了什么。我无法重现这一点。
Invoke-Command
答案 2 :(得分:-2)
尝试使用分号分隔命令:
Invoke-Command -ComputerName mycomputer -Credential $mycreds -ScriptBlock {
Get-Process ;
Write-Host "deh"
}