powershell讀書筆記

·What is PowerShell?

圖片發(fā)自簡(jiǎn)書App

? 提供了命令行界面的互動(dòng)式Shell環(huán)境和腳本語(yǔ)凡恍,以協(xié)助管理員執(zhí)行彈性化拂共、自動(dòng)化的工作圈驼。

·環(huán)境依賴基于

? .NET FrameWork

·PowerShell Cmdlets

? · Command lets [動(dòng)詞-名詞]

? · 用.NET語(yǔ)言所寫成的指令妆绞,每個(gè)Cmdlets只具單 任務(wù)裆熙,而Cmdlets與Cmdlets通過(guò)管道符鏈接結(jié)合就可以協(xié)作出復(fù)雜的功能工作

? · Get-Command 顯示可用的Cmdlets

? · CLI中的主要命令

? ? - Shell Function(CLI可用代碼)

? ? - Powershell Scripts(.ps1)

? ? - Native commands(.exe,.bat,etc.)

·Pipelines - 管道

? · 用于從一個(gè)Cmdlets向另一個(gè)Cmdlets傳遞數(shù)據(jù)

? · 提供了一個(gè)創(chuàng)建簡(jiǎn)單命令行代碼腳本的機(jī)制

? · 實(shí)現(xiàn)并發(fā)執(zhí)行

? · 為了便于閱讀,可以分為多行

·PowerShell中的操作技巧

? · Aliases 別稱

? ? - Cmdlet的縮寫或者昵稱

? ? - Transitional alias

? ? - 類似曾經(jīng)用過(guò)的命令- dir,copy,ls,cat

? ? - 可以自定義別稱方便使用

? · Convenience alias

? ? - Cmdlet的縮寫

? ? - get-command = gcm,get-wmiobject = gwmi

·PowerShell 中的腳本執(zhí)行

? ·使用Set-ExecutionPolicy更改

? ·改變PS的執(zhí)行策略

? ? - Restricted,默認(rèn)設(shè)置偎快,不允許運(yùn)行任何腳本

? ? - AllSigned,僅運(yùn)行受信任腳本

? ? - RemoteSigned洒放,運(yùn)行本地腳本,不管這些腳本是否受信任滨砍;

? ? ? 如果是從Internet下載的腳本往湿,則必須是受信任的腳本才能夠運(yùn)行。

? ? - Unrestricted,允許運(yùn)行所有腳本惋戏,甚至是不受信任的腳本

·DEMO

? ·自定義別稱领追、更改執(zhí)行策略

? ? set-Alias gps Get-process

? Get-Command [獲取當(dāng)前可以使用的所有cmdlet命令]

? Get-Process [獲取當(dāng)前系統(tǒng)所有的進(jìn)程]

? Get-Process | where ($_.CPU -gt 20)

? gps | sort cpu -Descending(使用管道鏈接并行執(zhí)行)

? demo.ps1 (使用腳本文件的方式執(zhí)行)

·PS中的變量定義、使用

? · 不需要定義或聲明數(shù)據(jù)類型

? · 在變量前加“$”

? · 定義變量的規(guī)則

? ? - 變量可以是數(shù)字 $618

? ? - 變量可以是字符串 $0xW

? ? - 變量可以是特殊字符${@0xW}

? · 內(nèi)置的變量

? ? - $pshome

? ? - $home

? ? - $profile

·強(qiáng)大的幫助系統(tǒng)

? · get-help响逢,help or ?

? · 可以使用通配符獲取選項(xiàng)列表

? ? -get-help get-*

? ? -get-help *service*

·DEMO

$var = 0618

$var = "silvers"

$var = "0xW"

$var1 = "_Silvers"

$var2 = "$var $var1"

$var3 = '$var $var1' (輸出結(jié)果為[$var $var1]''會(huì)被當(dāng)成字符串來(lái)處理)

Get-Date (獲取當(dāng)前系統(tǒng)的日期時(shí)間)

$data = Get-Date

$data.AddDays(5)(輸出結(jié)果為當(dāng)前時(shí)間后推5天)

Get-Help get-Command

Get-Help get-Command |more (逐行輸出)

Get-Help get-Command -detailed/full (全部的詳細(xì)信息)

Get-Help Get-Process -full

Get-Process | Sort-Object ws

? · 使用管道符鏈接命令的方式執(zhí)行

Get-Process |

sort ws |

fl (fl是format list命令的縮寫)

·屬性和方法

? · 使用get-member方法來(lái)獲取屬性和方法的詳細(xì)列表

? · $var = 618; $var | get-member

? ? $var = "silvers"; $var | get-member

? · 使用TAB鍵來(lái)選擇變量的屬性和方法

? ? 例:$var.[TAB]

·語(yǔ)法和操作

? · 引號(hào)的使用绒窑,單引號(hào)和雙引號(hào)的區(qū)別

? ? 單引號(hào)里的是字符串;雙引號(hào)里的是引用變量

? · 定向輸出舔亭。使用“>”符號(hào)定向輸出

? · 變量的注釋些膨。使用“#”符號(hào)編寫注釋

? · 優(yōu)先運(yùn)算符

? · 豐富的語(yǔ)法

? ? -eq;-ne;-gt;-ge;-lt;-le;-like;

? ? -notlike;-contains;-notcontains

? · 支持算術(shù)運(yùn)算符

? ? +;*;-;/;=;+=;-=;*=;/=;%=

? · 支持邏輯運(yùn)算符

? ? -and;-or;-xor;-not;-is;-isnot;-as

·變量和數(shù)據(jù)類型

? ·變量間的操作

? 變量之間可以進(jìn)行乘法

? ·變量的強(qiáng)制類型轉(zhuǎn)換

? ·Set-variable,new-variable,clear-variable和remove-rariable的使用

? 變量的聲明、創(chuàng)建钦铺、刪除订雾、清除等

? ·變量的4中模式:

? local,script,global,private

? 變量的作用域

·數(shù)組、安全矛洞、Whatif

? · 數(shù)組的定義及使用方法

? ? - $var = 1..10

? ? - $var +=12,43

? · 創(chuàng)建受信任的安全腳本

? 使用makecert.exe創(chuàng)建受信任的安全腳本

? · 使用-Whatif預(yù)覽執(zhí)行結(jié)果

·循環(huán)洼哎、判斷語(yǔ)句

? · 循環(huán)語(yǔ)句

? ? - Foreach/for

? ? - While

? ? - Do while

? ? - Do until

? · 判斷語(yǔ)句

? ? - If

? ? - switch

? · 循環(huán)控制語(yǔ)句

? ? - Break

? ? - continue

·循環(huán)語(yǔ)句

? · Foreach

? ? - 集合的操作

? ? - 每個(gè)對(duì)象都進(jìn)行操作

? ? - Foreach是foreach-object的昵稱

? ? - 使用foreach的同時(shí),我們已經(jīng)默認(rèn)定義了$n,$i兩個(gè)變量沼本,$n用與存放foreach運(yùn)行的次數(shù)噩峦,$i用于存放每次foreach運(yùn)行的結(jié)果

? · For

? ? - 與foreach相似

while,do while,do until,if,switch,break,continue

? · While

? ? 當(dāng)條件成立時(shí)抽兆,執(zhí)行操作

? · Do while

? ? - 操作至少執(zhí)行一次

? · Do until

? ? - 操作至少執(zhí)行一次

? ? - 當(dāng)條件不成立時(shí)识补,結(jié)束執(zhí)行

? · If/switch

? ? - If與else、elseif使用辫红。不需要then/end if

? ? - Switch與select case相似

? · Break:匹配時(shí)跳出循環(huán)

? ? continue:調(diào)回循環(huán)起始位置

·格式的限定

? · 使用format限定操作結(jié)果的顯示格式

? · Format的4種顯示格式

? ? - Format-list (fl)

? ? - Format-table(ft)

? ? - Format-wide (fw)

? ? - Format-custom(fc)

? · 在命令結(jié)尾使用 -format來(lái)限定結(jié)果的顯示格式

·文件的導(dǎo)出凭涂、函數(shù)的定義

? · 使用導(dǎo)出命令將結(jié)果導(dǎo)出至指定文件

? ? - 支持CSV

? ? - 支持XML

? ? - 支持HTML

? · 導(dǎo)入文件同樣被支持

? ? - 可以支持CSV文件導(dǎo)入

? ? - 可以支持XML文件導(dǎo)入

·錯(cuò)誤調(diào)試

? · 確定錯(cuò)誤

? ? - 使用$?測(cè)試命令執(zhí)行成功or失敗

? ? - 使用$erroractionpreference設(shè)置錯(cuò)誤執(zhí)行模式

? ? ? ·Continue

? ? ? ·Stop

? ? ? ·slientlycontinue

? · 解決錯(cuò)誤

? ? - Trap

? ? ? 調(diào)試特殊錯(cuò)誤

? ? ? 確定錯(cuò)誤響應(yīng)(continue、break)

? ? - -ea

? ? ? 定義當(dāng)錯(cuò)誤發(fā)生以后厉熟,如何繼續(xù)執(zhí)行

·腳本調(diào)試

? · 使用set-psdebug進(jìn)行調(diào)試

? ? - 激活set-psdebug功能

? ? - 控制追蹤等級(jí)

? ? - 腳本逐步執(zhí)行

·DEMO 演示

$ver = 123

$ver | get-member

get-process >d:\gps.txt

$var ="0xW" # This is String

$var *4

$var2 += $var*2

$var -like -like "xw" (False)

$var -notlike "xw"? (True)

$var1 = 10

function one{"the variabale is $var1"}

function two{$var1=20,one}

export-Clixml d:\demo.xml(導(dǎo)出)

import-Clixml d:\demo.xml (導(dǎo)入)

圖片發(fā)自簡(jiǎn)書App

=====以下來(lái)自網(wǎng)路博客為驗(yàn)證測(cè)試导盅,估計(jì)現(xiàn)在不這樣用了吧Windows powershell官方網(wǎng)站

·使用Makecert.exe創(chuàng)建信任腳本

· 使用Makecert命令創(chuàng)建信任證書

? makecert -n "CN=MyRoot" -a sha1-eku1.3.6.1.5.5.7.3.3 -r-sv root.pvk

? root.cer--ss Root -sr localMechine

· 創(chuàng)建信任證書

? makecert -pe-n "CN=MyCertificate"-ss MY -a sh1 -eku 1.3.6.1.5.5.7.3.3 -iv

? root.pvk -c root.cer

· 將存在的.ps1腳本進(jìn)行信任簽名

? Set-AuthenticodeSignature D:myscript ps1 $cert

·使用Makecert.exe創(chuàng)建信任腳本

· 核實(shí)此安裝過(guò)程:gci cert:\CurrentUser\my -codesigning

· 使用$cert = @(gci cert:\currentuser\my -codesigning)[0]檢索首次安裝的代碼簽名證書(如果安裝了多個(gè)證書并希望使用第一個(gè)意外的其他證書,只需將"0"改為相應(yīng)的數(shù)字即可)揍瑟。

· 使用Set-AuthenticodeSignature myscript.ps1 $cert簽名文件

· 打開(kāi)腳本文件觀察變化

·Makecert的參數(shù)

· 選項(xiàng) ·說(shuō)明

-n x509name? ? 指定主題的證書名稱白翻。此名稱必須符合x(chóng)_500標(biāo)準(zhǔn)。最簡(jiǎn)單的方法是在雙引號(hào)中指定此名稱,并加上前綴CN=滤馍;例如岛琼,"CN=myName".

-p? ? ? ? ? ? ? 將所生成的私鑰標(biāo)記為可導(dǎo)出。這樣可將私鑰包括在證書中巢株。

-sk keyname? ? 指定主題的密鑰容器位置槐瑞,該位置包含私鑰。如果密鑰容器不存在阁苞,系統(tǒng)將創(chuàng)建一個(gè)困檩。

-sr location? ? 指定主題的證書存儲(chǔ)位置。location可以是默認(rèn)值或者location

-ss store? ? ? 指定主題的證書存儲(chǔ)名稱那槽,輸出證書即存儲(chǔ)在那里悼沿。

-# number? ? ? 指定一個(gè)介于1和2,147骚灸,483糟趾,647之間的序列號(hào)。默認(rèn)值是由Makecert.exe生成的唯一值甚牲。

-$ authority? ? 指定證書的簽名權(quán)限义郑,必須設(shè)置為comanendal(對(duì)于商業(yè)軟件發(fā)行者使用的證書)或者imdivalhousal(對(duì)于個(gè)人軟件發(fā)行者使用的證書)。

-丈钙?? ? ? ? ? ? 顯示此工具的命令語(yǔ)法和基本選項(xiàng)列表

-非驮!? ? ? ? ? ? 顯示此工具的命令和擴(kuò)展選項(xiàng)列表。

·Makecert的參數(shù)(擴(kuò)展)

·選項(xiàng) ·說(shuō)明

-a algorithm 指定簽名算法著恩。必須是md5(默認(rèn)值)或sha1.

-b mm/dd/yy? ? ? ? ? ? 指定有效的開(kāi)始時(shí)間院尔。默認(rèn)為證書的創(chuàng)建日期。

-cy certType? ? ? ? ? ? 指定證書類型喉誊。有效值是end(對(duì)于最終實(shí)體)和authority(對(duì)于證書頒發(fā)機(jī)構(gòu))。

-d name? ? ? ? ? ? ? ? 顯示主題的名稱

-eku oid[,oid]? ? ? ? ? 將用逗號(hào)分割的增強(qiáng)性密鑰用法對(duì)象標(biāo)識(shí)符(OID)列表插入到證書中纵顾。

-h number? ? ? ? ? ? ? 指定此證書下面的樹(shù)的最大高度伍茄。

-ic file? ? ? ? ? ? ? ? 指定頒發(fā)者的密鑰容器名稱

-ik keyName? ? ? ? ? ? 指定頒發(fā)者的密鑰類型,必須是signalure,exchange或一個(gè)表示提供程序類型的整數(shù)施逾。默認(rèn)情況下敷矫,可傳入1表示交換密鑰,傳入2表示簽名密鑰汉额。

-in name? ? ? ? ? ? ? ? 指定頒發(fā)者的證書名稱曹仗。

·使用PowerShell管理IIS

· 前提:IIS xx PowerShell Provider

· 創(chuàng)建Web站點(diǎn)

? New-Item iis:\Sites\TestSite.bindings

? @{protocol="http";bindingInformation=".80:TestSite"} -physicalPath

? c:\test

· 創(chuàng)建Web應(yīng)用程序

? New-Item 'IIS:\Sites\Default Web Site\DemoApp'-physicalPath

? c:\test-type Application

·使用PowerShell管理IIS

· 改變、查看站點(diǎn)和應(yīng)用程序池狀態(tài)

? Stop-WebItem, Start-WebItem蠕搜、Get-WebItemState

· 回收應(yīng)用程序池

? - 請(qǐng)求默認(rèn)頁(yè)

? - 獲取進(jìn)程的ID(PID)

? - 回收應(yīng)用程序池?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末怎茫,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌轨蛤,老刑警劉巖蜜宪,帶你破解...
    沈念sama閱讀 211,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異祥山,居然都是意外死亡圃验,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門缝呕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)澳窑,“玉大人,你說(shuō)我怎么就攤上這事供常≌占瘢” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 157,435評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵话侧,是天一觀的道長(zhǎng)栗精。 經(jīng)常有香客問(wèn)我,道長(zhǎng)瞻鹏,這世上最難降的妖魔是什么悲立? 我笑而不...
    開(kāi)封第一講書人閱讀 56,509評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮新博,結(jié)果婚禮上薪夕,老公的妹妹穿的比我還像新娘。我一直安慰自己赫悄,他們只是感情好原献,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著埂淮,像睡著了一般姑隅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上倔撞,一...
    開(kāi)封第一講書人閱讀 49,837評(píng)論 1 290
  • 那天讲仰,我揣著相機(jī)與錄音,去河邊找鬼痪蝇。 笑死鄙陡,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的躏啰。 我是一名探鬼主播趁矾,決...
    沈念sama閱讀 38,987評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼给僵!你這毒婦竟也來(lái)了毫捣?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,730評(píng)論 0 267
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎培漏,沒(méi)想到半個(gè)月后溪厘,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,194評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡牌柄,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評(píng)論 2 327
  • 正文 我和宋清朗相戀三年畸悬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片珊佣。...
    茶點(diǎn)故事閱讀 38,664評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蹋宦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出咒锻,到底是詐尸還是另有隱情冷冗,我是刑警寧澤,帶...
    沈念sama閱讀 34,334評(píng)論 4 330
  • 正文 年R本政府宣布惑艇,位于F島的核電站蒿辙,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏滨巴。R本人自食惡果不足惜思灌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望恭取。 院中可真熱鬧泰偿,春花似錦、人聲如沸蜈垮。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,764評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)攒发。三九已至调塌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間晨继,已是汗流浹背烟阐。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,997評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留紊扬,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,389評(píng)論 2 360
  • 正文 我出身青樓唉擂,卻偏偏與公主長(zhǎng)得像餐屎,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子玩祟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • 《ijs》速成開(kāi)發(fā)手冊(cè)3.0 官方用戶交流:iApp開(kāi)發(fā)交流(1) 239547050iApp開(kāi)發(fā)交流(2) 10...
    葉染柒丶閱讀 5,094評(píng)論 0 7
  • 一腹缩、php可以做什么 php是一種可以在服務(wù)器端運(yùn)行的編程語(yǔ)言,可以運(yùn)行在Web服務(wù)器端。 php是一門后臺(tái)編程語(yǔ)...
    空谷悠閱讀 3,091評(píng)論 4 97
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理藏鹊,服務(wù)發(fā)現(xiàn)润讥,斷路器,智...
    卡卡羅2017閱讀 134,633評(píng)論 18 139
  • 一盘寡、數(shù)組 1楚殿、數(shù)組定義 數(shù)組就是一個(gè)鍵值對(duì)組成的語(yǔ)言結(jié)構(gòu),鍵類似于酒店的房間號(hào)竿痰,值類似于酒店房間里存儲(chǔ)的東西脆粥。 $...
    空谷悠閱讀 805評(píng)論 4 11
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法影涉,內(nèi)部類的語(yǔ)法变隔,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法蟹倾,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,598評(píng)論 18 399