您的位置:首页 > 运维架构 > Shell

使用任意设备的浏览器访问强大的PowerShell

2012-11-13 11:21 330 查看
Windows Server 2012的强大之处确实是很令人震惊,之前看到发布会说Windows Server 2012仅在Hyper-V上就增加了上千条Powershell cmdlet,确实很令人兴奋。虽然,说句实话Powershell刚出来的时候我根本不知道是什马玩意,但即便到现在我也仅仅是会PowerShell的冰山一角的一角,因为Powershell的强大,是我没有办法估量的。而今天,要给大家带来的并不是PowerShell,而是Windows Server 2012另外一个强大的功能,当然肯定是PowerShell有关的,否则我也不会在前面废话这么多PowerShell。
那是什么呢?那就是PowerShell Web访问功能,也就是说我们可以在任意位置使用浏览器来使用我们的PowerShell cmdlet。这样可以干什么?这样我们几乎可以干在服务器显示器面前想做的几乎所有事情,这也是PowerShell的强大之处。好了,下面废话就不多说了,是驴是马拉出来溜下,大家都懂了。
首先我们打开我们要发布PowerShell的服务器,任意服务器都可以,因为我们发布的PowerShell是可以自定义连接到哪台服务器上的,所以不一定需要在关键的服务器上做操作,可以直接在我们的网关服务器上进行即可。这个功能异常强大,如果要针对Internet开放,千万要注意安全,否则可能倾家荡产!
在服务器管理器中单击“管理”-“添加角色和功能”。



然后我们需要选择安装类型,这里选在“基于角色或基于功能的安装”。



然后选择服务器。



直接跳过添加服务器角色界面,单击下一步。



在选择功能位置,我们展开已经安装好的“Windows PowerShell”,然后复选“Windows PowerShell Web访问”,单击下一步。



这里不需要自动重启,单击“安装”。



稍待片刻就OK了,单击关闭。



然后在配置之前,我们需要一个服务器身份验证证书。这里因为我事先准备好了服务器证书,如果没有准备证书的话,有两种方式,第一种就是找CA申请,第二种就是创建一个自建的证书。如果是创建自建的这时我们以管理员身份运行PowerShell,然后输入以下cmdlet:
Install-PswawebApplication
如果没有证书的话输入:
Install-PswawebApplication -UseTestCertificate
这条cmdlet会创建一个自建证书。



OK之后,我们打开IIS,展开服务器-网站,选择默认网站,单击右侧的“绑定”。



然后在“网站绑定”对话框选择https,并单击“编辑”按钮。



然后在这里我们选择一个SSL证书,单击多次确定,关闭IIS管理器。



搞定后,我们就可以通过:
https://<server_name>/pswa
访问我们的PowerShell Web界面了。如果是自建的证书,证书是未经认证的,所以会提示证书错误,选择"继续浏览此网站(不推荐)"即可。



但是现在我们是没有办法登录的,因为我们现在还没有授权任何用户能够通过PSWA使用PowerShell。
我们需要使用Add-PswaAuthorizationRule cmdlet向 Windows PowerShell Web 访问 授权规则集添加新的授权规则。此cmdlet支持以下参数:
ComputerGroupName
ComputerName
ConfigurationName
RuleName
UserGroupName
UserName
我们来运行一个简单点的,添加一条安全级别比较低的规则:
Add-PswaAuthorizationRule -ComputerName * -UserGroupName "domain\domain group" -Configuration *
我来简单的解释下这条命令, ComputerName指的是访问PSWA的计算机名称,而不是被PSWA的计算机名称,我们这里使用的是“*”即可以使用任何计算机来访问使用PSWA;UserGroupName指的是允许使用PSWA的用户组,当然也可以直接指定用户,使用UserName参数即可;最后的Configuration是指可以以什么身份运行PowerShell,我们这里的“*”指的是任何身份,即可以进行所有cmdlet的操作。



如果我们条件错了,可以通过Remove-PswaAuthorizationRule来从 Windows PowerShell Web 访问 中删除特定的授权规则,参数包括 ID和RuleName。
这里我们再看下Get-PswaAuthorizationRule cmdlet,执行此命令返回指定ID或规则名的 Windows PowerShell Web 访问授权规则。当不与参数结合使用时,cmdlet 将返回所有规则。



搞定之后,我们就通过https://<server_name>/pswa 来访问一下把,用户名为domain\username,连接类型按默认的计算机名即可,输入计算机名、单击登陆即可连接。



如果凭据正确,即可打开网页版的PowerShell,由于上面的规则,我们可以使用任意cmdlet。



比如这里我执行一条Get-VM,会显示出当前服务器中所有的虚拟机。



最后我们一起看下受支持的浏览器和客户端设备:

Windows PowerShell Web 访问 支持以下 Internet 浏览器。虽然移动浏览器未正式受到支持,但许多此类浏览器均可运行基于 Web 的 Windows PowerShell 控制台。其他接受 Cookies、运行 JavaScript 和 HTTPS 网站的浏览器有望投入使用,但尚未接受正式测试。
受支持的台式计算机浏览器

Microsoft Windows(R) 8.0、9.0 和 10.0 的 Windows(R) Internet Explorer(R)
Mozilla Firefox(R) 10.0.2
Windows 的 Google Chrome(TM) 17.0.963.56m
Apple Safari(R) 51.1.2

经过最小限度测试的移动设备或浏览器

Windows Phone 7 和 7.5
Google Android WebKit 3.1 Browser Android 2.2.1 (Kernel 2.6)
iPhone 操作系统 5.0.1 的 Apple Safari
iPad 2 操作系统 5.0.1 的 Apple Safari

浏览器要求

若要使用 Windows PowerShell Web 访问 基于 Web 的控制台,浏览器必须执行以下操作:

允许从 Windows PowerShell Web 访问 网关网站打开 cookies。
可打开和访问 HTTPS 页面。
打开和运行使用 JavaScript 的网站。
本文出自 “Reinember” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐