[PowerShell]人人都值得学一点PowerShell实现自动化(2)有哪些可用的场景及方式?
部分讀者反應太多知識要學了,學完一輪又一輪,筆者也不想單單為了制造學習而學習,所有Excel催化劑所發布的內容,都是筆者所親自使用到的,當然很多領域也沒有深挖到很底的程度。
PowerShell使用場景
雖然說PowerShell也是在dotNET體系內,凡是dotNET語言可以完成的,它也幾乎可以同樣完成,但完成的代價可能不一,有些部分可能沒有使用其他語言如C#等語言來得方便好用。
詳細的PowerShell優勢可以參考下文所述。
在Windows系統運維人員中使用面廣
《PowerShell實戰指南》一書,是面向運維人員的角度而寫,如果想更深入地去了解,不妨看看。
例如一個系統管理員,需要管理幾百臺電腦,對他們安裝補丁、軟件等操作,可以用PowerShell直接自動化腳本完成,它擅長遠程訪問控制其他電腦。
同樣地,因為PowerShell是跨平臺的語言工具,在MAC和Linux上也可以使用,具體能否在這些系統上做運維就不得而知了。
在熟悉DOS命令的群體中,使用PowerShell可以完美替代CMD命令行工具,并且功能更強大,而很多命令也可以復用,無需重新學習,如dir/cd/config等經典的命令。
對其他微軟系產品的自動化管理
同樣地筆者非運維人員,在這一塊也沒有太深入了解,據筆者所知,使用PowerShell可以管理微軟系絕大部分的產品如Exchange、SharePoint、Sqlserver、OFFICE365,而筆者主要的使用場景,目前為止,只有Azure的資源的運維管理。
因為Azure是微軟的未來,所以作為認真追隨微軟的人來說,沒有理由會不跟上去先學習一下PowerShell,為了日后更好地運維Azure的資源。
Azure上使用PowerShell真實場景
分享一點點筆者真實的項目應用,使用PowerShell對Azure的Azure SQL和Azure AS的資源開關升降自動化。
因筆者使用了Azure SQL和Azure AS兩項服務,用于PowerBI的項目中,通過資源的開關升降操作,可以為企業節省出不少的Azure消耗費用,非常有實際推廣價格。
我們Azure SQL僅用于數據倉庫存儲數據的作用,更準確地說只是為了給Azure AS分析服務提供更新多維數據模型時的數據源作用,所以整個使用時段是非常短的。
我們只需在數據ETL的時候,將Azure SQL的定價層性能調高,讓舊數據刪除與新數據插入性能更高,再就是數據ETL結束后Azure AS分析服務需要讀取Azure SQL數據源時,讀取的性能更高。這兩個環節需要使用,其他時候可以關閉(Azure SQL不能關閉,只能降低到最低一層,最低層非常廉價,98元一個月全開,相當于關閉差不多。)
同樣地在Azure AS分析服務供用戶查詢報表時使用,提供底層的計算能力,也因為用戶只會在上班時間才有必要開通此服務,在節假日和下班時間,可以關閉。在上班時間,可能一個星期也只有某一段時間段才會有大量的用戶同時訪問報表,其他時段使用的人很少,這樣也給我們很大的優化空間,忙時將定價層性能調主,閑時調低。
最后我們開發一個手動接口,讓手動臨時需要更改資源的狀態可以實現,綜合上述所述的場景,最終用PowerShell來控制Azure的資源,也是非常容易的事情,只需簡單了解下PowerShell的語法和照著官方示例小改一下即可完成。
PowerShell的使用方式
當寫好了PowerShell腳本后,我們想執行它或使用任務調試的方式來完成固定周期的自動執行步驟,筆者暫時發現的方法用如下幾種。
直接PowerShell ISE上執行
使用PowerShell ISE,打開保存的腳本文件,直接在上面執行即可。
使用CMD或PowerShell控制臺執行
可以在控制臺上引用文件路徑,也可以執行PowerShell腳本。
使用批處理的方式執行
可以用CMD執行,當然也可以將其封裝成bat批處理任務,雙擊即可完成執行。
使用任務計劃的方式定時執行
我們更想要的真正自動化執行是定時給我們去執行代碼,用Windows的任務計劃就可以非常簡單地完成定時任務。
因為PowerShell.exe的所在文件夾已經有環境變量了,所以直接給出程序名就可以。當然全路徑也是可以的。
添加參數的位置加上PowerShell腳本的路徑即可,這里前面加了個運行策略參數,Bypass是什么警告都不通知,比較順暢運行,也可以不加。
完整的參數是:-ExecutionPolicy Bypass E:\test.ps1
使用Sqlserver代理作業去運行
這種方式也是筆者在項目實際中所使用的,代理的方式,更好用一些,可以同時執行多個步驟,例如執行完PowerShell腳本后,下一步再執行其他任務。
當然這里可以直接寫腳本內容,引用腳本文件也可以,記得加個英文句號在前面。
其他語言調用
據筆者所知,在dotNET語言可以輕松調用PowerShell腳本,至于如何實現,筆者沒有深入研究過,有興趣的可以自行google一下。
在其他語言中調用PowerShell功能,也是非常有優勢的,可以實現強強聯合,也是像筆者這樣的業余人員所鐘愛的。
結語
此篇簡單給大家分享了一些PowerShell的應用場景和其對應的實現方式,對于特定的場景來說,PowerShell還是非常有優勢的,并且學習成本真心不高,非常值得推薦使用。
下一篇給大家介紹一點PowerShell的輪子世界,可以怎樣復用現有輪子加快我們的功能實現,歡迎繼續關注。
筆者未來聚焦在數據領域的分享,不限于Excel,會分享更多Sqlserver、dotNET、Azure、PowerBI等話題,升級數據分析的能力,歡迎繼續關注。*
關于Excel催化劑
Excel催化劑先是一微信公眾號的名稱,后來順其名稱,正式推出了Excel插件,插件將持續性地更新,更新的周期視本人的時間而定爭取一周能夠上線一個大功能模塊。Excel催化劑插件承諾個人用戶永久性免費使用!
Excel催化劑插件使用最新的布署技術,實現一次安裝,日后所有更新自動更新完成,無需重復關注更新動態,手動下載安裝包重新安裝,只需一次安裝即可隨時保持最新版本!
Excel催化劑插件下載鏈接:https://pan.baidu.com/s/1Iz2_NZJ8v7C9eqhNjdnP3Q
聯系作者公眾號取名催化劑,因Excel本身的強大,并非所有人能夠立馬享受到,大部分人還是在被Excel軟件所虐的階段,就是頭腦里很清晰想達到的效果,而且高手們也已經實現出來,就是自己怎么弄都弄不出來,或者更糟的是還不知道Excel能夠做什么而停留在不斷地重復、機械、手工地在做著數據,耗費著無數的青春年華歲月。所以催生了是否可以作為一種媒介,讓廣大的Excel用戶們可以瞬間點燃Excel的爆點,無需苦苦地掙扎地沒日沒夜的技巧學習、高級復雜函數的燒腦,最終走向了從入門到放棄的道路。
最后Excel功能強大,其實還需樹立一個觀點,不是所有事情都要交給Excel去完成,也不是所有事情Excel都是十分勝任的,外面的世界仍然是一個廣闊的世界,Excel只是其中一枚耀眼的明星,還有其他更多同樣精彩強大的技術、工具等。*Excel催化劑也將借力這些其他技術,讓Excel能夠發揮更強大的爆發!
關于Excel催化劑作者
姓名:李偉堅,從事數據分析工作多年(BI方向),一名同樣在路上的學習者。
技術路線從一名普通用戶,通過Excel軟件的學習,從此走向數據世界,非科班IT專業人士。
擅長技術領域:Excel等Office家族軟件、VBA&VSTO的二次開發、Sqlserver數據庫技術、Sqlserver的商業智能BI技術、Powerbi技術、云服務器布署技術等等。
2018年開始職業生涯作了重大調整,從原來的正職工作,轉為自由職業者,暫無固定收入,暫對前面道路不太明朗,苦重新回到正職工作,對Excel催化劑的運營和開發必定受到很大的影響(正職工作時間內不可能維護也不可能隨便把工作時間內的成果公布于外,工作外的時間也十分有限,因已而立之年,家庭責任重大)。
和廣大擁護者一同期盼:Excel催化劑一直能運行下去,我所惠及的群體們能夠給予支持(多留言鼓勵下、轉發下朋友圈推薦、小額打賞下和最重點的可以和所在公司及同行推薦推薦,讓我的技術可以在貴司發揮價值,實現雙贏(初步設想可以數據顧問的方式或一些小型項目開發的方式合作)。
總結
以上是生活随笔為你收集整理的[PowerShell]人人都值得学一点PowerShell实现自动化(2)有哪些可用的场景及方式?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .NET Core 小程序开发零基础系列
- 下一篇: [PowerShell]人人都值得学一点