我想在远程计算机上执行powershell命令,并在本地主机上使用外部模块。我测试了它,得到的消息是,我不能在远程计算机上使用该命令,但在本地它可以工作。
所以我已经通过导入模块在远程计算机上安装了该模块,它可以工作。
但这很糟糕,我不想在公司的每台电脑上都安装这个模块。
这是我的PS脚本:
$cred = Get-Credential
$isConnect = Test-WSMan edv-004
if($isConnect){
#Get-WUHistory is from a extern Module and list the Updatehistory of a computer
Invoke-Command -ComputerName edv-004 -ScriptBlock { Get-WUHistory } -Credential $cred
Write-Host "Skript wurde auf ausgeführt..."
}
在我运行这个脚本之前,我必须这样做:
Enable-PSRemoting -Force
Set-Item WSMan:localhostClientTrustedHosts * -Force #for testing
Restart-Service WinRM
那么,如何在不将外部模块安装在远程计算机上的情况下执行外部模块命令呢?:/
您可以从共享位置导入模块(如果您的执行策略允许):
Invoke-Command -ComputerName edv-004 -ScriptBlock {
Import-Module \servershareYourModule
Get-WUHistory
} -Credential $cred
但是,如果不首先导入模块,就无法从模块运行函数。