2015-11-05 17 views
0

我正在編寫一個NSIS腳本來在不同版本之間升級設備。版本和設置已經離開了我們一些,因爲我們在該領域有很多版本,並且目前沒有簡單的方法從一個版本升級到另一個版本。所以我要做的第一件事就是寫一些他們可以在現場機器上運行的東西來完成必要的任何事情,以便將它們帶到最新版本。在GPO和直接註冊表編輯之間做出決定NSIS

設備在Windows 7上運行,它有3個用戶。在該項目的存儲庫中有4個.msc文件,其中包含組策略來爲每個設置適當的設置。 (計算機,非管理員,管理員,家電)

這是要走的路嗎?在試圖通過學習NSIS的權力,直接寫入註冊表項到HKU/user/...似乎更容易,而不是從GPO的額外層間接,因爲我沒有做任何形式的分佈式系統使用活動目錄(我幾乎一無所知),並且在一臺靜態物理機器上只有3個靜態用戶。

所以簡潔的問題:

  1. 哪種方法更有意義我的應用程序? GPO文件,或者直接在各種用戶上進行ntuser.dat編輯。

  2. 如果GPO是有道理的,我該如何申請內NSIS一個MSC文件?雙擊該文件在Windows中工作,但你有mmc打開。 oogly。有沒有一種乾淨的方式與NSIS做到這一點?

  3. 如何做一個GPO在註冊表中HKCU下轉化爲一個全系統的政策?在我看來,寫入註冊表的內容缺少應用於哪些用戶的關鍵信息(如果它適用於用戶或組)。

在此先感謝

回答

0

的.msc文件通常包含由MMC使用的數據,而不是政策的數據,也許你的意思是.admtemplatefiles?我不認爲你可以通過編程來真正應用.msc文件。

直接編輯註冊表可能是確定的,如果你的應用程序只需讀取它們通常在另一端,否則你可能需要調用gpupdate

如果您的保單存儲在Software\Policies之下,則HKLM中的條目適用於所有人,HKCU/HKU中的條目適用於該用戶。普通用戶不能在HKCU下更改他們的策略,因爲他們沒有寫權限。使用這些密鑰時並沒有真正的羣組概念。

+0

嗯,現在我不確定這些MSC文件。他們應該是管理單元,但是當我雙擊進程監視器時,它會設置註冊表值,例如HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Group Policy Objects \ {6B00A1F1-4117-4F24-887E-B94B0CAB46B0 }用戶\軟件\微軟\的Windows \ CurrentVersion \除了政策\系統\ DisableChangePassword 1'對外開放MMC啪的一聲在代表相應的組。是那些註冊表設置簡單的臨時數據? –

+0

我最初認爲您正在修改非Windows應用程序使用的策略,但我現在看到您正在修改Windows策略。這改變了一點,一個簡單的註冊表寫入可能需要重新啓動。該值將被「記錄在案」 @ https://technet.microsoft.com/en-us/library/cc727914(v=ws.10).aspx,http://www.microsoft.com/en-us/download/ details.aspx?id = 25250可能也有幫助。關於你的.msc一些更多的信息(誰/什麼創造了它)還可以幫助... – Anders

+0

第2行的MSC文件是'<?XML版本=「1.0」?> ',它們的大小在60到80kb之間。他們有4或5塊二進制數據嵌入到XML中。在打開它們之後,進程監視器會觀察4到80個註冊表寫入HKCU \ ... \組策略對象,除了一堆看起來更像緩存的東西外。他們來自該設備的原始開發人員,以抽象出用戶設置。 –