PowerShell是全稱Windows Power Shell,是Windows系統中提供的一款命令行腳本工具,軟件可以執行腳本語言來來實現各種操作,包括下載安裝軟件、修改配置等等。由于PowerShell只有在win10系統中內置使用,因此很多使用win7系統的用戶都無法使用。為此KK小編今天給大家分享PowerShell客戶端下載,需要使用PowerShell命令行腳本的朋友可以下載使用哦!
PowerShell客戶端功能介紹
更加遠程處理。
PowerShellRemote已逐漸成為管理網絡通訊的主要渠道。GUI管理控制臺越來越依賴于遠程,所以增強PowerShell遠程對于微軟來說非常重要。您現在可以斷開遠程會話,并且可以在以后從同一計算機上重新連接到同一個會話。如果客戶機機器崩潰,那么v3的社區技術預覽版本就無法中斷會話。取而代之的是永久的關閉。因此,這與遠程桌面是完全不同的,它可以配置和打開客戶端崩潰的會話。
工作流
實際上,PowerShell的新工作流構建可以寫一些類似于功能的東西,可以使用PowerShell轉換命令和腳本代碼進入Windows工作流技術WWF過程。WWF可以管理整個任務,包括修復網絡故障和重新啟動計算機等等。對長時間運行的、復雜的、多步的任務進行編排更為有效、可靠。若此功能與SystemCenterOrchestrator的下一版本集成。
可以更新的幫助。
PowerShell解決了幫助文件中的錯誤。微軟的操作系統補丁需要發布。建立在TechNet網站上的在線幫助可以緩解這一問題,但是微不足道。通過v3,可以根據需要更新幫助文件,新的XML文件可以從任何微軟服務器下載。因此微軟可以基于發現的問題進行錯誤修正,而無需使用操作系統包和補丁。
已確定的任務(ScheduledJob)
owerShellv2引入了job,遵循著job隨時間擴展的理念。對于v3,新的job是指scheduledjob,可以創建并按計劃運行,或對應的一個事件。Windows的TaskScheduler和Windows的TaskScheduler之間有一小部分不同,盡管最終用戶可以從PowerShell獲得該功能。
更好的發現
對于命令行shell,一大難點是如何使用。PowerShell的幫助系統非常有用,它要求提供用戶想要知道的命令的名稱,提供命令所在的插件名稱,并且記住將附件裝入內存。搜索命令時,PowerShellv3包括所有安裝模塊的所有命令,shell將運行不加載的命令。只有這些模塊存儲在PSModulePath環境變量中的文件路徑中,才能使用此方法。若要包括其他路徑,您可以隨時修改該變量。
附加特性:CIM。
PowerShell在Windows管理規范中起到了良好的作用,WMI是微軟的一種技術,或多或少都基于標準的通用信息模塊CIM。在PowerShellv3中,WMIcmdlet發揮余熱,并加入新的CIMcmdlet集合。這些特性似乎有重疊:CIMcmdlet使用WS-MAN,該協議與PowerShell的Remoting功能一起使用,這是微軟管理功能的新標準。WMI使用的DCOM正式被微軟否決了,意味著不再開發新功能,但是可以一直使用。CIM是未來的發展方向,不僅增加了已知WMI的開發,而且在將來可以跨平臺進行管理。
PowerShell客戶端軟件特色
您可輕易發現 Windows Powershell 的功能。例如,若要查找用于查看和更改Windows 服務的cmdlet 列表,執行:開始->運行->cmd,在命令行下輸入 PowerShell 進入 windows PowerShell,再輸入如下命令:
get-command *-service
在發現可完成任務的 cmdlet 之后,可以使用 Get-Help cmdlet 了解有關該 cmdlet 的詳細信息。例如,若要顯示有關 Get-Service cmdlet 的幫助,請鍵入:
get-help get-service
若要充分理解該 cmdlet 的輸出,則可通過管道將其輸出傳遞給 Get-Member cmdlet。例如,以下命令將通過 Get-Service cmdlet 顯示有關該對象輸出的成員的信息。
get-service | get-member
一致性
管理系統可能是一項復雜的任務,而具有統一接口的工具將有助于控制其固有的復雜性。然而,無論是命令行工具還是可編寫腳本的 COM 對象,在一致性方面都乏善可陳。
Windows PowerShell 的一致性是其主要優點中的一項。例如,如果您學會了如何使用 Sort-Object cmdlet,則可利用這一知識對任何 cmdlet 的輸出進行排序。而無需了解每個 cmdlet 的不同的排序例程。
此外,cmdlet 開發人員也不必為其 cmdlet 設計排序功能。Windows PowerShell 為他們提供了框架,而該框架可提供基本的功能,并強制他們在接口的許多方面保持一致。該框架雖然消除了通常會留給開發人員的某些選項,但作為回報,開發強健、易于使用的 cmdlet 的工作將更加簡單。
交互式腳本環境
Windows PowerShell 將交互式環境和腳本環境組合在一起,從而允許您訪問命令行工具和 COM 對象,同時還可利用 .net framework 類庫 (FCL) 的強大功能。
此環境對 Windows命令提示符進行了改進,后者提供了帶有多種命令行工具的交互式環境。此外,還對 Windows Script Host (WSH)腳本進行了改進,后者允許您使用多種命令行工具和 COM 自動對象,但未提供交互式環境。
通過將對所有這些功能的訪問組合在一起,Windows PowerShell 擴展了交互用戶和腳本編寫者的能力,從而更易于進行系統管理。
面向對象
盡管您可以通過以文本方式鍵入命令與 Windows PowerShell 進行交互,但 Windows PowerShell 是基于對象的,而不是基于文本的。命令的輸出即為對象。可以將輸出對象發送給另一條命令以作為其輸入。因此,Windows PowerShell 為未曾使用過其他外殼程序的人員提供了熟悉的界面,同時引入了新的、功能強大的命令行范例。通過允許發送對象(而不是文本),它擴展了在命令之間發送數據的概念。
易于過渡到腳本
使用 Windows PowerShell,您可以很方便地從以交互方式鍵入命令過渡到創建和運行腳本。您可以在 Windows PowerShell命令提示符下鍵入命令以找到可執行任務的命令。隨后,可將這些命令保存到腳本或歷史記錄中,然后將其復制到文件中以用作腳本。
識別你即將使用的Provider 通過識別PowerShell里安裝的Provider,你就可以了解默認安裝下PowerShell提供了那些能力。 Provider可以使用一種簡單的訪問方式,暴露位于不同儲存位置的數據。就像是瀏覽不同磁盤上的目錄結構一樣簡單。 Provider把不同的信息存放位置,表示成“驅動器”-目錄這種結構,這樣很容易被用戶所理解。就像我們要訪問一個位于D盤的WIN32目錄下的SETUP.exe文件,我們要通過瀏覽器,單擊D盤的圖標,然后選擇WIN32目錄并雙擊一樣,如果我們要訪問位于“注冊表”的數據,那么我們也只需要簡單地通過Set-Location命令,來到到“REGISTRY”這個“驅動器”,然后用GET-CHILDITEM命令獲取其子數據就行了。
注:實際上,PowerShell訪問磁盤驅動器,也是通過Provider的,切換驅動器其實和切換其他數據容器是一樣地操作。 例如: Set-Location d:\ 這是切換驅動器 Set-Location HKLM:\ 這是切換到注冊表的HKLM鍵 另外,Get-PSprovider命令,可以查看當前已經安裝的所有PROVIDER。任何熟悉.NET編程的人,都可以編寫Provider。當新的provider被安裝后,就叫做snap-in。snap-in其實是一個動態連接庫dll文件,可以被安裝到powershell中。然而,當一個snap-in安裝后,卻沒有辦法卸載。 Get-PSProvider: Name Capabilities Drives ---- ------------ ------ Alias ShouldProcess {Alias} Environment ShouldProcess {Env} FileSystem Filter, ShouldProcess {C, D, F, A...} Function ShouldProcess {Function} Registry ShouldProcess {HKLM, HKCU} Variable ShouldProcess {Variable} Certificate ShouldProcess {cert} 這些就是我機器上的默認安裝后的provider。
使用Set-Location和Get-ChildItem瀏覽數據 Set-Location用于改變當前目錄,以及選擇當前的provider,而Get-ChildItem用于獲取當前目錄或者指定目錄下的子對象: 例子: set-location hkcu:\software get-childitem 例子2: GCI -path HKLM:\software
有兩種連接WMI服務的方法:l 使用Get-WmiObject可以很容易地連接到WMI服務,并且獲取WMI對象。 l 使用一個COM對象,“WbemScripting.SWbemLocator”,可以連接WMI的服務。SWbemLocator對象只有一個方法,就是ConnectServer()。該方法接受5個參數:用戶名,密碼,語言代碼,驗證方法(Kerberos, NTLM等),標志(超時值)。
下例中,我們使用New-Object命令,創建了一個“WbemScripting.SWbemLocator”的實例。然后用這個實例的ConnectServer方法連接了到了一個WMI的名字空間(root\cimv2),ConnectServer方法返回了一個WMIService對象,接著又用這個對象的subClassesOf()方法,返回了一系列WMI的CLASS: $strComputer = "." $wmiNS = "\root\cimv2" $strUsr ="" #Blank for current security. Domain\Username $strPWD = "" #Blank for current security. $strLocl = "MS_409" #US English. Can leave blank for current language $strAuth = "" #if specify domain in strUsr this must be blank $iFlag = "0" #only two values allowed: 0 and 128. $objLocator = New-Object -comobject "WbemScripting.SWbemLocator" $objWMIService = $objLocator.ConnectServer($strComputer, ` $wmiNS, $strUsr, $strPWD, $strLocl, $strAuth, $iFLag) $colItems = $objWMIService.subClassesOf() Write-Host "There are: " $colItems.count " classes in $wmiNS" foreach ($objItem In $colItems) { $objItem.path_.class }