使用PowerShell管理Windows桌面
當微軟在2003年首次引入Windows PowerShell時,很多IT管理員認為Windows PowerShell只是執行腳本任務以及管理Windows服務器的另一種方式。但是隨著時間的推移,Windows PowerShell已經成為了用于管理、監控,采用腳本處理不同類型軟硬件的候選工具。眾多廠商已經將PowerShell嵌入到他們的產品當中,而且Windows PowerShell已經成為Windows 7核心的桌面管理平臺。
PowerShell的第一個版本并不能執行腳本也不能從中央工作站或服務器查詢遠程計算機。然而,默認安裝在Windows 7以及Windows Server 2008 R2上的PowerShell的最新版本Windows遠程管理(WinRM)采用“單一管理平臺”架構進行集中式管理。(請注意:最新版的PowerShell現在已經支持Windows XP和Vista,可以從官方網站下載。)
盡管有些企業可能至少有三分之一的產品的功能可以使用PowerShell實現,但是多數產品需要安裝代理。但是,PowerShell是操作系統內置的而且是一種腳本語言,因此即使和其他產品相比,PowerShell也可能是一款功能強大的資產。
使用PowerShell進行桌面管理
整個管理控制的第一步是確保桌面在運行最新版本的PowerShell而且已經啟用了WinRM。
為啟用WinRM,需要以管理員身份在本地計算機的PowerShell提示符下執行如下命令:Enable-PSRemoting –force。
該命令將會開啟一個恰當的防火墻端口用于和中央管理工作站進行通信。工作站現在已經可以執行遠程PowerShell命令并進行查詢了。
除此之外,您應該以本地管理員身份輸入如下命令設置運行腳本的安全性:Set-ExecutionPolicy Unrestricted。
當然,取決于對安全性的要求,您可能會選擇一個不同的腳本執行安全級別,比如RemoteSigned.這一安全級別確保了在交互式會話中運行的所有腳本在執行時不會出錯。通過在PowerShell提示符下運行help Set-ExecutionPolicy –detailed命令可以更多的了解執行策略的設置及其更多的分支。
借助PowerShell遠程調用,中央工作站可以通過三種方法與遠程計算機進行通信。第一種方法允許查詢一個或多個計算機;另兩種方法更多的是一對一會話。"Invoke-Command"方式是最為常用的一種方法。"Interactive"方式與通過SSH或Telnet訪問遠程計算機類似,"Implicit"方式將遠程PowerShell會話引入到了集中會話當中。
使用內置的PowerShell cmdlets
最新版的PowerShell包括了30多種向工作站發送遠程命令的cmdlets。幾乎所有內置的cmdlets都能接受–ComputerName參數,向啟用WinRM的所有桌面發送遠程命令。
例如,Get-EventLog – Logname Application –EntryType Error –ComputerName mypc命令檢索包含來自計算機名為mypc的錯誤事件的應用事件日志記錄。您可以擴展–ComputerName參數以包含多臺計算機,比如–ComputerName mypc, suzipc, tompc。
您也可以使用PowerShell提供的腳本語言功能將參數轉變為動態變量。然后就可以運行成百上千個桌面的遠程命令了。
我經常使用的cmdlet是Get-Counter,該命令允許您近乎實時地查看遠程計算機的性能指標。將該命令應用于遠程桌面的擴展列表或者通過動態變量查看組織中所有計算機的計數器。試著在PowerShell提示符下輸入help get-counter –full命令查找當前環境下可用的語法。
另外,可以在遠程計算機上執行清單功能。對于軟件清單來說,可以使用Get-WMIObject cmdlet查詢所有已安裝.MSI軟件的WMI類。對于不是通過.MSI 安裝程序進行安裝的軟件,可以查詢所有軟件記錄的注冊表。微軟官方網站上的一篇TechNet文章是您構建軟件清單工具的一個很棒的資源。
對于硬件清單來說,您應該使用另一個WMI查詢指定硬件類。通過這篇PowerShellPro文章獲取該腳本,這個腳本我已經使用過幾次。
幫助編寫PowerShell腳本的免費工具
對于生活在腳本世界的管理員來說,使用命令行下的cmdlets是很自然的事兒。但是對于沒有太多命令行接口(CLI)經驗的管理員或者想避免非常長的“單行方式”的管理員來說—Quest軟件公司提供的免費工具PowerGUI可能會非常有幫助。
PowerGUI是PowerShell的前端圖形用戶界面。其最佳特性之一就是使用PowerPacks,PowerPacks由腳本專家所創建并編譯為單個文件。引入這些腳本后,PowerGUI將為您鍵入PowerShell命令。您可以在ScriptEditor中看到實際的腳本并使用這些腳本創建您自己的腳本。
一旦精通了用于遠程桌面的PowerShell環境而且在編寫腳本時變得自信,我推薦您看一下由Sapien開發的PrimalForms工具,可以使用該工具將您的腳本合并到圖形用戶界面當中。使用PrimalForms,您可以為您自己或者其他在命令提示符下感到不舒服的用戶放置一個圖形化前端。例如我創建的一個腳本的GUI前端已經成為了幫助桌面管理員的主要工具。可以在NTPRO.NL查看很棒的使用PrimalForms創建PowerShell GUI的例子。
網絡上有大量用于PowerShell以及PowerShell腳本的資源。在創建您自己的腳本前一定要把這些資源找出來。大多數情況下,已經有人寫了一個腳本恰好是您想要的,或者您可以找到能夠進行定制的腳本。
原文鏈接:http://www.searchvirtual.com.cn/showcontent_57380.htm