我必须管理一个由大约 60 台 Windows 计算机组成的学校网络,这些计算机设置为工作组计算机,而不是域计算机。为了简化配置,我将在所有计算机上启用 PowerShell 远程处理。(我知道 Enable-PSRemoting 以及如何进行一般设置)为了尽可能地限制安全风险,只能从具有特定 IP 地址的管理 PC 远程处理这些计算机。
考虑这个例子:
Computer 1: only accepts remoting connection from admin, not from computer 2
Computer 2: only accepts remoting connection from admin, not from computer 1
Admin computer: can remote on all computers
我不确定如何在计算机上设置 Windows 防火墙以仅允许来自一个 IP 地址的 WinRM 协议流量。整个网络设置为“私有”。
有人可以帮我启用正确的防火墙规则吗?
答案1
正如本文所解释的那样:仅为指定的一组 IP 地址启用 PowerShell 远程处理。
(对于每个客户端 pc1/pc2/pc...)您必须:
enable-psremoting
下一步:删除由创建的 winrm-listenerenable-psremoting
Remove-WSManInstance winrm/config/Listener -SelectorSet @{Address="*";Transport="http"}
现在机器不再监听任何人,所以你必须为行政-客户
New-WSManInstance winrm/config/Listener -SelectorSet @{Address="IP:10.11.12.13";Transport="http"}
现在重新启动 winrm 服务
spsv winrm -pass | sasv -pass |gsv #*
(您必须以管理员身份运行 PowerShell)
\*
*spsv = stop-service // sasv = start-service // gsv = get-service // -pass = -passThrough*
答案2
也许 Powershell“受信任主机”列表是您想要的?
如果您不在受信任主机列表中,则无法远程访问计算机
以管理员身份启动 Powershell 控制台
运行此命令:
get-item wsman:\localhost\client\trustedhosts
“值”必须是管理客户端的 IP 地址或名称。要设置此值,请运行:
set-item wsman:\localhost\client\trustedhosts 192.168.1.2
(如果已经有一个值或者您必须管理客户端:
set-item wsman:\localhost\client\trustedhosts -concatenate admin02pcName
) 当然,可以使用通配符,
您可以使用get-item
和使用和使用缩写gi
set-item
si
-concatenate
-concat