Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Content"
strValueName = "CacheLimit"
dwValue = 358400
objRegistry.SetDWORDValue HKEY_CURRENT_USER,strKeyPath,strValueName,dwValue
strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Cache\Content"
strValueName = "CacheLimit"
dwValue = 358400
objRegistry.SetDWORDValue HKEY_CURRENT_USER,strKeyPath,strValueName,dwValue
結果預留給網際網路暫存檔的磁碟空間量是由兩個登錄值所管理的:
- HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Content\CacheLimit
- HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Cache\Content\CacheLimit
如要變更 447 MB 的大小,只需要變更這兩個登錄項目的值就可以了。
而那正是我們指令碼所做的,指令碼一開始會定義一個名為 HKEY_CURRENT_USER 的常數,並且將值設為 &H80000001;我們稍後會用此常數來告訴指令碼我們想要使用登錄中的 HKEY_CURRENT_USER 部分。接著連接到本機電腦上的 WMI 服務,更具體地說,是連接到 StdRegProv 類別。
接下來的三行程式碼是用來將值指定給三個不同變數:
strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Content"
strValueName = "CacheLimit"
dwValue = 358400
strKeyPath 變數代表登錄中 HKEY_CURRENT_USER 部分的路徑;而 ValueName 代表我們想要變更的登錄值 (在此例中為 CacheLimit)。我們使用 dwValue 變數來指明 Temporary Internet Files 資料夾的新大小。有一點要注意的是,雖然磁碟空間量在 Internet Explorer UI 中是以 MB 表示,但是存在登錄中的值則是以 KB 儲存。不用說也知道,我們得在此做點算術。假設我們想將磁碟空間量設定為 350 MB,這樣就必須將 350 乘以 1024,會得到 358400 KB。而這就是要指定給 dwValue 變數的值。如果要預留 238 MB,就將 238 乘以 1024,然後將該值 (243712) 指定給 dwValue。
若要實際變更登錄中的值,只需要呼叫 SetDWORDValue 方法,將適當的變數當成參數就行了:
objRegistry.SetDWORDValue HKEY_CURRENT_USER,strKeyPath,strValueName,dwValue
之後再對第二個登錄值重複此程序。下一次啟動 Internet Explorer 時,您應該會看到預留給網際網路暫存檔的磁碟空間量已經變更了:
要是我們能夠寫一個指令碼,跟這個變更 Internet Explorer 快取大小的指令碼一樣簡單,來改一下我們的績效報告成績那就太好了…
|