DsServerRegisterSpnA 函式 (ntdsapi.h)
DsServerRegisterSpn 函式會為主機型服務組成兩個SPN。 這些名稱是以本機計算機的 DNS 和 NetBIOS 名稱為基礎。 函式會修改指定帳戶或與呼叫線程相關聯之帳戶的 servicePrincipalName 屬性。 函式會註冊或取消註冊 SPN。
主機型服務是一種服務實例,可提供與其主計算機識別的服務,與客戶端沒有服務實例執行所在主計算機的可複製服務區別。
語法
NTDSAPI DWORD DsServerRegisterSpnA(
[in] DS_SPN_WRITE_OP Operation,
[in] LPCSTR ServiceClass,
[in, optional] LPCSTR UserObjectDN
);
參數
[in] Operation
指定 DsServerRegisterSpn 應該執行的作業。 此參數可以有下列其中一個值。
DS_SPN_ADD_SPN_OP
將 SPN 新增至使用者或電腦帳戶。
DS_SPN_DELETE_SPN_OP
從帳戶中刪除指定的SPN。
DS_SPN_REPLACE_SPN_OP
拿掉目前在使用者或計算機帳戶上註冊的所有SPN,並將其取代為新的SPN。
[in] ServiceClass
指定服務類別的常數 Null 終止字串指標。 此參數可以是該服務唯一的任何字串;例如,ldap) 或 GUID 的字串形式,通訊協定名稱 (都能夠運作。
[in, optional] UserObjectDN
常數 Null 終止字串的指標,指定要寫入 SPN 的使用者或電腦帳戶對象的辨別名稱。 如果此參數為 NULL,DsServerRegisterSpn 會寫入與呼叫線程相關聯的主要或模擬用戶的帳戶物件。 如果線程是在 LocalSystem 帳戶的安全性內容中執行,函式會寫入本機電腦的帳戶物件。
傳回值
如果函式成功註冊一或多個SPN,它會傳回 ERROR_SUCCESS。 修改會寬鬆地執行,因此新增已經存在的值不會傳回錯誤。
備註
DsServerRegisterSpn 函式所組成的兩個 SPN 具有下列格式:
<ServiceClass>/<host>
在一個SPN中,主計算機是本機計算機的完整 DNS 名稱。 在其他SPN中,主機組件是本機計算機的NetBIOS名稱。
在大部分情況下, DsServerRegisterSpn 呼叫端必須具有網域系統管理員許可權,才能成功修改帳戶物件的 servicePrincipalName 屬性。 此規則的例外狀況是,如果呼叫線程是在 LocalSystem 帳戶下執行,則如果 UserObjectDN 參數為 NULL 或指定本機電腦帳戶的辨別名稱,則允許 DsServerRegisterSpn。
注意
ntdsapi.h 標頭會根據 UNICODE 預處理器常數的定義,將 DsServerRegisterSpn 定義為別名,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista |
最低支援的伺服器 | Windows Server 2008 |
目標平台 | Windows |
標頭 | ntdsapi.h |
程式庫 | Ntdsapi.lib |
Dll | Ntdsapi.dll |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應