美文网首页
PowerShell - 远程访问 Windows Server

PowerShell - 远程访问 Windows Server

作者: 娃哈哈喜之郎 | 来源:发表于2020-03-31 17:38 被阅读0次

PowerShell 是 Windows Server 服务器的运维管理的利器,提高了运维效率,不能停留在蛮荒的人工手动维护的时代,尤其是面对同时维护多台服务器,PowwerShell 的优势发挥的淋漓尽致。

下面我们来看下远程访问服务器的,建立服务器远程连接的会话,以及会话的管理。

首先看下本地计算机是否开发 WinRM 服务

Get-Service WinRM

控制台打印的结果的显示,该服务的 Status 是 Running 状态

Status   Name               DisplayName
------   ----               -----------
Running  WinRM              Windows Remote Management (WS-Manag...

如果服务没有启动,可以通过下面的 cmdlet 启动服务

Start-Service WinRM

为了使本地计算机能够远程访问服务器,首先需要在远程服务器上启用远程管理

Enable-PSRemoting –Force

在本地和远程计算机上同时设置受信任的主机名

Set-Item wsman:\localhost\client\trustedhosts *

重启 WinRM 服务

Restart-Service WinRM

测试能不能连接远程服务器

Test-WsMan '192.168.1.234'

到了这一步,我们就要进入重点了,建立远程连接服务器的会话

定义一个函数专门用来创建 Credential 对象,用于会话的认证

function getCred ($username, $password) {
    $pass = ConvertTo-SecureString $password -AsPlainText -Force
    $cred = New-Object System.Management.Automation.PSCredential -ArgumentList $username, $pass
    return $cred
}
$cred = getCred -username $username -password $password

通过 new-PSSession 建立会话

$server = '192.168.1.234'
$session = new-PSSession -ComputerName $server -Credential $cred

我们可以通过 Get-PSSession 查看已建立起的会话类别

Get-PSSession

通过 Invoke-Command 可以在远程服务器上执行命令,也可以在远程服务器上执行本地的文件

Invoke-Command -Session $session  -ScriptBlock {Get-Process PowerShell}
Invoke-Command -Session $session  -FilePath .\task.ps1

最后在远程服务器上执行完任务后,记得关闭会话

Remove-PSSession -Session $session

清空之前未关闭所有会话

Get-PSSession | ForEach-Object { Remove-PSSession -session $_ }

如果这篇文章对您有帮助,记得给作者点个赞,谢谢!

相关文章

网友评论

      本文标题:PowerShell - 远程访问 Windows Server

      本文链接:https://www.haomeiwen.com/subject/clkguhtx.html