您的位置: 首頁(yè) >產(chǎn)經(jīng) >

IT動(dòng)態(tài):IT之家學(xué)院 強(qiáng)大到?jīng)]朋友 Win10 PowerShell簡(jiǎn)介(1)

2022-04-19 17:24:02 編輯:鐘河瀾 來(lái)源:
導(dǎo)讀 5G已經(jīng)片區(qū)使用,很多小伙伴對(duì)通信這塊還不熟系!越來(lái)越多的人開(kāi)始對(duì)IT、5G信息方面產(chǎn)生興趣,近來(lái)IT之家學(xué)院 強(qiáng)大到?jīng)]朋友 Win10 Power

5G已經(jīng)片區(qū)使用,很多小伙伴對(duì)通信這塊還不熟系!越來(lái)越多的人開(kāi)始對(duì)IT、5G信息方面產(chǎn)生興趣,近來(lái)IT之家學(xué)院 強(qiáng)大到?jīng)]朋友 Win10 PowerShell簡(jiǎn)介(1)的話題也是引起了很多人的關(guān)注,那么既然現(xiàn)在大家都想要知道IT之家學(xué)院 強(qiáng)大到?jīng)]朋友 Win10 PowerShell簡(jiǎn)介(1),小編今天就來(lái)給大家針對(duì)IT之家學(xué)院 強(qiáng)大到?jīng)]朋友 Win10 PowerShell簡(jiǎn)介(1)做個(gè)詳細(xì)介紹。

感謝IT之家網(wǎng)友莫問(wèn)霜飛的原創(chuàng)投稿

從Windows10創(chuàng)意者更新開(kāi)始,PowerShell正式上位替換了命令提示符CMD。不論是Windows+X右鍵超級(jí)菜單,還是Shift+文件夾空白處右鍵,又或在文件資源管理器文件菜單中,都沒(méi)有命令提示符CMD的身影了,全部都由PowerShell取而代之了。長(zhǎng)期使用CMD的Windows系統(tǒng)管理員或Windows命令行極客恐怕一時(shí)不能適應(yīng),使用CMD都只能去開(kāi)始菜單-所有應(yīng)用-Windows系統(tǒng)-命令提示符打開(kāi)使用,藏得這么深,顯然是不想讓人用了啊。

圖1:PowerShell打開(kāi)方式

問(wèn)題來(lái)了,PowerShell這貨憑什么力壓CMD,強(qiáng)行上位?如果你之前試用過(guò)PowerShell,相信它一定沒(méi)有給你什么好印象。打開(kāi)慢!反應(yīng)慢!命令還陌生!還動(dòng)不動(dòng)就彈一大堆誰(shuí)都看不懂錯(cuò)誤,PowerShell究竟憑什么在Windows10創(chuàng)意者更新中替代命令提示符CMD呢?微軟腦抽了?

微軟沒(méi)有腦抽,PowerShell是憑借其強(qiáng)大的功能替換CMD的。這里要先說(shuō)明以下PowerShell究竟是什么東西,或者它究竟是不是東西?

Windows PowerShell不是東西,它是專為系統(tǒng)管理員設(shè)計(jì)的新Windows命令行shell,它包括交互式提示和腳本環(huán)境。PowerShell定義很多命令與操作系統(tǒng),特別是與文件系統(tǒng)交互,能夠啟動(dòng)應(yīng)用程序,甚至操縱應(yīng)用程序;PowerShell允許將幾個(gè)命令組合起來(lái)放到文件里執(zhí)行,實(shí)現(xiàn)文件級(jí)的重用,也就是說(shuō)有腳本的性質(zhì);PowerShell能夠充分利用.Net類型和COM對(duì)象,來(lái)簡(jiǎn)單地與各種系統(tǒng)交互,完成各種復(fù)雜的、自動(dòng)化的操作。

用人話說(shuō)就是CMD能做的PowerShell都能做,CMD不能做的Powershell也能做。就是這么自信!不信?趕緊打開(kāi)PowerShell把下面的命令復(fù)制進(jìn)去,看看它干了什么事,然后你用CMD做出來(lái)吧!

#createnewexcelinstance $objExcel=New-Object-comobjectExcel.Application $objExcel.Visible=$True $objWorkbook=$objExcel.Workbooks.Add() $objWorksheet=$objWorkbook.Worksheets.Item(1) #writeinformationtotheexcelfile $i=0 $first10=(ps|sortws-Descending|select-first10) $first10|foreach-Process{$i++;$objWorksheet.Cells.Item($i,1)=$_.name;$objWorksheet.Cells.Item($i,2)=$_.ws} $otherMem=(ps|measurews-s).Sum-($first10|measurews-s).Sum $objWorksheet.Cells.Item(11,1)="Others";$objWorksheet.Cells.Item(11,2)=$otherMem #drawthepiechart $objCharts=$objWorksheet.ChartObjects() $objChart=$objCharts.Add(0,0,500,300) $objChart.Chart.SetSourceData($objWorksheet.range("A1:B11"),2) $objChart.Chart.ChartType=70 $objChart.Chart.ApplyDataLabels(5)

圖2:使用PowerShell生成Excel圖表

上面一段代碼是PowerShell界常見(jiàn)的一段神代碼,很多初學(xué)者被其帶入了PowerShell的大門。有效代碼不過(guò)20來(lái)行,作用是把當(dāng)前系統(tǒng)中最占內(nèi)存的10個(gè)進(jìn)程的數(shù)據(jù)發(fā)送到Excel中,并繪制成三維餅圖。CMD是很難做到了,被替代也理所應(yīng)當(dāng)了。

PowerShell的定位是操作系統(tǒng)和應(yīng)用程序的管理工具,從這個(gè)角度看,它是CMD的升級(jí)版,并非簡(jiǎn)單的對(duì)CMD進(jìn)行擴(kuò)展,事實(shí)上微軟也不打算擴(kuò)展和升級(jí)CMD了,以后PowerShell將全方位的替代CMD,目前CMD和PowerShell還是并存狀態(tài)。

下面正式介紹PowerShell。

一、簡(jiǎn)單的命令

在CMD中,命令是從非常簡(jiǎn)單(如attrib.exe)到非常復(fù)雜(如netsh.exe)的可執(zhí)行程序,新入門用戶一旦遇到復(fù)雜命令,只能束手無(wú)策,只能求助搜索引擎,解決當(dāng)前需求之后,就把命令的用法拋諸腦后,下次使用又要重新學(xué)習(xí),極其不便。

圖3:復(fù)雜的netsh命令

PowerShell命令設(shè)計(jì)非常規(guī)范,它的命令由“動(dòng)詞”和“名詞”兩部分組成,比如“get”表示檢索數(shù)據(jù),“process”表示系統(tǒng)進(jìn)程,把“get”和“process”組合起來(lái)的PowerShell命令就是“get-process”,意思是獲取系統(tǒng)進(jìn)程列表,這種命令在PowerShell中稱為“cmdlet(讀作“command-let”)”。

圖4:使用get-process命令獲取系統(tǒng)進(jìn)程

像“get-process”這樣“動(dòng)詞-名詞”結(jié)構(gòu)有個(gè)好處,具有相同“名詞”的命令通常是一類命令,比如都擁有“process”的命令有:

圖5:擁有“process”的命令

使用“動(dòng)詞-名詞”結(jié)構(gòu)還有一個(gè)好處,就是不同的“動(dòng)詞”和“名詞”可以自由組合,很少的幾個(gè)“動(dòng)詞”和“名詞”就可以組合出大量的可用命令,使命令記憶量大為降低,只需記住簡(jiǎn)單的幾個(gè)詞語(yǔ),就可以使用大量的命令,這是包括命令提示符CMD在內(nèi)的Shell不具備的,并且不會(huì)產(chǎn)生歧義,對(duì)新用戶非常友好。

二、別名系統(tǒng)

“動(dòng)詞-名詞”結(jié)構(gòu)的cmdlet固然對(duì)新手友好,但也帶來(lái)了另一個(gè)問(wèn)題,命令名稱過(guò)長(zhǎng),在命令行交互使用時(shí)不方便,在命令行窗口輸入命令可以使用Tab鍵進(jìn)行補(bǔ)全,可是經(jīng)常使用還是需要鍵入大量的內(nèi)容,要是能夠把命令縮短一些就好了。PowerShell在設(shè)計(jì)時(shí)已經(jīng)考慮到了,為此創(chuàng)建了別名系統(tǒng),之所以叫名別系統(tǒng),是因?yàn)镻owerShell中的別名非常強(qiáng)大,能夠非常方便的對(duì)別名進(jìn)行增加、刪除、修改,還為之創(chuàng)建了別名驅(qū)動(dòng)器,可以像訪問(wèn)文件系統(tǒng)驅(qū)動(dòng)器一樣方便的訪問(wèn)別名驅(qū)動(dòng)器。

PowerShell非常貼心的為用戶創(chuàng)建了大量?jī)?nèi)置別名,一方面減少了常用命令的輸入長(zhǎng)度,另一方面也為熟悉其它Shell而不熟悉PowerShell的用戶提供了方便,常見(jiàn)Shell如bash、cmd,PowerShell都為用戶提供了他們熟悉的別名。下面是可以在Powershell中使用的通用的Cmd.exe和UNIX命令的簡(jiǎn)短列表。

圖6:PowerShell兼容性別名列表

PowerShell除了自帶別名外,用戶自己也可以創(chuàng)建別名,不僅僅可以為cmdlet創(chuàng)建別名,也可以為PowerShell函數(shù)、帶參數(shù)的命令和包含完整路徑的命令行程序創(chuàng)建別名。

比如為記事本創(chuàng)建別名,可以使用如下命令:

New-Aliasnpc:\windows\notepad.exe

創(chuàng)建別名完成后,在命令行中輸入np就能直接打開(kāi)記事本。在命令行中創(chuàng)建的別名只能在當(dāng)前命令行窗口中使用,如果想以后也能使用此別名,可以把以上命令保存在PowerShell配置文件中,以后無(wú)論是在命令行中,還是使用腳本,都可以在本機(jī)使用np別名了。PowrShell配置文件位置可以使用$profile命令查詢。

想查看當(dāng)前命令行窗口可以使用的別名,可以進(jìn)入別名驅(qū)動(dòng)器查看,使用dir alias:就能查看所有能用的別名,也可以使用get-alias命令查看別名。

圖7:查看PowerShell別名驅(qū)動(dòng)器

三、管理任務(wù)

Windows PowerShell的基本目標(biāo)是使用戶能夠以交互方式或通過(guò)腳本更好、更容易地對(duì)系統(tǒng)進(jìn)行管理控制,為了達(dá)成這個(gè)目標(biāo),PowerShell提供了大量命令來(lái)執(zhí)行各種管理任務(wù),讓用戶輕松完成管理系統(tǒng)任務(wù)。

1、管理進(jìn)程

前面已經(jīng)提過(guò)管理系統(tǒng)進(jìn)程的命令,管理進(jìn)程常用命令就是get-process命令和stop-process命令,get-process命令獲取進(jìn)程之后可以直接用管道發(fā)送給stop-process命令結(jié)束進(jìn)程。比如,關(guān)閉之前打開(kāi)的記事本,可以使用下面的命令很方便的關(guān)閉記事本。

get-process -Name notepad | stop-process

2、處理文件和文件夾

PowerShell使用Get-ChildItem獲取文件夾中直接包含的所有項(xiàng),它有系統(tǒng)內(nèi)置別名dir和ls,使用CMD和BASH的用戶均可以輕松上手。如果想查看C:中的文件夾和文件,直接使用dir c:,PowerShell立刻就會(huì)列出C:中的文件和文件夾。其它處理文件和文件夾的命令有Copy-Item、New-Item、Remove-Item等,具體用法可以使用get-help然后跟命令名稱即可查詢。

3、處理系統(tǒng)服務(wù)

可以像管理進(jìn)程一樣管理系統(tǒng)服務(wù),Get-Service命令獲取服務(wù)列表,Stop-Service命令停止服務(wù),Start-Service命令啟動(dòng)服務(wù),Suspend-Service命令掛起服務(wù),Restart-Service命令重啟服務(wù),Set-Service服務(wù)設(shè)置服務(wù)屬性。如果想一次性啟動(dòng)已經(jīng)停止的服務(wù),可以使用以下命令:

get-service | where-object {$_.Status -eq "Stopped"} -exclude

wisvc | start-service

這行命名會(huì)把除wisvc之外的命令都啟動(dòng),這只是一個(gè)示例,不要在自己電腦使用,啟動(dòng)所有服務(wù)會(huì)消耗大量系統(tǒng)資源。

4、處理注冊(cè)表

PowerShell可以非常方便的處理注冊(cè)表項(xiàng)目,與進(jìn)程和服務(wù)不同的是,PowerShell并未提供專用的注冊(cè)表命令,而是使用處理文件和文件夾的命令,這并不奇怪,PowerShell為用戶提供了注冊(cè)表驅(qū)動(dòng)器,可以很好的處理注冊(cè)表項(xiàng)目。由于注冊(cè)表對(duì)系統(tǒng)非常重要,錯(cuò)誤處理注冊(cè)表也許會(huì)導(dǎo)致系統(tǒng)出問(wèn)題,處理注冊(cè)表,特別是刪除注冊(cè)表項(xiàng)目要非常小心,最好能在處理注冊(cè)表項(xiàng)目之前先備份要處理的項(xiàng)目。沒(méi)有管理員權(quán)限也能處理部分注冊(cè)表項(xiàng)目,這與regedit注冊(cè)表編輯器不同,注冊(cè)表編輯器必須使用管理員權(quán)限打開(kāi),然后才能操作項(xiàng)目。

圖8:無(wú)管理員權(quán)限訪問(wèn)HKLM:驅(qū)動(dòng)器

下面的表格列出了訪問(wèn)注冊(cè)表所需的所有命令。

圖9:處理注冊(cè)表的命令與預(yù)定義的注冊(cè)表驅(qū)動(dòng)器

PowerShell只提供了兩個(gè)注冊(cè)表驅(qū)動(dòng)器HKCU:和HKLM:,其中HKLM:是HKEY_LOCAL_MACHINE的縮寫(xiě),HKCU:是HKEY_CURRENT_USER的縮寫(xiě),如果想要訪問(wèn)所有注冊(cè)表驅(qū)動(dòng)器,可以進(jìn)入Microsoft.PowerShell.Core\Registry::。

5、處理其它任務(wù)

PowerShell還可以處理證書(shū)、防火墻、appx應(yīng)用、打印機(jī)等任務(wù),篇幅所限,不具體舉例。大家可以使用get-command命令查找相關(guān)命令。


免責(zé)聲明:本文由用戶上傳,如有侵權(quán)請(qǐng)聯(lián)系刪除!

最新文章

精彩推薦

圖文推薦

點(diǎn)擊排行

2016-2022 All Rights Reserved.平安財(cái)經(jīng)網(wǎng).復(fù)制必究 聯(lián)系QQ280 715 8082   備案號(hào):閩ICP備19027007號(hào)-6

本站除標(biāo)明“本站原創(chuàng)”外所有信息均轉(zhuǎn)載自互聯(lián)網(wǎng) 版權(quán)歸原作者所有。