2017-04-04 155 views
0

要求:通过客户端计算机在远程服务器上运行PowerShell脚本。从客户端计算机启用远程计算机上的WinRM

为了在远程计算机上运行PowerShell脚本,我们必须使用

Enter-PSSession 

为了做同样的,客户端和服务器必须能够通过WinRM服务相互通信。为了达到同样的效果,我们需要启用一个防火墙端口(如果尚未打开),创建一个新的证书并将相同的端口与指纹关联以启用通信。

我可以通过创建一个PS脚本来实现,并在服务器上运行它。

但是如果我必须对40个奇数服务器执行相同的操作,那么我需要某种自动化。所以,在这里我正在寻找帮助,我可以在两台服务器之间启用通信,不需要手动记录到每台服务器,而是通过PowerShell为客户机上的服务器启用WinRM。

我的最终目标是将所有现有的基础设施迁移到云中并实现相同的目标,唯一的障碍是服务器之间的通信。

注意:通过手动登录到脚本并运行脚本,我可以通过脚本运行脚本来实现所有需求。运行脚本后,我可以在我的客户机中获得服务器的Session。

+0

您的服务器域加入了吗? –

+0

所有的服务器都加入域,但客户端将在不同的域 – Developer

+3

然后我会使用[组策略](http://www.grouppolicy.biz/2014/05/enable-winrm-via-group-policy/)启用WinRM。 –

回答

1

修订

看起来你的选择将是要么使用PSTools,我认为这会工作。下载该套件然后使用

psexec \\[computer name] -u [admin account name] -p [admin account password] -h -d powershell.exe "enable-psremoting -force" 

然后您可以远程运行脚本。

OR

你可以远程部署计划的任务指向你的.PS1文件。

+0

感谢Ross的回复。但是,您在答案中提供的命令会启动远程计算机的WinRM服务。但是我正在寻找的是运行一个脚本,它将在远程服务器上启用WinRM。以下是需要执行的步骤列表:1)在服务器操作系统内部创建防火墙规则2)创建证书3)配置WinRM以侦听端口https://blogs.technet.microsoft.com/uktechnet/2016/02/11/configured-winrm-over-https-to-enable-powershell-remoting/ – Developer

+0

熊与我,我会修改上述! –

+0

我确实有一个脚本可以完成链接中提到的所有步骤。但主要问题是我将如何能够运行这个远程机器 – Developer