通过 VLAN 进行 Powershell 身份验证

通过 VLAN 进行 Powershell 身份验证

问题

我想为 VLAN 上的所有工作站主机启用远程 powershell 脚本。没有任何 Active Directory 或目录服务。因此,子网 192.168.1.x 上的主机 A 想要查询主机 B 192.168.2.x。

我已经运行过:

Enable-PSRemoting -force

对于 VLAN 上的任何工作站来说,提示输入凭证都是理想的结果。管理工作站位于子网 192.168.1.x 上,IP 范围为 192.168.1.10-20。

问题

是否可以允许该范围内的主机或来自特定子网的任何 IP 进行 powershell 远程身份验证?:

192.168.1.0/24

澄清一下:我正在设置要部署的工作站,我希望它们能够允许我在现场使用远程 powershell 电源。我的管理站位于一个子网,要部署的工作站位于其他多个子网。

阅读手册

我正在查看来自微软的这个链接:

http://technet.microsoft.com/en-us/magazine/ff700227.aspx

这意味着我需要为每台管理计算机运行以下命令:

winrm s winrm/config/client '@{TrustedHosts="RemoteComputer"}'

有人可以证实或反驳这一点吗?

答案1

如果您不使用 Kerberos/AD 身份验证,则必须将每台机器添加到 TrustedHosts 配置中 - 或者 - 您必须在每个节点之间设置 SSL。实现前者的最佳方法当然是使用脚本。可能是使用文件中的机器名称列表的脚本。

其次,您可以运行具有“协商”身份验证的 PSRemoting 会话,它将提示您输入凭据,如下所示:

在此处输入图片描述

上面的截图中我没有收到输入凭据的提示,唯一的原因是我已经将凭据存储在 $creds 变量中。否则它会提示你。

我并不是想自我推销,但我在我的博客上详细介绍了所有这些主题(第 1 部分和第 2 部分),我相信这会对你有所帮助:

http://www.myotherpcisacloud.com/post/2012/01/26/Monitoring-with-Windows-Remote-Management-(WinRM)-and-Powershell-Part-I.aspx

您必须在尝试建立连接的计算机上将主机添加到 TrustedHosts 列表中的原因是由于固有缺乏相互的在非 Kerberos 或 SSL 环境中进行身份验证。

(为清晰起见,已编辑。)

答案2

很难理解您到底在请求什么,但如果我理解正确的话,这可能会有所帮助。基本上循环遍历 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)
        }
    }

答案3

* 实际上充当 IP 地址的通配符。例如>

winrm set winrm/config/client @{TrustedHosts="10.1.0.*"}

相关内容