從2007用到現在,歷經1.0 CTP3 2.0 WinRM
輕易的整合C#/F#的優點,如果平時開發的時候重視模組化,只能說從你第一個做出來的模組會不斷的使用到永遠XD所以開發快速且可以輕易使用非常多的API以及函式庫!
無敵的PIPELINE:透過%和?(FOREACH-OBJECT / WHERE)可以用極短的code把任務處理完成,簡潔有力。
iex(invoke-expression)可以輕易達到許多泛形/樣板的效果。
transact交易處理,方便資料庫或檔案系統的處理。
batch背景執行:用於控制數千台的grid節點再方便不過
簡便的winform或者WPF開發:不需要compile也可以用簡短的code寫出漂亮的視窗程式
PowershellASP:可以透過IIS建立非常複雜的web service,用在自動化(automation)或者智慧型代理人web app都非常方便
vSphere ESX等自動化管理:包含流程自動化/異狀自動偵測
太多了!!!
歡迎切磋~~~~
有相關連結可供參考的嗎??基本上,這大都使用在那裡啊??不好意思,因為我對這東西沒有什麼概念~~
klm2242提到:
基本上,這大都使用在那裡啊??不好意思,因為我對這東西沒有什麼概念~~
用在系統管理上....
其實管過 Unix 的人, 就會知道這東西的好用. 因為有很多管理上的需要, 系統沒有提供相對應的指令, 只能靠人工一件一件去執行, 不但非常沒有效率, 對於重複性的工作也容易出錯.
所以, 在 Unix 時代, 就已經有 Shell 的指令, 可以讓管理者自己寫簡單的程式, 用於管理事務的自動化.
這個觀念雖然從 CP/M 一直延伸到 DOS, 但是卻沒有把整個 Unix Shell 的強大功能也一併移植過來, 僅提供了不到千分之一的能力, 使得不論是 DOS 或是後來的 Windows, 在管理自動化方面, 都輸 Unix 一大截.
現在 PowerShell 就是要補足這個斷層.
就是可以讓命令串接命令,自動完成某些事情,不需要在GUI上一個一個點擊。
比如說新增、設定帳號,一個人使用GUI沒問題,十個人,有點累,百人、千人、萬人等著改,難道要加班嗎?
又比如說每個月都要寫File Server的容量報告使用情況,難不成你是一個資料夾,一個資料夾的翻有沒有違規的檔案,然後再把總容量及目前使用容量抄下來用WORD打一個美美的報告呈出去嗎?
把命令串一串做報表,時間到自動發信件出去不是樂的輕鬆嗎?
一堆例子可以告訴你,那個是拿來讓你把生命留給家人,不是無腦的拿去燒掉用的。
話說SERVER上管過Unix的寧願搬出cygwin之類的東西用,PowerShell還是弱了點,而且人老了學新的東西也慢了,還要浪費之前寫的程序很可惜,再說相似的功能何必學兩套浪費生命呢,而且還是要多學不夠強壯的那一套。
在windows上大多數的軟體以GUI為基礎開發,導致在命令模式下參數跟屁一樣,就算PowerShell補了一點點功能上去,很多命令還是不存在(如sg-utility),要花錢買都有找誰買的問題,不是補上了shell的功能就好,開發者的習慣導致windows上的環境不利於命令模式下的操作(有可能是Windows-shell孱弱,導致開發者寫程式大多乾脆忽視命令模式下的支援,因果關係有待證實),最後windows系統上大多數的使用者也習慣了凡是靠GUI操作,甚至認為它就是這樣的系統,整天無腦的燃燒生命。
power shell 靠 telnet亂恐怖的,SSH真的比較可靠,在命令模式下操作*nix真的比較成熟一點。
感謝您的回覆,謝謝!
簡單來說,可以讀寫檔案 CSV/JSON/XML、監控特定目錄檔案異動、基本的檔案複製、刪除、搬移、更名、更改檔案屬性日期都不是問題
可以讀寫資料庫(SqlServer Module, Native Client, sqlcmd)
可以讀取系統設定、系統資訊(WMI/CIM)、系統事件(Event Viewer),也可以設定 Windows 機碼
可以呼叫外部程式,例如 youtube-dl, ffmpeg, selenium, awk, sed, grep, Open Hardware Monitor .....
可以遠端管理Windows(在遠端電腦執行命令、處理檔案、抓取資訊.....)
也可以呼叫 Shell/cmd 內建指令
可以存取網頁、下載檔案(http/https)、呼叫 Web API (SMS API/Synology Chat API/Linebot/Google Text2Speech/...)
可以讀取 AD/LDAP、發送 Email
ssh, 取得SSL憑證 可以呼叫 module
要寫出 GUI 也是可以
要當成 Web Server CGI 執行也可以
要包到現在流行的 Container 運行也可以
基本上,它是微軟的工具,所以處理 Windows 上的事,都不在話下
就算有不足的地方,也可以透過外部工具去處理(執行 .exe 或是載入 .dll)
也有很多模組可以處理或是使用 .Net C# 的方法處理。
個人是比較偏愛 powershell 而不會想用 cygwin,雖然 awk, sed, grep 這堆小工具都還蠻好用的。