我想在远程计算机上运行几行代码,因此我必须使用“Invoke-command”cmdlet来实现这一点。 我想运行的脚本相当长(不仅仅是一个简单的命令,而是一些循环,条件等),因此不可能只是在线复制代码。 那么有人可以教我这样做的语法吗?
for example: I have the following code:
Function createDict(){
$Dict = @{}
$Variables = Get-Content .\Variables.ini.
foreach ($str in $Variables){
if ($str -eq ""){
continue
}
if ($str.StartsWith("[") -or $str.StartsWith("#")){
continue
} else {
$Pair = $str.Split('=')
$Dict.Add($Pair[0], $Pair[1])
}
}
return $Dict
}
Import-Module virtualmachinemanager
stop-VM NHQA-W8-64b-Q13
start-VM NHQA-W8-64b-Q13
你不需要尝试理解上面的代码,我只是想告诉你我在这里尝试在远程机器上执行什么样的事情。 非常感谢你提前!
答案 0 :(得分:2)
你有几个选择,可能更多:
使您的函数/ cmdlet可用作脚本并在远程会话上点源它们:
. \\path\to\cmdlets.ps1
您拥有的另一个选项是PowerShell中的脚本块是一个对象,因此可以将其分配给变量并以这种方式重复使用。考虑以下简单的例子:
$files = { -not $_.PSIsContainer }
$folders = { $_.PSIsContainer }
dir | ? $files
dir | ? $folders
我希望这些想法有所帮助。对不起,我没有更直接的答案。也许如果你能提供一些你尝试过的例子以及你遇到的错误,那将有助于提供更直接,更好的答案。