我需要導入包含服務器產品標準配置設置的.reg文件。但是,單個Windows框可能包含多個服務器實例。每個服務器實例在Windows註冊表中都有自己的配置密鑰。使用PowerShell導入腳本修改的.reg文件?
的第一個實例將具有默認的註冊表項:
HKLM\SOFTWARE\<Vendor>\<Product>\Settings
其他任何情況下都會有不同名稱,如:
HKLM\SOFTWARE\<Vendor>\<Product>\Settings-foo
HKLM\SOFTWARE\<Vendor>\<Product>\Settings-bar
HKLM\SOFTWARE\<Vendor>\<Product>\Settings-baz
等等
註冊表文件包含需要應用於每個這些服務器實例的設置。註冊表子鍵的結構在每個鍵中都是相同的。因此,手動部署過程是採用.reg文件併爲"SOFTWARE\<Vendor>\<Product>\Settings\"
執行文件搜索和替換,並將其替換爲"SOFTWARE\<Vendor>\<Product>\Settings-foo\"
,然後導入新調整的.reg文件。沖洗&重複吧,巴茲等
我想要做的是編寫一個PowerShell腳本獲取所有「設置」鍵的列表,並在導入.reg文件之前執行等效的搜索和替換。我還沒有找到一個可以導入.reg文件的cmdlet,所以我想我必須調用reg.exe或regedit.exe。這兩種程序都允許您導入磁盤上的.reg文件的內容。
我的問題是,我是否真的必須創建.reg文件並將它們寫入磁盤,然後才能撥打reg.exe /Import <filename>
或regedit.exe /S <filename>
?或者有什麼方法可以加載原始.reg文件,在內存中修改它,並獲取reg.exe或regedit.exe來導入修改的註冊表項,而無需將整個.reg文件寫入磁盤?
不是一個真正的回答你的問題,但你考慮過沒有使用的.reg文件,但使用PowerShell腳本有修改註冊表? – 2011-06-09 07:42:09
嗨拉爾斯。有幾個原因可以使用。reg文件: 1)將腳本邏輯從配置中分離出來(這樣就可以發佈新版本的reg文件,而無需修改和重新簽署部署腳本) 2)不需要重新發明輪子以一種新的方式來存儲與Regedit不兼容的註冊表信息。3)繼續支持基於reg文件的現有基礎架構。 4).reg文件爲沒有PowerShell的傳統機器提供配置機制,並且我不想維護兩組配置。 – Hydrargyrum 2011-06-09 08:01:17