我已经创建了一个远程会话,我可以在会话上运行脚本块
$session = New-PSSession -ComputerName S1
Invoke-Command -ScriptBlock { Get-ChildItem c:\ } -Session $session
现在我想进行以下操作以便于输入。
Get-S1ChildItem c:\
所以我做了以下
Import-PSSession -Session $session -Module management -Prefix S1
但是,它出现了以下错误。
Import-PSSession : Running the Get-Command command in a remote session returned no results. At line:1 char:1 + Import-PSSession -Session $session -Module management -Prefix S1 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidResult: (:) [Import-PSSession], ArgumentException + FullyQualifiedErrorId : ErrorNoResultsFromRemoteEnd,Microsoft.PowerShell.Commands.ImportPSSessionCommand
答案 0 :(得分:1)
对我而言,将-Module management
替换为-Module 'Microsoft.PowerShell.Management'
时效果很好。为了能够使用远程CmdLets,并不真正需要Invoke-Command
。
请尝试以下方法:
$session = New-PSSession -ComputerName S1
Import-PSSession -Session $session -Prefix S1 -Module 'Microsoft.PowerShell.Management'
Get-S1ChildItem c:\
这证明模块Microsoft.PowerShell.Management
中远程会话的所有CmdLets都可用,如Import-PSSession
的{{3}}中所述。
要找出可在哪个模块中找到CmdLet,您可以使用:
Get-Command Get-ChildItem | Select-Object ModuleName