Windows Server 2012:讀者眼中的PowerShell(一)
在上一篇《Windows Server 2012十大最佳特性總結(jié)》中,我們分享了對于很多系統(tǒng)管理員為什么要關(guān)注微軟Windows Server服務(wù)器操作系統(tǒng)家族最新版本的幾個理由,Windows Server 2012有很多不錯的新功能,它改進(jìn)了Windows早期版本將其從“從未使用的1.0版本”階段帶入到功能與穩(wěn)定性兼?zhèn)涞碾A段,并在功能性與穩(wěn)定性方面與其它主流競爭對手不相上下。
Register網(wǎng)站專欄作者Trevor Pott指出:“雖然我在Server 2008 R2的部署工作中投入了大量精力,但出于以上十大理由,我認(rèn)為Server 2012仍然值得自己再張羅一次升級。就連對預(yù)算一向把得很嚴(yán)的公司高管這回也一路大開綠燈。”
到目前為止,讀者朋友最關(guān)注的內(nèi)容要數(shù)PowerShell,而且根據(jù)大家的語氣判斷,這算得上是一場混戰(zhàn)。有些人對其不屑一顧,有些人則認(rèn)為這是微軟能夠拿出的最佳解決方案。出于篇幅的考量,我們盡量對評論原文進(jìn)行了壓縮,但仍然在最大程度上保留了其語氣及內(nèi)容。
于是我們決定進(jìn)行一次實驗性嘗試:試圖將幾款熱點文章的讀者評論加以匯總,最終形成一篇新文章。有些朋友可能會把這種做法稱作素材擴展,而從社交媒體的角度則稱之為話題詳述。我們認(rèn)為盡管有些評論太過偏激,但仍然有不少讀者朋友留下了他們有趣且睿智的見解。好吧,讓我們一起來聽聽讀者的聲音。
BuckFutter 表示:
沒錯,不過……你沒法把PowerShell 3跟SharePoint 2010同時使用,所以基本上目前的命令行版本在SP2010上完全無用,除非微軟決定再來一次更新。
另外,我再補充一項最佳功能——Server 2012能夠在核心、完整以及“最小服務(wù)器界面”三套方案之間進(jìn)行切換。所謂“最小服務(wù)器界面”,是指只向用戶提供PS控制臺以及Server Manager界面。再有,我們不僅能把角色及功能刪除掉,更可以真正把它們從系統(tǒng)中清除出去,這對于減小攻擊面意義非凡。雖然我很討厭微軟,但我不得不承認(rèn)Server 2012是一款偉大的操作系統(tǒng)。不過Metro仍然是最大的敗筆……
銅牌用戶K 則以個人名義向微軟發(fā)出戰(zhàn)書:
微軟此次的努力值得贊賞,但PowerShell仍然速度緩慢、功能有限、說明文檔簡陋不全而且對非微軟出品的應(yīng)用支持不足。如果能解決這些問題,我會樂于加入到PowerShell用戶的陣營中來。
而另一位銅牌用戶 LDS 則對加入GUI的做法提出質(zhì)疑:
Windows的確需要更多腳本化方案來完成任務(wù),但GUI的加入只是在一堆PowerShell腳本之上堆疊起更緩慢、更麻煩的多余機制,而且令錯誤報告更加糟糕——這看起來跟某些蹩腳的Linux應(yīng)用十分相似。GUI與命令行都應(yīng)該調(diào)用相同的API,這樣無論我們通過哪種方式執(zhí)行任務(wù),都能保證整個過程以最快、最理想的方式進(jìn)行。
Richard Gadsden 在回復(fù)中說:
腳本之上的GUI?就像SQL Server Management Studio(簡稱SSMS)所采用的機制?這種方式效果不錯。雖然我個人并不是PowerShell擁護(hù)者,但SSMS的表現(xiàn)相當(dāng)出色。
而P Lee則補充道:
問題更可能出自微軟內(nèi)部。他們不希望利用不受信的GUI工具來實現(xiàn)腳本無法完成的工作,所以才強制要求用戶以調(diào)用腳本的方式執(zhí)行任務(wù),而這就造成了處理速度上的損失。但對于企業(yè)而言,犧牲一點速度來保障安全還是值得的。
銀牌用戶ShelLuser 對于前面提到的十大特性一一做出回應(yīng),不過仍然把討論重心放在PowerShell身上,并強調(diào)如何最大程度改進(jìn)用戶體驗。(我們對原文內(nèi)容進(jìn)行了刪減)
事實上幾乎沒什么優(yōu)勢……我很好奇作者本人到底有沒有使用過他所提到的這些功能。
首先來看PowerShell:從2到3的版本號提升并不能算升級,因為微軟公司發(fā)布的根本就是一款沒有完工的產(chǎn)品。真正的出發(fā)點倒是不錯:迅速推進(jìn)組件模塊化,并以此為契機實現(xiàn)差異性。舉例來說,本地系統(tǒng)現(xiàn)在終于能夠通過選項調(diào)整使用本地幫助了。
由于PowerShell 3目前仍然采用在線幫助庫,因此能夠非常方便地為剛剛更新的部分添加幫助說明,并根據(jù)各國用戶的實際需要推出翻譯文檔。
只有一個小問題……微軟似乎從未考慮過一旦本地系統(tǒng)(例如nl-NL)只擁有默認(rèn)(en-US)語言的幫助說明,用戶應(yīng)該如何是好?
更糟糕的是:他們也從未認(rèn)真對待用戶對于本地幫助或者全局環(huán)境的需求。在使用help命令時,我們根本無法選擇語種。
僅此一點就徹底毀掉了PowerShell的使用體驗。惟一的善后方式就是由用戶手動復(fù)制“本地化目錄”。
我們談?wù)摰目墒俏④?,大家真相信他們會僅僅把它留給Server 2012嗎?經(jīng)過一段時間的觀察、匯總運行錯誤并集中糾正,然后IIS8就會被廣泛應(yīng)用于其它平臺了。
基于其它一些功能(例如Hyper、iSCSI、SMB等),我承認(rèn)這都是些不錯的項目,但僅靠它們就足以撐起一款全新的服務(wù)器系統(tǒng)了嗎?
如果某些企業(yè)已經(jīng)開始嘗試Server 2012,我倒也不會感到驚訝,因為他們可能有不得已的理由(例如需要批量更換舊服務(wù)器)。但我同樣相信會有不少企業(yè)選擇跳過Server 2012,就像他們會跳過Windows 8一樣。在我看來,Metro肯定會在這類選擇中起到很有份量的負(fù)面作用。
Bainia不是PowerShell的擁護(hù)者,因此我們采納了他的發(fā)言及其后列出的特別申訴:
我真的很難控制自己不去對PowerShell展開一番嘲笑。我努力讓自己放過它,但作為一款由命令行驅(qū)動的強大系統(tǒng),PowerShell的能力實在太過糟糕。
一位匿名讀者回答了Bania提出的問題:
1、系統(tǒng)啟動需要大量時間。即使是新型硬件配置也需要11秒才能完成啟動過程。
在我的設(shè)備上Server 2012能夠“瞬間”啟動。只有在系統(tǒng)重啟后首次打開PowerShell時需要等一小會兒,也許你應(yīng)該檢查一下自己的配置腳本。
2、缺乏大量類unix shell基本功能。
相反,Unix shell才缺乏“大量”PowerShell所提供的功能。
3、在文本處理概念方面不夠考究,所有東西都被視為一個“對象”。
說的沒錯。文本僅僅被視為一系列有序的字符串對象。不過你可能根本沒必要在PowerShell中使用強大的字符串功能,因為在進(jìn)行對象操作時幾乎不需要與其扯上關(guān)系。
4、表述方式太啰嗦了,最簡單的任務(wù)也要寫一大段才能實現(xiàn)。
大多數(shù)命令都有簡化版指令,只要不怕引起混淆、所有參數(shù)名稱也都可以縮短。不要人云亦云地認(rèn)為代碼描述真是越長越好,PowerShell也能夠像bash那樣簡潔——有些情況下甚至更加簡潔。
5、路徑中的斜杠仍然沒有用對。
這種說法太無知了。PowerShell中一直允許用戶根據(jù)喜好隨意使用斜杠以及反斜杠符號。
6、沒有持續(xù)命令歷史記錄。
保存一下就行了?;蛘咴O(shè)定退出時自動保存以及初始化后自動載入功能。還有更好的辦法:為實際片段建立一套庫。難道bash就沒有片段問題嗎?
始終作用于*sh shell中的風(fēng)險管理機制哪去了?在PowerShell中我們可以通過-WhatIf運行任何命令。在這種模式下,系統(tǒng)不會受到任何影響。相反,系統(tǒng)會將命令執(zhí)行后的結(jié)果以報告形式提交給用戶。另外,它同樣能作用于腳本:只要我們將-watif作為腳本參數(shù),則“whatif”即成為全局首選項且腳本內(nèi)容不會真正付諸執(zhí)行。
*sh shell的事務(wù)整合哪去了?我們可以通過PowerShell與多臺數(shù)據(jù)庫服務(wù)器、消息隊列服務(wù)器等相連,進(jìn)而在執(zhí)行事務(wù)背景的任務(wù)時確保事務(wù)一致性。
*sh shell的中止與繼續(xù)腳本哪去了?PowerShell工作流能夠在一臺設(shè)備上對腳本或任務(wù)進(jìn)行重啟及暫停,并在另一臺設(shè)備上繼續(xù)進(jìn)行。
我們要如何創(chuàng)建并行*sh腳本?PowerShell支持同一工作流腳本中的并行執(zhí)行功能。
未完待續(xù)……