Powershell 3.0:在远程PSSession中使用我的本地配置文件和模块

时间:2013-11-20 18:13:39

标签: powershell remoting remote-server

当我将PSRemote导入其他计算机时,我需要位于我本地PC上的本地$ profile自动加载。我的$ profile还导入了一些本地模块(仅在我的本地PC上可用)。所以,我需要增强我的$ profile,这样我的模块仍然可以导入(无论我的$ profile加载到哪里)。

我花了很多时间试图让它发挥作用;但是看到发布了很多不一致的信息(可能是因为PS2和PS3之间存在差异)。我尝试过的所有内容都会导致某种错误。

我希望有人会帮我提供一个如何做到这一点的虚拟证明工作示例。实际上唯一有效的是基本的: enter-pssession -ComputerName RemoteServerName 。我确实尝试至少让我的本地配置文件加载到远程会话中(见下文),但这也不起作用;更不用说加载在配置文件中导入的模块了。

Register-PSSessionConfiguration -Name MyLocalProfile -StartupScript $Profile
Enter-PSSession -ComputerName REMOTESERVERNAME -ConfigurationName 'MyLocalProfile'

给出错误:

Enter-PSSession:连接到远程服务器REMOTESERVERNAME失败,并显示以下错误消息:WS-Management服务无法处理请求。在REMOTESERVERNAME计算机上的WSMan:驱动器中找不到MyLocalProfile会话配置。

我甚至尝试过:

Register-PSSessionConfiguration -Name MyLocalProfile `
          -StartupScript \\MYLocalPC\profile$\Microsoft.PowerShell_profile.ps1

但是,它仍然会产生同样的错误。不知道为什么在大多数人最不希望默认发生的事情上应该做这么难。

1 个答案:

答案 0 :(得分:0)

简短回答:你做得不对,而且不可能这样做。

长答案:

在MSDN上的Enter-PSSession页面上,突出显示一行:

The session configuration for a session is located on the remote computer. If the specified session configuration does not exist on the remote computer, the command fails.

因此,在创建新会话之前,您必须Invoke-Command Register-PSSessionConfiguration