1. 程式人生 > >讀書筆記-PowerShell實戰指南(第三版)

讀書筆記-PowerShell實戰指南(第三版)

第三版和第二版的不同


在第三版中增加了很多實用的技巧和經驗,比第二版的層次更加的豐富,增加了很多不容易注意到的知識點,這些知識點掌握了之後,可以很好的避免在實際的應用中踩坑。


關於本書的介紹請參考


http://www.pstips.net/learn-powershell-3-in-a-month-of-lunches.html


關於PowerShell與cmd有何不同


https://www.zhihu.com/question/22611859


個人備註:


Powershell是一個面向物件的指令碼編寫工具,在powershell中,輸出的內容均為物件,可以去呼叫它的屬性和方法,也可以使用PS自己寫function(函式),Powershell是一個高階的指令碼編寫語言,底層已經封裝好了大量可用的cmdlet和函式、類。可以在powershell中使用WMI、呼叫C#介面、呼叫cmd命令、輸出xml、json等等。未來微軟幾乎所有主流的伺服器產品都將基於powershell去做遠端或者本地的管理。目前powershell已經有對應的開源版本powershell core,可以去管理Linux平臺。powershell是Windows平臺進行自動化運維和配置管理的首選工具。


Get-wmiobject與get-ciminstance的優缺點


傳統的WMI方式去管理作業系統,面臨的問題是:語法複雜、難以理解、引數難以查詢。當WMI需要去管理多個遠端的作業系統時,有兩個弊端:

1)需要使用RPC進行通訊,而不是基於HTTPS;

2)遠端執行是序列的,也就是說需要一臺臺去執行操作,效率低下;

使用CIM的方式,優點是:

1)採用WS-MAN協議;

2)遠端執行是並行的,可以用於分散式計算,並行執行完成後,返回結果;

CIM的弊端在於不支援比較老的早期的作業系統版本和PowerShell版本。


關於PowerShell命令別名


不建議在交付的指令碼或者程式碼中頻繁使用別名,因為可讀性較低,難以理解。


write-host和write-output的區別


簡單來說,write-host是繞過了powershell的預設管道輸出機制,直接把要輸出的資訊列印到了螢幕上;而write-output則是通過powershell預設的管道將輸出列印到螢幕上。這就解釋了為什麼在powershell studio圖形化程式設計中,可以把write-output的輸出進一步輸出到richtextbox中,而write-host不行。不行的原因是write-host直接輸出到螢幕的內容程式是無法捕獲的。


關於powershell的隱式遠端處理


其實說白了利用的還是會話建立遠端管道,然後通過遠端管道在目標計算機上匯入對應的管理模組。好處是指令碼或者工具在執行的時候無需安裝對應的模組或管理工具,因為命令是通過遠端會話傳輸到目標伺服器上執行的,本地只是一個反序列化以後的結果而已。弊端是反序列化之後的輸出沒有屬性和方法可供繼續呼叫。

此次閱讀的是Powershell實戰指南的第三版,之前閱讀第二版的時候,針對前七章做了思維導圖,需要的可移步到:

連結: https://pan.baidu.com/s/1HiX8u4eZSsuwnct0NBXHJQ 提取碼: gzue


更多資訊請關注下方微信公眾號:

qrcode_for_gh_7159fb337d37_258.jpg