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