出版:2015年6月 shell
上次更新時間:2018年6月 windows
做者: api
TomAusburne,微軟 安全
JiriFormacek,微軟 服務器
摘要:本文檔總結了本地管理員密碼解決方案(LAPS)的基本操做過程 網絡
版權全部©2015MicrosoftCorporation。版權全部。 架構
1安裝 dom
1.1管理計算機 編輯器
1.2託管客戶 ide
安裝分爲兩部分:管理計算機(服務器端)和要管理的客戶端。
二進制文件和相關文件的均已經打包爲MSI軟件包。這將安裝如下組件:
1.GPOCSE:必須存在於每一個託管計算機上
2.管理工具:
Ø 胖客戶端用戶界面
Ø powershell模塊admpwd.ps
Ø 組策略編輯器管理模板
默認設置是僅安裝CSE。管理工具按需安裝。
文件使用:
1.胖客戶端用戶界面的安裝已完成到文件夾:
%ProgramFiles%\laps
admpwd.ui.exe
admpwd.utils.config
admpwd.utils.dll
2.powershell模塊安裝到文件夾:
%windir%\system32\windowspowershell\v1.0\modules\admpwd.ps
admpwd.ps.dll
admpwd.ps.format.ps1xml
admpwd.ps.psd1
admpwd.utils.config
admpwd.utils.dll
%Windir%\system32\WindowsPowershell\v1.0\modules\admpwd.ps\en-us
admpwd.ps.dll-help.xml
3.CSE的安裝已完成到文件夾:
%ProgramFiles%\laps\cse
admpwd.dll
4.組策略文件的安裝已完成到文件夾:
%windir%\policyDefinitions
admpwd.admx
%windir%\policyDefinitions\en-us\ADMPWD.ADML
雙擊x86或x64位(laps.<platform>.msi)的MSI安裝程序開始。
單擊「下一步」。接受許可協議並單擊「下一步」
對於第一臺管理計算機,應啓用管理工具的全部安裝選項
單擊「下一步」。
單擊「安裝」。
單擊「完成」。
此安裝使用與管理計算機上相同的安裝文件admpwd.setup.x64.msi和admpwd.setup.x86.msi。可使用多種方法在客戶機上安裝/更新/卸載它們,包括使用組策略推送安裝、sccm、登陸腳本、手動安裝等。
若是要編寫腳本,可使用此命令行執行靜默安裝:
msiexec/i<filelocation>\laps.x64.msi/quiet或
msiexec/i<filelocation>\laps.x86.msi/quiet
只需將<filelocation>更改成本地或網絡路徑。
示例:msiexec/i\\server\share\laps.x64.msi/quiet
託管客戶端的另外一種安裝方法是將admpwd.dll複製到目標計算機並使用如下命令:
regsvr32.exeadmpwd.dll
注意:若是僅經過註冊dll進行安裝,則它不會顯示在程序和功能中,以下所示。
安裝後,您能夠在程序和功能中看到它。
須要用兩個新屬性擴展活動目錄架構,這些屬性存儲每臺計算機的託管本地管理員賬戶的密碼和密碼過時時間戳。這兩個屬性都被添加到計算機類的may-contain屬性集中。
ms-Mcs-AdmPwd以明文形式存儲密碼
ms-Mcs-AdmPwdExpirationTime存儲重置密碼的時間
要更新架構,首先須要導入powershell模塊。打開管理powershell窗口並使用如下命令:
Import-moduleAdmPwd.PS
使用如下命令更新架構:
Update-AdmPwdADSchema
注意注:若是您在環境中安裝了rodc,而且須要將屬性ms-Mcs-AdmPwd的值複製到rodc,則須要將ms-Mcs-AdmPwd架構對象的searchflags屬性值的第10位更改成0(從searchflags屬性的當前值減去512)。有關向RODC篩選屬性集添加屬性或從中刪除屬性的詳細信息,請參閱。http://technet.microsoft.com/en-us/library/cc754794(v=ws.10).aspx網站
經過容許按屬性訪問列表(acl)和實現密碼存儲的機密屬性,activedirectory基礎結構爲實現此解決方案的安全模型提供了高級工具。有四組權限須要修改。
2.2.1刪除擴展權限
要限制特定用戶和組查看密碼的能力,您須要從不容許讀取屬性ms-Mcs-AdmPwd值的用戶和組中刪除「全部擴展權限」。這是必需的,由於「全部擴展權限/權限」權限還授予讀取機密屬性的權限。
2.2.1.1繼承權限
若是要對全部計算機執行此操做,則須要對包含這些計算機的每一個ou重複如下步驟。除非已禁用權限繼承,不然不須要對已處理OU的子容器執行此操做。
1.打開adsiedit.msc
2.右鍵單擊包含要在其上安裝此解決方案的計算機賬戶的OU,而後選擇「屬性」。
3.單擊「安全」選項卡
4.單擊「高級」
5.選擇不想讀取密碼的組或用戶,而後單擊「編輯」。
6.取消選中全部擴展權限
重要提示:這將刪除全部擴展權限,而不只僅是控制訪問權限,所以請確保全部角色將保留其正常工做所需的全部必要權限。
若要快速查找哪些安全主體對ou具備擴展權限,可使用powershell命令。若是這是一個新窗口,則可能須要運行Import-moduleAdmPwd.PS。
Find-AdmPwdExtendedrights-identity<OUname>|Format-Table
若是輸出因具備權限的受信者數太長而被截斷,請關注特定的OU並運行:
Find-AdmPwdExtendedrights-identityMemphis|Format-list
ObjectDN:OU=memphis,OU=members,DC=herbertm01,DC=lab
ExtendedRightHolders:{NTAUTHORITY\SYSTEM,HERBERTM01dom\DomainAdmins,contoso-dom\Member-HelpDesk1-Memhpis}
2.2.1.2直接權限
「全部擴展權限」也能夠經過計算機對象上的直接、非繼承的ACEs設置。這多是由客戶手動完成的,也多是經過腳本或配置系統完成的。
具備擴展權限訪問權限的ACEs的第二個公共源是計算機的默認架構。默認狀況下,它包含具備徹底控制權的「賬戶操做員」組,該組還將授予讀取本地管理員密碼的足夠權限:
在委派的管理環境中,賬戶運算符僅用於域用戶賬戶,不該授予計算機任何或不多的權限,您可能須要檢查是否更改了此ACE,甚至從架構默認值中刪除了此ACE。
您還須要開發一個解決方案,將此ACE從全部由LAPS管理的計算機中刪除。
2.2.2添加機器權限
必須將對全部計算機賬戶的ms-Mcs-AdmPwdExpirationTime和ms-Mcs-AdmPwd屬性的寫入權限添加到自建賬戶。這是必需的,以便計算機能夠更新本身的託管本地管理員密碼的密碼和過時時間戳。這是使用powershell完成的。若是這是一個新窗口,則可能須要運行Import-moduleAdmPwd.PS
Set-AdmPwdComputerSelfPermission-OrgUnit<要委派權限的OU的名稱>
對於包含在解決方案範圍內且不是已處理容器的子容器的計算機賬戶的任何其餘OU,重複此過程。
2.2.3添加用戶權限
將計算機賬戶的「ms-Mcs-AdmPwd上的控制訪問權限(擴展權限)」屬性添加到容許讀取託管計算機上託管本地管理員賬戶的存儲密碼的組或用戶。
Set-AdmPwdReadPasswordPermission-OrgUnit<ou的名稱以委派權限>-AllowedPrincipals<users或groups>
使用與前一個命令中相同的–orgunit名稱。
注意:能夠在同一命令中使用多個組和用戶,並用逗號分隔。
示例:Set-AdmPwdReadPasswordPermission-OrgUnitServers-AllowedPrincipalscontoso\Administrator,contoso\HelpDesk,contoso\PwdAdmins
將計算機賬戶的ms-Mcs-AdmPwdExpirationTime屬性上的寫權限添加到容許在受管計算機上強制重置受管本地管理員賬戶密碼的組或用戶。
Set-AdmPwdResetPasswordPermission-OrgUnit<ou的名稱以委派權限>-AllowedPrincipals<users或groups>
使用與前面命令中相同的–orgunit名稱。
注意:能夠在同一命令中使用多個組和用戶,並用逗號分隔。
示例:Set-AdmPwdResetPasswordPermission-OrgUnitServers-AllowedPrincipalscontoso\Administrator,contoso\HelpDesk,contoso\PwdAdmins
這些設置位於「計算機配置\管理模板\LAPS」下。
必須啓用本地管理員賬戶的密碼管理,以便CSE能夠開始管理它:
默認狀況下,此解決方案使用密碼最大密碼複雜度爲14的字符,並每30天更改密碼。您能夠經過編輯組策略來更改值以知足您的須要。
您能夠根據須要更改單個密碼設置。
3.3.1管理員賬戶名
若是已決定管理自定義本地管理員賬戶,則必須在組策略中指定其名稱。
注:使用內置管理賬戶時不要進行配置,即便已重命名該賬戶。該賬戶由已知的SID自動檢測。請在使用自定義本地管理賬戶時進行配置。
若是您不想讓管理賬戶的計劃口令到期時間超過最大密碼期限,您能夠在GPO中執行:
配置完全部內容並在客戶端上刷新組策略後,您能夠查看計算機對象的屬性並查看新設置。
密碼以純文本存儲。失效日期存儲爲從1601年1月1日0小時到存儲的日期/時間之間通過的100納秒間隔數。時間始終存儲在活動目錄中的格林威治標準時間(GMT)中。若是要手動轉換,請使用如下命令:
w32tm/ntte<要轉換的數字>
還有一個圖形界面可用。在但願可以輕鬆檢索密碼的計算機上安裝程序時,只需選擇胖客戶端ui選項。
要運行的程序是C:\ProgramFiles\laps\admpwd.ui.exe。它將出如今菜單中,以下所示:
或者在Windows7上。
啓動界面,輸入客戶端名稱並單擊搜索。
您還可使用powershell獲取密碼。
Get-AdmPwdPassword-ComputerName<計算機名稱>
若是未被授予查看本地管理員密碼權限的用戶嘗試訪問該密碼,會發生什麼狀況?若是要訪問gui界面,則不會顯示密碼。
若是他們安裝了RSAT工具並運行「AD用戶和計算機」(aduc)來查看密碼,則密碼將顯示爲<notset>。
此信息不可見,由於擴展的權限已被刪除,只有某些我的和組被授予查看此信息的權限。
要手動重置密碼,只需單擊lapsui工具中的set按鈕。運行組策略刷新時,將重置密碼。
您還能夠爲未來計劃密碼過時時間。爲此,請在相應字段中輸入所需的到期日期/時間。
您還可使用powershell重置密碼。
Reset-AdmPwdPassword-ComputerName<computername>-WhenEffective<datetime>
此解決方案有多種日誌記錄選項,可用於故障排除。
5.1.1客戶記錄
CSE將全部事件記錄在本地計算機的應用程序事件日誌中。日誌消息僅限英語,但能夠本地化,或在必要時添加其餘語言。
記錄的事件量可經過如下注冊表註冊表註冊表項值進行配置:
hkey_local_machine\software\microsoft\windowsnt\currentversion\winlogon\gpextensions\{d76b9641-3288-4f75-942d-087de603e3ea}}\extensiondebuglevel
默認狀況下,此值不存在,必須添加。
可能值以下:
價值 |
意義 |
0 |
靜默模式;僅記錄Error 若是沒有發生Error,則不會記錄有關CSE活動的信息 這是默認值 |
1 |
記錄Error和警告 |
2 |
詳細模式,記錄全部內容 |
5.1.2事件標識
CSE報告的全部事件的事件源始終是「admpwd」。下表總結了事件日誌中可能發生的事件:
身份證件 |
嚴重程度 |
說明 |
評論 |
2 |
Error |
沒法從AD獲取計算機對象。Error%1 |
若是CSE沒法鏈接到AD中本地計算機的計算機賬戶,則會記錄此事件。 %1是函數返回的Error代碼的佔位符,該函數檢索本地計算機名,將其轉換爲DN並鏈接到由DN指定的對象 |
3 |
Error |
沒法獲取本地管理員賬戶。Error%1 |
若是CSE沒法鏈接到託管的本地管理員賬戶,則會記錄此事件。 %1是函數返回的Error代碼的佔位符,該函數檢測本地管理員賬戶的名稱並鏈接到該賬戶 |
4 |
Error |
沒法從AD中的計算機賬戶獲取密碼過時時間戳。Error%1。 |
CSE沒法讀取AD中計算機賬戶的MSMCSADMPwdexPirationTime值時記錄此事件 %1是函數返回的Error代碼的佔位符,該函數讀取屬性值並將該值轉換爲無符號的int64類型 |
5 |
Error |
根據本地密碼策略驗證新的本地管理密碼失敗。Error%1。 |
當針對本地密碼策略的密碼驗證失敗時,會記錄此事件。 |
5 |
信息 |
新本地管理密碼的驗證已經過。 |
根據本地密碼策略成功驗證密碼時記錄此事件 |
6 |
Error |
沒法重置本地管理員密碼。Error%1 |
若是CSE沒法重置託管本地管理員賬戶的密碼,則會記錄此事件。 %1是netusersetinfo()api返回的Error的佔位符 |
7 |
Error |
沒法將更改的密碼寫入AD。Error%1。 |
若是CSE沒法向AD報告新密碼和時間戳,則會記錄此事件。 %1是LDAPmod_s調用返回的Error代碼的佔位符 |
10 |
警告 |
計算機的密碼過時時間太長(%1天)。正在重置密碼。 |
若是CSE檢測到計算機的密碼過時時間超過了策略容許的時間,而且啓用了防止密碼過時時間過長的保護,則會記錄此事件 |
11 |
信息 |
如今尚未必要更改密碼。要更改的天數:%1。 |
此事件在CSE檢測到還沒有重置密碼時記錄 %1是24小時間隔數的佔位符,該間隔數在密碼重置前保持不變 |
12 |
信息 |
本地管理員密碼已更改。 |
CSE重置託管本地管理員賬戶的密碼後記錄此事件 |
13 |
信息 |
本地管理員密碼已報告給AD。 |
此事件在CSE向AD報告密碼和時間戳後記錄 |
14 |
信息 |
已成功完成 |
此事件在CSE執行全部必需任務並即將完成後記錄 |
15 |
信息 |
開始處理 |
當CSE開始處理時記錄此事件 |
16 |
信息 |
退出管理賬戶管理,退出 |
未啓用管理賬戶管理時記錄此事件 |
注意:一般,全部嚴重性爲「Error」的事件都被阻塞。當出現任何Error時,不執行其餘任務,CSE終止處理。
症狀:客戶端獲取事件ID7,在事件日誌中,「沒法將更改的密碼寫入AD。Error0x80070032」。
解決方案:客戶端不在託管OU中。將其移動到託管OU或運行powershell命令將計算機權限添加到客戶端所在的OU。
症狀:導入admpwd.ps模塊時,會出現錯誤「Import-Module:沒法加載或修改文件」file:///c:\windows\system32\windowspowershell\v1.0\modules\admpwd.ps\admpwd.ps.dll'或其依賴項之一。此程序集是由比當前加載的運行時新的運行時生成的,沒法加載。「
解決方案:您須要容許powershell加載.netframework4。要容許此操做,您須要更改powershell.exe.config以包含如下內容:
<?xmlversion="1.0"?>
<configuration>
<startupuseLegacyV2RuntimeActivationPolicy="true">
<supportedRuntimeversion="v4.0.30319"/>
<supportedRuntimeversion="v2.0.50727"/>
</startup>
</configuration>
症狀:已安裝全部內容,但客戶端上沒有更新密碼,事件日誌中也沒有記錄任何內容。
解決方案:還沒有使用應用於客戶端的組策略啓用CSE。將策略「啓用本地管理員密碼管理」設置爲「啓用」
症狀:運行架構更新後,新屬性不會顯示在計算機屬性中。
解決方案:若是架構更新的狀態成功,則可能遇到複製問題或延遲。在較大的環境中,此屬性填充可能須要一些時間來傳播。
症狀:還沒有明確授予權限的用戶仍能夠看到密碼。
解決方案:這一般是由於沒有從組和用戶中刪除「全部擴展權限」權限。檢查有關計算機上的有效權限。
使用powershellcmdlet能夠審覈成功查詢和讀取計算機的本地管理員密碼的用戶。若是這是一個新窗口,則可能須要運行Import-moduleAdmPwd.PS
Set-AdmPwdAuditing–OrgUnit:<nameofOUonwhichyouwanttosetuptheauditing>-AuditedPrincipals::<identificationofusers/groupswhoseaccesstopasswordshallbeaudited>
成功讀取密碼時,域控制器的安全日誌中將記錄4662事件。
您將注意到schemaIDGUID反映在事件屬性中。