通过PowerShell脚本和cmdlets管理Windows 7远程桌面并不神秘,但是很多人在系统初始配置时容易出错。下面,我将讲述如何通过PowerShell执行远程Windows 7桌面管理任务和故障诊断。 启用WinRM 为支持PowerShell管理远程桌面,管理主机上需要启用WS-Management(Windows Remote Management)服务。该服务默认的启动方式为手动,所以您需要更改为自动方式并启用服务。
还可以通过在PowerShell中输入如下命令来确认服务是否启动: Get-Service WinRM 在需要被管理的机器上也需要完成一些准备工作……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
通过PowerShell脚本和cmdlets管理Windows 7远程桌面并不神秘,但是很多人在系统初始配置时容易出错。下面,我将讲述如何通过PowerShell执行远程Windows 7桌面管理任务和故障诊断。
启用WinRM
为支持PowerShell管理远程桌面,管理主机上需要启用WS-Management(Windows Remote Management)服务。该服务默认的启动方式为手动,所以您需要更改为自动方式并启用服务。还可以通过在PowerShell中输入如下命令来确认服务是否启动:
Get-Service WinRM
在需要被管理的机器上也需要完成一些准备工作,第一件事情就是在所有需要管理的桌面上安装IIS(Internet Information Service)。打开Control Panel点击Programs,找到Turn Windows Features On or Off。在接下来的画面中选择Internet Information Services,并点击OK。
在IIS安装完成后,启用WS-Management(Windows Remote Management)服务。接下来,您需要把IIS配置为WinRM(Windows Remote Management Service)服务的接收器。Windows 7提供了自动完成方式,只需打开命令窗,输入如下命令:
WinRM QuickConfig
图A:在远端PC上快速配置WinRM接收器
该命令自动修改WinRM服务启动方式、在防火墙中添加额外项目以及配置WinRM接收器。如图A中看到,可以远程确认所有动作。
测试远程PowerShell
最简单的测试通过PowerShell命令管理远程Windows 7 PC是否可行的方式是用如下命令返回主机名称:
Gc env:computername
如果您想通过同一条命令管理远程主机,命令方式如下:
Invoke-command –ComputerName <the name of the remote computer> -ScriptBlock {GC ENV:computername}
图B:该命令返回远程计算机名
例如,我对名为Lab-W7(图B)的远端主机运行该命令,可以看到成功返回主机名。显然这个命令在实际中没有用处,因为您已经知道主机名。实际上,在该命令本身就包含了计算机名。不过,运行该命令可以很好地说明您是否已经连接到远程系统中。
更多PowerShell命令
虽然只演示了如何返回计算机名的命令,实际上您可以通过运行任意的命令执行对远程计算机的管理。只需把两个大括号{}之间的命令进行替换就可以了。
这项技术在只需运行少量命令时非常管用,如果需要执行的是一系列命令,最好使用New-PSSession cmdlet。
另外,关于我介绍的这个方法您还需要弄清楚,它可以适用于对多个远程计算机的管理。您需要更改的只是输入所有要被管理的计算机名,名字之间键入一个空格分隔。
远程PowerShell中存在的陷阱
本文开头提过,在对远程桌面使用PowerShell的时候可能遇到问题。当我在写这篇文章的时候,WinRM QuickConfig命令被锁定,最终返回错误。在经历了六个小时的故障诊断后发现防火墙阻止了到远程PowerShell的访问。
您还可能遇到权限问题。您登陆的计算机账户需要具备对所有被管理远程主机的管理员权限才可以。
另外一点,本地计算机需要可以解析远程计算机的IP地址。如果DNS解析不能正常工作,您需要输入的就是不是计算机名而是它们的IP地址。
防火墙也会导致WinRM失效。防火墙需要可以接受界内和界外的HTTP访问。WinRM QuickConfig命令可以自动在Windows防火墙内添加例外,但是如果您使用了第三方防火墙就需要手动添加。请注意WinRM1.1和早期版本使用了TCP 80端口,而WinRM 2.0(Window 7中使用的版本)使用了5985端口代替。
最后,如果您遇到认证问题,那么需要制定远程计算机为被信任主机。例如,我需要指定名为Lab-W7的主机被信任。在本地计算机上输入如下命令:
WinRM s winrm/config/client '@{TrustedHosts="Lab-W7"}'
可以看到,在通过PowerShell命令管理远程桌面时是有一些问题需要考虑清楚的。尽管如此,一旦配置正确,这种管理方式还是很稳定的。
作者
Brien M. Posey,微软认证系统工程师,Windows 2000 Server 和 IIS方面最有价值专家。Brien曾任全国性连锁医院的CIO,负责过Fort Knox的网络安全。作为一名自由撰稿人,他为微软, CNET, ZDNet, TechTarget, MSD2D, Relevant Technologies 以及其他的科技公司写过稿。
相关推荐
-
自动化之旅:选择正确的IT自动化工具
在企业中,老生常谈的“少即是多”通常是正确的,IT也不例外。这意味着寻求使用已有资源响应不断增加的资源需求,效率往往更高。
-
使用VMware vRealize Orchestrator编写工作流脚本指南
VMware vRealize Orchestrator还可以完成许多其他任务,但是首先推荐你学习JavaScript,因为vRO当中的所有功能都需要使用JavaScript。
-
五大免费的PowerShell资源与工具
现在大多数人要应对席卷数据中心的“虚拟化潮流”,它改变了我们部署应用程序的方式。
-
如何在Hyper-V里使用PowerShell或VBScript脚本?