Active-Directory

嘗試創建腳本以移植 GPO

  • June 15, 2018

$$ SOLVED $$:以程式方式創建 GPO 時,未設置策略的 LDAP 條目中的 gPCMachineExtensionNames 屬性。我們在腳本中添加了一些程式碼來將密鑰導出到 txt 文件,然後在客戶端重新導入它,之後一切正常。 我創建了一個腳本來創建我們在新客戶入職期間使用的 GPO。不幸的是,處理 GPO 的方式,一些設置保存在 XML 文件中。我現在正在使用的 XML 文件用於服務設置。不幸的是,由於 NTService 行中的 UID,此文件不可移植。我相信這等於該服務設置為在其下執行的使用者帳戶的 UID(在本例中為 NetworkService)。

我只想能夠將腳本和帶有 XML 文件的目錄轉移到客戶端 DC 並執行腳本(這將更改該 UID,以便 XML 文件有效)。該腳本將創建 GPO,將系統資料庫設置插入 GPO,找到 GPO GUID,根據找到的 GPO GUID 將 XML 文件從目錄複製到 GPO 目錄。

\DomainController\SYSVOL\domain.local\Policies{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}\Machine\Preferences\Services

到目前為止,除了查找和替換 UID 位之外,所有這些都有效。不幸的是,該位阻止它將服務設置應用於客戶端站點的電腦。

<?xml version="1.0" encoding="utf-8"?>
<NTServices clsid="{2CFB484A-4E96-4b5d-A0B6-093D2F91E6AE}"><NTService clsid="{AB6F0B67-341F-4e51-92F9-005FBFBA1A43}" name="WinRM" image="2" changed="2018-06-13 20:23:16" uid="{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}"><Properties startupType="AUTOMATIC" serviceName="WinRM" serviceAction="START" timeout="30"/>`</NTService>
</NTServices>

我已經在這幾天了,所以任何幫助將不勝感激。

不幸的是,由於 NTService 行中的 UID,此文件不可移植。我相信這等於該服務設置為在其下執行的使用者帳戶的 UID(在本例中為 NetworkService)。

根據組策略首選項的XML 規範,該uid值與您配置服務以執行的使用者無關。從連結來看,它是:

創建首選項元素時生成的唯一 GUID,用於唯一標識首選項以進行跟踪和報告。

作為展示,嘗試通過 GPMC 創建一個新的 GPO,其中包含兩個不同的服務首選項條目,都作為 NETWORK SERVICE 執行。然後檢查生成的 XML。uid 值將完全不同。記錄目前值以供以後參考。

修改 GPO 並將帳戶切換到 LOCAL SERVICE。然後請注意,這兩個值都已更改並且仍然不同。現在再次修改 GPO 並將它們設置回 NETWORK SERVICE。這些值將再次更改,並且與您記錄的原始值不同。

不幸的是,我認為uid值不是問題的根源,除非您不小心在任何地方複製了這些值。如果它們是獨一無二的,那可能會搞砸。

作為旁注,我可以發誓有更優雅的方式來以程式方式創建一個問題可能更少的 GPO……可能通過 GPMC 附帶的庫。

引用自:https://serverfault.com/questions/916576