Scriptomatic 2.0:讀我檔案
世界知名的 Scriptomatic 2.0 是為您撰寫 WMI 指令碼的公用程式。還會教導您自行撰寫 WMI 指令碼的基礎概念。如果您是 Scriptomatic 的新手,則絕對會想要試試看這個公用程式,並瞭解之前所錯失的部分。如果您已經熟悉 Scriptomatic 1.0,就會瞭解此工具的好用之處。2.0 版的功能甚至更佳;它具有許多新的功能 (包含可以使用多種指令碼語言來建立指令碼)。 立即下載Scriptomatic 2.0!等一下,您應該先讀完本文的其他部分。這裡還有許多資訊,有些甚至十分有用。
簡短歷史課程從過往的歷史看來,人們都是愈來愈難取悅。例如,以前不可能會有人直接對著路加 (福音傳播者) 說「一本福音書?拜託,路加。馬太、馬可、約翰任何人都可以寫出「一本」福音書」。在雞尾酒會上互相介紹時,尼爾阿姆斯壯可能不會再聽到「喔,第一個登上「月球」的人?瞭解...」。也不曾有人對基奧普斯法老王說「嗯,基奧普斯,這是座「不錯」的金字塔,但是我看不出來這是座「偉大」的金字塔...」。當然,不可能會發生上述狀況。 |
現在,則稍微有點不同:現在不只是難搞的人難以取悅,甚至就算您成功了,還是無法保證所有人都能滿意。畢竟,沒有比被貼上「好景不常」、「大不如前」或「曇花一現」的標籤更糟的了。我們記得莎士比亞,只因為他寫了數百齣戲劇作品和十四行詩。但誰記得 Mouth and McNeal 這個搖滾雙人團體?根本沒有人記得。因為 Mouth and McNeal 只有一首成名曲,之後就沒有其他有名的歌曲了。您可能永遠會記得史蒂芬金的多產,但是有人知道誰曾經寫過<基加美修史詩>嗎?
沒錯,可能是史蒂芬金。他可能也寫過那本書。但是,我想您知道我們要表達的意思。
回到頁首
坦白說,Microsoft Scripting Guys 目前不太在意是否會曇花一現;畢竟,您要先有曇花,才能現。我們確定沒人聽過我們,而這在某種程度上,似乎比被記住又很快被遺忘來得好。還記得棒球選手 Joltin' Joe Charboneau 嗎?這就是個很好的例子。
但我們犯了一個嚴重的錯誤:我們最初發行的 Scriptomatic 是個令人驚艷的公用程式,它實際上是要為您撰寫 WMI 指令碼,結果卻大紅。順便一提,這並不是我們的原意。Scriptomatic 一開始是由其中一位 Scripting Guys 尋找針對內部 Microsoft 對象製作之 WMI 簡報的 socko-boffo 結尾時而產生的。就在開始簡報之前的幾分鐘,他創造出 Scriptomatic,這個 HTA (HTML 應用程式) 可以撰寫基本的 WMI 指令碼。他在演講結束時炫耀他的新創作,全體反應強烈且一致;在 Scripting Guys 的正式記錄中寫著,在場的所有人都起立並說「我們現在可以離開了嗎?」雖不算是首次發表軟體中最幸運的一個,但它的接受度可能仍勝過 Microsoft Bob。
**注意:**如果您是喜歡 Microsoft Bob 的 Microsoft 員工,我們只是開玩笑而已。事實上,我們的一些好朋友也使用 Microsoft Bob。
至少我們認為他們使用它。很難讓人們承認這樣的事情。
但回到我們原本的話題。結果,當我們將相同的 Scriptomatic 發行到 Microsoft.com 時,奇怪的事發生了:它竟然大紅,或至少接近一個指令碼相關公用程式大紅的程度。時至今日,Scriptomatic 已有幾近 500,000 人次下載,這個數字讓我們感到欣慰,也讓我們納悶為何不每次下載都收費 1 元美金。
雖然每個人都覺得 Scriptomatic 好用是件好事,但這項未預期的成功也讓我們在電腦界中與 Dexy’s Midnight Runners 並駕齊驅。現在,我們必須再度創造這類的成功例子。但是,披頭四不需要擔心好景不常,因為他們真的很有才華。海明威也不用擔心被說成是曇花一現;畢竟,他的寫作功力非常地好。但是 Microsoft Scripting Guys 呢?
回到頁首
我們花了無數個月在認真思考變成曇花一現這個問題,但沒有任何進展。我們嘗試了無數次,但老實說,大部分的努力都是沒用的。回想起來,大聲讀出我們的所有指令碼並將它們錄製至 MP3 播放程式 (我們稱為 scriptPod),畢竟都不是什麼好點子 (當然,可能還有點用的是我們記得在 scriptPod 放上 [播放 (Play)] 按鈕。這樣我們可能可以播放搖滾團體 U2 的歌曲)。
同樣地,我們可能應該只測試單一 Scriptbucks 的水質,而不是在國內開心地開立一連串的咖啡店,而它們都提供指令碼口味的拿鐵 (我們自己的辯詞是,許多人都告訴過我們,ADSI Mocha Fudge Delight 不算難喝,只要你加入糖和肉桂、充分攪拌、在上面放上一些奶泡,然後整個倒到排水管而不喝它。還有一個附帶優點就是,它還可以立即讓排水管暢通!)。
而當我們還對<The Scripting Life>真人實境秀抱著一線希望時,卻無法讓派瑞絲希爾頓 (Paris Hilton) 或妮可李奇 (Nicole Ritchie) 回我們電話。(也感謝各種法院指令、強制令和約束令,我們也無法再連絡到她們)。因此要再次創立成功變得比我們預期的還要難。
回到頁首
但就在某一天,我們突然靈機一動。我們不應該複製其他人的點子,而是應該做我們最擅長的事。雖然我們並不是每件事都做得很好,但是我們有一件事做得還不錯,就是撰寫 Scriptomatic。因此,我們的解決方案就十分明顯了:如果我們曾經因創造出一個 Scriptomatic 而大紅,那麼邏輯上,如果我們再發行另一個 Scriptomatic,可能會更紅。就像<星際大戰>冒險故事一樣,差別在於這是指令碼,而不是光劍。
請閱讀New Coke 的真實故事 (英文)
事實上,我們的獨創計畫是仿效 Coca-Cola 公司,它們在多年前推出了 New Coke,這項產品遭眾人唾棄。更不用說,情況有多慘,但是 Coca Cola 中一些默默無名的天才集思廣益後,建議公司重新推出原先的 Coke (現在命名為 Classic Coke)。結果呢?竟然大大的成功!所以,我們想到,我們也可以如法炮製。我們會撰寫一份沒有人會喜歡的軟體,並將它發行為 New Scriptomatic。我們先讓人們抱怨一陣子,然後再重新推出原先的 Scriptomatic (或 Classic Scriptomatic),到時候人們會愛死原先的 Scriptomatic!而我們會成為英雄,最棒的是,我們甚至不需要做任何事。
不過,最後,我們決定建立一個實際可以運作的全新版 Scripotmatic:Scriptomatic 2.0。
回到頁首
為了慶祝新 Scriptomatic 2.0 的發行,我們決定舉行虛擬的記者招待會。以下是記者招待會的文字記錄。
新功能
如何使用 Scriptomatic 2.0
支援 (或沒有支援)
未來計畫
答. | ……. |
答. | 抱歉,我們不會舉辦很多場記者招待會。Scriptomatic 2.0 的強大功能不只在於修正 Scriptomatic 1.0 的一些既有問題,還引進了一些非常棒的新功能。 |
答. | 沒有,當然沒有。只是,舉例來說,Scriptomatic 1.0 的其中一個功能是要將內容處理為儲存為陣列,但是它未做這樣的處理。另一個功能是 Scriptomatic 1.0 處理日期和時間的方式:它是以 UTC 格式顯示日期和時間,因此您的輸出會是 20040930083722.000000-480。而在 Scriptomatic 2.0 中,這些功能已變更。Scriptomatic 2.0 現在在處理陣列部分不會有任何問題,而且現在日期和時間的顯示也十分良好。 |
答. | 我們也這麼認為。但是我們的經理們覺得我們太懶了,因此他們要我們在 Scriptomatic 2.0 中加入一些其他功能。 |
答. |
嗯,功能太多,不知從何說起。但以下是一些重點:
|
答. | 就我們所瞭解,您無法針對多部電腦執行該指令碼,至少在未重新撰寫指令碼的情況下是不可能的。但是,對 Scriptomatic 2.0 而言,並非如此。運用 Scriptomatic 2.0,您可以輸入多個電腦名稱 (格式為逗號分隔清單,或從文字檔載入名稱),而新的 Scriptomatic 就會自動為您撰寫針對所有這些電腦執行的指令碼。 |
答. |
我們也這麼想。結果,您可以撰寫與使用類似 Classic Coke 的指令碼嗎? 嗯,如果用這種方式,可能可以。但是大部分的人並不知道那個功能。 |
答. | 喔,顯然是。但 Scriptomatic 2.0 最佳的新功能顯然是 Scriptomatic 現在可以使用多種語言。運用 Classic Scriptomatic,您只能使用 VBScript 指令碼語言來撰寫指令碼。有了 Scriptomatic 2.0,您可以選擇建立以 VBScript、JScript、Perl 或 Python 撰寫的指令碼。 |
答. | 沒錯! |
答. | 當然。 |
答. | 是。 |
答. |
答. | 喔,抱歉,我們以為記者招待會已經結束。不會,Scriptomatic 和以前一樣容易使用。雖然您有了許多可用的選項,但是仍然可以只按幾下滑鼠按鍵,來撰寫完整的功能完整 WMI 指令碼。 |
答. |
當然。請按兩下檔案 ScriptomaticV2.hta 啟動 Scriptomatic 2.0 開始。幾秒之後,您的螢幕會與下列類似:
Scriptomatic 2.0 預設會載入在 root\cimv2 命名空間中找到的所有類別。如果那是您想要使用的命名空間,那麼您就可以開始撰寫指令碼了。 |
答. |
那也沒有問題。只要按一下標示為 [WMI 命名空間 (WMI Namspace)] 的小型下拉清單。就會顯示本機電腦上找到的所有 WMI 命名空間清單,如下所示:
選擇想要使用的命名空間之後,Scriptomatic 2.0 會將該命名空間中找到的所有類別自動載入至標示為 [WMI 類別 (WMI Class)] 的下拉清單中。 |
答. |
此時,您幾乎已完成。只要從 [WMI 類別 (WMI Class)] 下拉清單中選取類別,Scriptomatic 就會立即為您撰寫指令碼,以傳回該類別之所有內容的資訊。例如,假設您想要 Win32_BIOS 類別的資訊。您只需要從下拉清單中選取該類別,就會看到與下列類似的內容:
請嘗試使用 Win32_BIOS。您不只會取得指令碼,還會看到 Scriptomatic 2.0 如何處理陣列,以及它如何將日期和時間從 UTC 格式轉換為較具可讀性的資料。 |
答. |
嗯,沒錯:VBScript 是 Scriptomatic 2.0 的預設語言。但是,要使用其中一種其他語言來撰寫指令碼,實際上並不難。例如,如果您想要使用 Perl 指令碼,則只需要指一下標示為 [Perl] 的選項按鈕就可以了:
|
答. | 嗯,下一個問題,謝謝。 |
答. | 是的,沒錯,真是抱歉!但是,在您選取 [Perl] 之後,在「此工作階段」中撰寫的所有後續指令碼,都會使用 Perl 進行撰寫 (除非您選取不同的語言選項)。因此,那也還好。 |
答. | 哇,你還真不死心!好的,如果您真得想要 Perl 成為預設語言,那麼您可以遵循下列步驟。 |
答. |
它的保證就像 Scriptomatic 其餘部分一樣:不提供任何保證。但是,它「應該」會運作,而且只要您在 Scriptomatic 2.0 複本上進行變更,應該就沒問題。如果無法運作,則只需要丟掉該複本,然後回頭使用未編輯的 Scriptomatic 2.0 版本即可。 無論如何,請進行下列作業:
|
答. | 那是因為:按一下它們後,「真的」不會發生任何事情。那些按鈕並不會影響 Scriptomatic 撰寫的實際指令碼;只有在您按一下 [執行 (Run)] 按鈕,並於 Scriptomatic 2.0 內執行指令碼時,那些按鈕才會有作用。 |
答. |
沒關係,那麼請進行下列作業。撰寫指令碼 (使用想要的任何類別或語言),然後按一下 [執行 (Run)] 按鈕。螢幕上應該會跳出一個命令視窗,並執行您剛剛所撰寫的指令碼,而結果則會出現在該命令視窗中。整個作業看起來像這樣:
這是將 [輸出格式 (Output Format)] 設定為預設值 ([命令提示字元])。現在,請選取不同的選項 (例如,[HTML])。您的螢幕應該如下所示:
重新執行指令碼,並看看發生什麼狀況。這次,您的輸出應該會出現在網頁上,而不是命令視窗中:
運用 [純文字 (Plain Text)] 選項,則輸出應該會以純文字檔形式顯示在 [記事本] 中;運用 [Excel],輸出應該會顯示在 Excel 中 (假設您已安裝 Excel)。而運用 [XML] 時... 嗯,您應該知道它會怎麼做了吧! 順便一提,如果想要儲存此資料,請確定先儲存之後再執行另一個指令碼。因為 Scriptomatic 會重複使用相同的暫存檔,所以如果先執行指令碼 A,再執行指令碼 B,則指令碼 B 的結果會覆寫目前顯示的舊資料。例如,目前在 HTML 頁面上的內容都會取代為新的一組資料。 |
問. 現在讓我確認一下我所瞭解的內容:只有在 Scriptomatic 內執行指令碼時,所有項目才會有作用嗎?如果我將指令碼儲存為 .vbs 檔案,然後執行該指令碼,則會將輸出儲存為 Excel 還是 HTML?
答. | 不是這樣的,抱歉。我們考慮過要這樣做,但是那對簡單的 HTA 而言太難處理了。我們想要儘可能維護 Scriptomatic 的一貫簡單性,因此...。 |
答. |
是,您可以在 Scriptomatic 內儲存指令碼。只需要按一下 [儲存 (Save)] 按鈕,然後在此對話方塊中輸入指令碼的路徑和檔案名稱:
而且不要忘記使用正確的副檔名:.vbs 表示 VBScript、.js 表示 JScript、.py 表示 Python,而 .pl 表示 Perl。 |
答. |
實際上,運作地相當不錯。在螢幕底端,會看到標示為 [目標電腦 (Target Computers)] 的文字方塊。只要輸入想要針對其執行指令碼之所有電腦的名稱 (以逗號隔開電腦名稱):
例如:
注意:您知道業界出現很多洩漏內部機密的視訊遊戲嗎?以下是 Scriptomatic 2.0 的內部機密:您「實際上」並不需要用逗號隔開電腦名稱。您可以用空格或分號來隔開電腦名稱,或甚至將每個電腦單獨放在一行,如下所示:
|
答. |
您真是個活寶! 嗯~ 抱歉!我們的意思是:「可以,如果您的電腦名稱儲存在文字檔中,按一下 [從檔案載入 (Load From File)] 按鈕,然後選擇要載入的文字檔,就可以匯入所有那些名稱」。 順便一提,不論用哪一種方式將電腦名稱放入文字方塊中,都需要按一下 [更新指令碼 (Update Script)] 按鈕,讓那些名稱嵌入至指令碼。不管是好或是壞 (好吧!我承認這不太好),這並不會自動發生。 |
問. 請不要誤會我的意思,我真的喜歡原先的 Scriptomatic。但有一件事十分困擾我,就是它只會列出本機電腦的 WMI 命名空間和類別;而無法連到我的其中一部伺服器,並取得那部伺服器的 WMI 命名空間和類別。新版的 Scriptomatic 仍然有這個問題嗎?
答. |
Au contraire,它的意思是... 嗯,我們無法完全確定它的意思。因此,我們換另一種說法:完全相反。在 Scriptomatic 2.0 中,您「可以」從遠端電腦擷取 WMI 資訊。只需要按一下 [WMI 來源 (WMI Source)] 按鈕,並等待此對話方塊出現:
出現時,請輸入遠端電腦的名稱,並按一下 [確定 (OK)],然後 Scriptomatic 會立即從該遠端電腦擷取資訊。 |
答. | 這是個有趣的問題;就我們所知,應該不會有人想要結束。但是最佳的結束方式是只要按一下 [結束 (Quit)] 按鈕。關閉 Scriptomatic 2.0 視窗,也可以結束,但是如果這樣做,則不會刪除 Scriptomatic 建立的暫存檔。這不會有很大的影響;因為只有少數幾支檔案,而且它們都很小。但是,仍然...。 |
答. | 請將電子郵件傳送至 scripter@microsoft.com。我們並未提供 Scriptomatic 2.0 的正式支援,也不保證會回答您的問題。但我們會看看我們能做什麼。 |
答. | 不會,我們已經決定將所有的時間和金錢投入在建立新的線上企業:scriptBay。這將是個網站,我們會在這個網站上將 WMI 指令碼拍賣給出價最高的人。 |
答. | 我們以後再回覆您 Scriptomatic 3.0 的發行日期...。 |
回到頁首