当我将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
但是,它仍然会产生同样的错误。不知道为什么在大多数人最不希望默认发生的事情上应该做这么难。
答案 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
。