2012-12-03 41 views
4

作爲一個人誰是新的PowerShell的我不是在一個點100%明確:如果Powershell建立在.Net之上,那麼編寫腳本而不是C#代碼的原因是什麼?

如果

「在PowerShell中,管理任務通常由 的cmdlet(發音爲command-lets)進行, 專門.NET類 實現特定的操作。「

寫腳本而不是用這些類編寫.Net可執行文件並將它們編譯爲控制檯應用程序的原因是什麼?

+7

減少儀式... –

+1

如果我是一個C#人,在這種情況下,我不需要打擾自己學習一種新的語法,而我可以在C#中做同樣的事情,對吧? (可能我錯過了我的假設?:)) – pencilCake

+0

...當PS首次開發時,C#不支持這些功能。 –

回答

6

您可以輕鬆地問這個問題,在.NET中編寫應用程序的原因是什麼?您可以輕鬆地在PowerShell中創建完全成熟的桌面和服務器軟件?

在不同情況下都有理由使用兩者。 PoSH腳本本身就是簡單的小文本文件,並且非常易於編寫和維護。作爲涉足這兩者的人,我會說在很多情況下,使用快速創建的PoSH腳本比使用.NET應用程序更容易完成系統維護任務。這就是說有些東西在.NET中很容易完成(我自己使用C#),但是開發這些東西的過程要麻煩得多,並且需要一個額外的技能組,這在SysAdmins中並不常見。

簡而言之,PoSH是針對SysAdmins的,.NET針對開發者,但這並不是說沒有交叉空間。

0

我完全同意@Matt G的回答。

我只是想補充一點,就是圍繞文化。 Windows系統管理員的文化比編程驅動更「點擊」驅動(由圖形用戶界面管理)。我使用的是在Unix世界中工作的系統管理員,在這裏系統管理員(sh,csh,ksh ...)以及需要時他們可以在表格的角落寫一個小的'C'程序性能,或作爲一個複雜的文件過濾器等)。由於.NET(2001)的開始,Windows系統管理員可以使用C#編譯器(可從.NET目錄中作爲CSC.EXE獲得),因爲Linux或Unix可以使用'cc'編譯器,但它們不能使用'cc'編譯器,但它們不能。最好的是使用WSH(Window Script Shell),但是VBScript不太容易使用,並且需要爲每種情況發現不同的COM對象。微軟公司推動Windows SysAdmins使用命令行和腳本(WSH,netsh,wmic等)的方式。幾年之後(2006年),微軟決定親手系統管理員,並給他們一個電源工具,從用戶界面(Exchange 2007)中移除電源。因此,現在SysAdmin除了使用PowerShell之外無法做其他任何事情。但是,因爲他們不是devolppers,所以語言被解讀,並且'對象文化'對於初始者來說是隱藏的。

現在好的Windows系統管理員可以開發自己的C#類並將它們內聯插入到PowerShell腳本中,系統管理員不是開發人員,他們只需要自動化他們的過程。

相關問題