PowerShell远程操作服务器
参考: https://www.cnblogs.com/sparkdev/p/7200004.html
补充:
1. 服务器上,要被Powershell远程操作,是基于HTTP/HTTPS协议的,而且端口默认:
HTTP:5985
HTTPS:5986
2. 服务器上,仅仅使用 Enable -PSRemoting -Force是不会开启5985、5986的端口的
因此,要使用
Set - WSManQuickConfig(如果加了-Force,不出提示,直接是Y)
出现
如果是云服务器,还得上操作台开端口
3. 不要忘记再云服务器上加入Enable-PSRemoting
4. 本机上,还需要将服务器IP加入到信任列表中(重要)
首先,本机也是要开启(要以管理员身份运行,否则是不能进行下一步)
然后,查看一下信任列表
最后,将服务器IP加入这个列表
Set-Item WSMan:localhostClientTrustedHosts -Value xxx.xxx.xxx.xxx
(清楚信任列表:Clear-Item WSMan:localhostClientTrustedHosts)
再次查一下信任列表,应该就可以开始远程了
4. 参数使用注意
在使用
[int]$index = 0
Invoke-Command -Session $sessions -ScriptBlock { Write-Host $index }
是不会执行成功的,因为 { } 内的东西会作为纯文本传输到远程机器
如果要使用,那么可以
Invoke-Command -Session $sessions -ScriptBlock { Write-Host $using:index }