问题
我想为VLAN上的所有工作站主机启用远程PowerShell脚本。 没有任何Active Directory或目录服务。 因此子网192.168.1.x上的HOST A想要查询HOST B 192.168.2.x.
我已经跑了:
Enable-PSRemoting -force
对于VLAN中的任何工作站,提示input凭据将是所需的结果。 pipe理站位于子网192.168.1.x,属于IP范围192.168.1.10-20。
题
是否有可能允许在该范围内的主机的PowerShell远程身份validation,或任何IP来自特定的子网?
192.168.1.0/24
为了澄清:我正在设置工作站进行部署,我希望能够设置远程PowerShell的权限。 我的pipe理工作站位于一个子网中,要部署的工作站位于其他许多子网中。
RTFM
我正在看这个来自微软的链接:
http://technet.microsoft.com/en-us/magazine/ff700227.aspx
这表明我需要为每个pipe理员计算机运行以下内容:
winrm s winrm/config/client '@{TrustedHosts="RemoteComputer"}'
有人可以证实或反驳吗?
如果您不使用Kerberos / AD身份validation,那么您将不得不将每台计算机都添加到您的TrustedHostsconfiguration中,否则您必须在每个节点之间设置SSL。 实现前者的最好方法当然是用脚本。 可能是使用文件中机器名列表的脚本。
其次,你可以运行一个PSRemoting会话与“协商”authentication,这将提示你的信誉,如下所示:
我在上面的屏幕截图中没有得到提示信息的唯一原因是我已经将凭证存储在$ credsvariables中。 否则它会提示你。
我并不是说要自我推销,但是我在这里的博客(第1部分和第2部分)中详细介绍了所有这些话题,我相信这会帮助你解决一些问题:
您必须将主机添加到试图build立连接的计算机上的TrustedHosts列表中,原因是在非Kerberos或SSL环境中内在缺乏相互身份validation。
(为清晰起见编辑)
它很难理解到底是什么请求,但如果我理解正确,这可能会有所帮助。 基本上通过循环192.168.2.0/24,ping它,如果它响应,运行你发布的命令。
$fourthoctet = 0..255 Foreach ($fo in $fourthoctet) { $ip = (new-object System.Net.Networkinformation.Ping).Send("192.168.2.$fo") | where-object {$_.Status -eq "success"} | select Address If ($ip -ne $null) { Enable-PSRemoting -force $($ip.address) } }
*实际上是作为IP-Addesses的通配符工作的。 例如>
winrm set winrm/config/client @{TrustedHosts="10.1.0.*"}