或許你也已經察覺,使用Windows PowerShell 來完成你的管理任務,她方便,高效,優雅而靈活。
當然作爲一個運維人員來說,Windows PowerShell 就是堪比人類歷史上最偉大的發明---空調 之後最偉大的發明 沒有之一,同樣作爲一個運維,開發界限模糊的IT時代,PowerShell 作爲一個 跨平臺的管理工具,尤其在Windows 平臺 光芒無限,在面臨組織內自定義應用程序時候通過有效的訪問手段,開發人員依然可以依靠這一強大的平臺進行快速的構建應用程序,當然作爲管理,運維人員適當的學習開發基礎知識更有利於工作的開展,同樣我們今天討論的內容雖然是面向開發者,但管理人員依然適用因爲他們會再一次提升你的IT結構的自動化水平,進一步的提升你的工作效率。
下面我們將不再廢話 直接進入正題
我們不妨先從運維人員的日常工作開始看看 我們應該如何實現在應用程序中使用PowerShell
首先運維人員要開打PowerShell 無非使用console 或者ISE 或者是PowerShell Studio 要麼
使用PSWA (PowerShell Web Access)
在這裏 我們就已經發現了第一個問題 我們每次打開的Console 或者ISE 都稱爲一個會話 由於我們應用程序中並沒有這個“會話”所以 要在用用程序中使用 PowerShell 我們就需要這麼一個“會話”
也許你覺得這“會話”有點困難,要像使用Bat 那樣的複雜,更多的不可控,因爲我們總是希望代碼儘可能的精簡,儘可能強壯,我有個好消息,使用並不複雜, 也非常可控就像你使用其他技術一樣的容易。
So 我們要準備一下如何去使用 “會話”當然 我們會用C#作爲示例其他的語言在使用方式一樣 請根據自己使用的語法進行相應修改。
如果你只想簡單使用這個“會話”那麼只要創建控制檯應用程序就可以開始愉快的使用了
創建好項目後請添加 對如下的Namespace 的引用
System.Management.Automation
System.Management.Automation.Runspaces
System.Collections.ObjectModel
當然這些 都已在GAC中你不需要額外的去安裝什麼.
如果想快速使用powershell 引擎中的命令那麼 使用 RunspaceInvoke 是最簡單的方式它已經
爲我們封裝好了Runspcae Pipline 爲我們省去很多手動創建的事情,當然如果你只是簡單的使用那麼
已經足夠,這樣的代價就是犧牲了引擎中的其他API 和更多的管道以及Runspace的功能
就像下圖一樣 我們就可以簡單的在一個控制檯程序中使用PowerShell了
也許你會問我管道是什麼 至少現在來說我們還暫時不需要知道這個東西。我們會在後面去介紹這個
RunspaceInvoke 類的構造函數有三個重載 你可以從一個已有的Runspace或者一個現有runspaceConfiguration 實例即運行空間配置文件(我們會在後面詳細介紹這個) 或者是一個控制檯配置文件來創建對用的RunspaceInvoke 實例 一旦我們創建了RunspaceInvoke 我們就可以使用Invoke()方法在控制命令運行 。
此後我們像上圖一樣獲取其運行返回,
如果你只是想簡單的讓結果輸出在屏幕上那麼將是非常簡單的事情
後面的文章我們講繼續深入討論這些