setspn

setspn 命令行实用工具读取、修改和删除 Active Directory (AD) 服务帐户的服务主体名称 (SPN) 目录属性。 使用 SPN 查找用于运行服务的目标主体名称。 可以使用 setspn 查看当前 SPN、重置帐户的默认 SPN 以及添加或删除补充 SPN。 如果安装了 Active Directory 域服务(AD DS)服务器角色,则 Setspn 可用。 Setspn 必须通过提升的命令提示符运行。

语法

setspn <modifiers switch> <accountname> [-R] [-S] [-D] [-L] [-C] [-U] [-Q] [-X] [-P] [-F] [-T] [-?] [/?]

注释

<accountname> 可以是目标计算机或用户帐户的计算机名或域\n。 可以运行 setspn -A 来添加 SPN,但应该改用 setspn -S,因为它验证没有重复的 SPN。

参数

参数 说明
<accountname> 指定要为其配置 SPN 的所需 AD 帐户对象。 通常,SPN 是计算机的 NetBIOS 名称,也可以是包含计算机帐户的域。 但是,可以使用任何所需的 AD 对象名称。
-R 重置计算机主机名的默认 SPN 注册。
-S 在验证不存在重复项后,为计算机添加指定的 SPN。
-D 删除计算机的指定 SPN。
-L 列出当前为计算机注册的 SPN。
-C 指定 accountname 是计算机帐户。
-U 指定 accountname 是用户帐户。
-Q 查询任何现有 SPN。
-X 执行重复 SPN 的搜索。
-P 取消到控制台的进度,并在将输出重定向到文件或在无人参与的脚本中使用时使用。 在命令完成之前,不会显示任何输出。
-F 在林而不是域级别执行查询。
-T 在使用 -F 时对指定域(或林)执行查询。
-?
/?
显示命令行帮助信息。 如果在不使用此参数的情况下运行 setspn,它还会显示命令行帮助信息。

注释

-C-U 是独占的。 如果未指定,该工具会将 accountname 解释为计算机名称(如果此类计算机存在),如果不存在,则解释为用户名。

注解

查询模式修饰符可用于 -S 开关,以便指定在添加 SPN 之前应执行重复项检查的位置。

  • 可以多次指定 -T。 若要指示当前域或林,请使用 ""*

  • -Q 在每个目标域或林上执行。

  • -X 返回存在于所有目标中的重复项。 跨林不需要 SPN 是唯一的,但重复的 SPN 可能会导致跨林身份验证期间出现身份验证问题。

  • 必须使用指定为 accountname 参数的帐户基名称构造 SPN。 如果未满足此条件,目录服务将返回约束冲突错误。

你可能无权访问或修改某些帐户对象的此属性。 可以通过使用 Active Directory 用户和计算机中的Microsoft管理控制台(MMC)查看帐户对象的安全属性来确定访问权限。 还可以通过将验证的写入分配给所需的用户或组的服务主体名称权限来委托权限。

为计算机帐户识别的内置 SPN 为:

alerter         eventlog        netlogon             rpc            snmp
appmgmt         eventsystem     netman               rpclocator     spooler
browser         fax             nmagent              rpcss          tapisrv
cifs            http            oakley               rsvp           time
cisvc           ias             plugplay             samss          trksvr
clipsrv         iisadmin        policyagent          scardsvr       trkwks
dcom            messenger       protectedstorage     scesrv         ups
dhcp            msiserver       rasman               schedule       w3svc
dmserver        mcsvc           remoteaccess         scm            wins
dns             netdde          replicator           seclogon       www
dnscache        netddedsm

如果计算机具有主机 SPN,则计算机帐户可识别这些 SPN。 除非它们显式放置在对象上,否则主机 SPN 可以替代任何提到的 SPN。

Microsoft基于 Windows 的计算机使用时,SPN 不区分大小写。 任何类型的计算机系统都可以使用 SPN。 其中许多计算机系统(尤其是基于 UNIX 的系统)区分大小写,需要正确大小写才能正常运行。 应注意使用正确的情况,尤其是在非基于 Windows 的计算机使用 SPN 时。

例子

若要列出帐户的所有已注册 SPN,请键入:

setspn -L <accountname>

若要重置计算机帐户的 SPN,请键入:

setspn -R <accountname>

若要为用户帐户 User01注册 SPN http/MyServer,请键入:

setspn -U -S http/MyServer User01

若要将新的 SPN 添加到没有设置的域帐户,请键入:

setspn -S http/myserver.mydomain.com myDomain\myServer

若要从帐户中删除 SPN,请键入:

setspn -D http/myserver.mydomain.com myDomain\myServer

若要查询域中的所有重复 SPN 和 contoso 域,请键入:

setspn -T * -T contoso -X

若要查找与 MyServer 关联的所有 SPNcontoso 域林中注册,请键入:

setspn -T contoso -F -Q */MyServer

另请参阅