嗨,Scripting Guy!

Hey,Scripting Guy!

歡迎使用全新的 TechNet 專欄,Microsoft Scripting Guy 會在此為您解答有關系統管理指令碼的常見問題。您有關於系統管理指令碼方面的問題嗎?請將電子郵件傳送到 scripter@microsoft.com。我們無法保證能夠逐一回答每個問題,不過我們會盡力而為。

今天的問題:我要如何變更 Internet Explorer 首頁?


我要如何變更 Internet Explorer 首頁?

嗨,Scripting Guy!我可以使用指令碼變更 Internet Explorer 首頁嗎?

-- AH

AH,您好。現在是星期一早上;上個週末大伙聚在一塊觀看足球賽,真是疲累,我們決定這個早上來點輕鬆的。是的,您可以使用指令碼變更 Internet Explorer 首頁;您所要做的只是寫一段修改 HKCU\ SOFTWARE\Microsoft\Internet Explorer\Main\Start Page 登錄值的 WMI 指令碼:
Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\Microsoft\Internet Explorer\Main"
ValueName = "Start Page"
strValue = "https://www.microsoft.com/technet/scriptcenter/default.mspx"
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName, strValue

您瞧,我們說上午要來點輕鬆的,可不是在開玩笑,不是嗎?如您所見,這段指令碼的內容不怎麼難。我們一開始定義了常數 HKEY_CURRENT_USER,並將值設為 &H80000001;正如前面專欄提到的,這個值會告訴指令碼使用登錄的 HKCU 部份。接下來,連接到 WMI 服務;注意,用來修改登錄值 StdRegProv 的類別位在 root\default 命名空間中 (這點可能與您最熟悉的上百段 WMI 指令碼有所不同,因為它們多半是連接到 root\cimv2 命名空間)。

在此之後,分別指派登錄路徑和登錄值給一對變數 (分別給 strKeyPath 和 ValueName)。接著指派新的首頁給變數 strValue:https://www.microsoft.com/technet/scriptcenter/default.mspx。一旦取得這些變數組之後,便呼叫 SetStringValue 方法,實際變更登錄,進而變更 Internet Explorer 首頁 (您想必已經知道,Internet Explorer 每次啟動時,就會檢查 HKCU\ SOFTWARE\Microsoft\Internet Explorer\Main\Start Page 以決定首頁)。

最後結果:將目前使用者的首頁設定為「TechNet 指令碼中心」的指令碼 (好吧,我們知道這有點無聊。畢竟,大家不都已經將首頁設為「TechNet 指令碼中心」了嗎?)

順便一提,Internet Explorer 會大量運用登錄,這表示您可以輕易地撰寫指令碼來設定 Internet Explorer 設定。如果您迫不及待要做這件事,請參閱 Tweakomatic 公用程式,其中包含了許多對管理 Internet Explorer 方面很有用的指令碼。不然,就請在這一兩週內,密切期待我們將所有的那些指令碼加到「指令碼存放庫」。

為什麼不今天就將那些指令碼全部加進去呢?不是說了現在是「星期一」嗎?放心,我們會儘快把它弄好。

順便一提,如果您只是要判斷為使用者設定的目前的首頁,請嘗試下列指令碼:

On Error Resume Next
Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\Microsoft\Internet Explorer\Main"
ValueName = "Start Page"
    objReg.GetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName, strValue
If IsNull(strValue) Then
    Wscript.Echo "The value is either Null or could not be found in the registry."
Else
    Wscript.Echo strValue
End If

如需詳細資訊

查看嗨,Scripting Guy!- 過往文件

 

回到頁首 回到頁首