USER_INFO_4 结构 (lmaccess.h)

USER_INFO_4结构包含有关用户帐户的信息,包括帐户名称、密码数据、特权级别、用户主目录的路径、安全标识符 (SID) 以及其他与用户相关的网络统计信息。

语法

typedef struct _USER_INFO_4 {
  LPWSTR usri4_name;
  LPWSTR usri4_password;
  DWORD  usri4_password_age;
  DWORD  usri4_priv;
  LPWSTR usri4_home_dir;
  LPWSTR usri4_comment;
  DWORD  usri4_flags;
  LPWSTR usri4_script_path;
  DWORD  usri4_auth_flags;
  LPWSTR usri4_full_name;
  LPWSTR usri4_usr_comment;
  LPWSTR usri4_parms;
  LPWSTR usri4_workstations;
  DWORD  usri4_last_logon;
  DWORD  usri4_last_logoff;
  DWORD  usri4_acct_expires;
  DWORD  usri4_max_storage;
  DWORD  usri4_units_per_week;
  PBYTE  usri4_logon_hours;
  DWORD  usri4_bad_pw_count;
  DWORD  usri4_num_logons;
  LPWSTR usri4_logon_server;
  DWORD  usri4_country_code;
  DWORD  usri4_code_page;
  PSID   usri4_user_sid;
  DWORD  usri4_primary_group_id;
  LPWSTR usri4_profile;
  LPWSTR usri4_home_dir_drive;
  DWORD  usri4_password_expired;
} USER_INFO_4, *PUSER_INFO_4, *LPUSER_INFO_4;

成员

usri4_name

类型: LPWSTR

指向 Unicode 字符串的指针,该字符串指定用户帐户的名称。 对于 NetUserSetInfo 函数,忽略此成员。

usri4_password

类型: LPWSTR

指向 Unicode 字符串的指针,该字符串指定 由 usri4_name 成员标识的用户的密码。 长度不能超过 PWLEN 字节。 NetUserGetInfo 函数返回 NULL 指针以维护密码安全性。

按照惯例,密码长度限制为LM20_PWLEN个字符。

usri4_password_age

类型:DWORD

自上次更改 usri4_password 成员以来经过的秒数。 NetUserAddNetUserSetInfo 函数将忽略此成员。

usri4_priv

类型:DWORD

分配给 usri4_name 成员的权限级别。 NetUserAddNetUserSetInfo 函数将忽略此成员。 此成员可以是以下值之一。 有关用户和组帐户权限的详细信息,请参阅 权限

含义
USER_PRIV_GUEST
来宾
USER_PRIV_USER
用户
USER_PRIV_ADMIN
管理员

usri4_home_dir

类型: LPWSTR

指向 Unicode 字符串的指针,该字符串指定 由usri4_name 成员指定的用户的主目录的路径。 字符串可以为 NULL

usri4_comment

类型: LPWSTR

指向 Unicode 字符串的指针,该字符串包含要与用户帐户关联的注释。 字符串可以是 NULL 字符串,也可以在终止 null 字符之前具有任意数量的字符。

usri4_flags

类型:DWORD

此成员可以是以下一个或多个值。

请注意,设置用户帐户控制标志可能需要某些权限和控制访问权限。 有关详细信息,请参阅 NetUserSetInfo 函数的“备注”部分。

含义
UF_SCRIPT
执行的登录脚本。 必须设置此值。
UF_ACCOUNTDISABLE
用户的帐户已禁用。
UF_HOMEDIR_REQUIRED
主目录是必需的。 忽略此值。
UF_PASSWD_NOTREQD
不需要密码。
UF_PASSWD_CANT_CHANGE
用户无法更改密码。
UF_LOCKOUT
帐户当前已锁定。可以调用 NetUserSetInfo 函数来清除此值并解锁以前锁定的帐户。 不能使用此值锁定以前解锁的帐户。
UF_DONT_EXPIRE_PASSWD
帐户的密码永远不会过期。
UF_ENCRYPTED_TEXT_PASSWORD_ALLOWED
用户的密码存储在 Active Directory 中的可逆加密下。
UF_NOT_DELEGATED
将帐户标记为“敏感”;其他用户不能充当此用户帐户的代理人。
UF_SMARTCARD_REQUIRED
要求用户使用智能卡登录到用户帐户。
UF_USE_DES_KEY_ONLY
将此主体限制为仅使用数据加密标准 (DES) 密钥的加密类型。
UF_DONT_REQUIRE_PREAUTH
此帐户不需要 Kerberos 预身份验证即可登录。
UF_TRUSTED_FOR_DELEGATION
帐户已启用委派。 这是一个安全敏感设置;应严格控制启用了此选项的帐户。 此设置允许在帐户下运行的服务假定客户端的标识,并作为该用户向网络上的其他远程服务器进行身份验证。
UF_PASSWORD_EXPIRED
用户的密码已过期。

Windows 2000: 此值将被忽略。

UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION
信任该帐户对 Kerberos 安全包外部的用户进行身份验证,并通过受约束的委派委托该用户。 这是一个安全敏感设置;应严格控制启用了此选项的帐户。 此设置允许在帐户下运行的服务断言客户端的标识,并作为该用户进行身份验证,以在网络上专门配置服务。

Windows XP/2000: 此值将被忽略。

 

以下值描述了帐户类型。 只能设置一个值。 不能使用 NetUserSetInfo 函数更改帐户类型。

含义
UF_NORMAL_ACCOUNT
这是表示典型用户的默认帐户类型。
UF_TEMP_DUPLICATE_ACCOUNT
这是主帐户位于另一个域中的用户的帐户。 此帐户向用户提供对此域的访问权限,但不允许用户访问任何信任此域的域。 用户管理器将此帐户类型称为本地用户帐户。
UF_WORKSTATION_TRUST_ACCOUNT
这是属于此域的计算机的计算机帐户。
UF_SERVER_TRUST_ACCOUNT
这是属于此域的备份域控制器的计算机帐户。
UF_INTERDOMAIN_TRUST_ACCOUNT
这是信任其他域的域的帐户的允许。

usri4_script_path

类型: LPWSTR

指向 Unicode 字符串的指针,该字符串指定用户的登录脚本文件的路径。 脚本文件可以是 。CMD 文件、.EXE 文件或 .BAT 文件。 字符串也可以为 NULL

usri4_auth_flags

类型:DWORD

用户的操作员权限。

对于 NetUserGetInfo 函数,根据本地组成员身份返回相应的值。 如果用户是打印操作员的成员,则设置AF_OP_PRINT。 如果用户是服务器操作员的成员,则设置AF_OP_SERVER。 如果用户是帐户操作员的成员,则设置AF_OP_ACCOUNTS。 永远不会设置AF_OP_COMM。

NetUserAddNetUserSetInfo 函数将忽略此成员。

此成员可以是以下一个或多个值。

含义
AF_OP_PRINT
打印操作员权限已启用。
AF_OP_COMM
通信操作员权限已启用。
AF_OP_SERVER
已启用服务器操作员权限。
AF_OP_ACCOUNTS
帐户操作员权限已启用。

usri4_full_name

类型: LPWSTR

指向包含用户全名的 Unicode 字符串的指针。 此字符串可以是 NULL 字符串,也可以在终止 null 字符之前具有任意数量的字符。

usri4_usr_comment

类型: LPWSTR

指向包含用户注释的 Unicode 字符串的指针。 此字符串可以是 NULL 字符串,也可以在终止 null 字符之前具有任意数量的字符。

usri4_parms

类型: LPWSTR

指向保留供应用程序使用的 Unicode 字符串的指针。 此字符串可以是 NULL 字符串,也可以在终止 null 字符之前具有任意数量的字符。 Microsoft 产品使用此成员来存储用户配置信息。 请勿修改此信息。

usri4_workstations

类型: LPWSTR

重要

不应再使用 usri4_workstations。 相反,可以通过配置用户权限分配设置来控制对工作站的登录访问, (允许本地登录拒绝本地登录,或 允许通过远程桌面服务登录拒绝通过远程桌面服务 登录) 。

指向 Unicode 字符串的指针,该字符串包含用户可以从中登录的工作站的名称。 可以指定多达 8 个工作站:名称必须用逗号分隔。 如果不想限制工作站的数量,请使用 NULL 字符串。 若要禁用从所有工作站到此帐户的登录,请在 usri4_flags 成员中设置 UF_ACCOUNTDISABLE 值。

usri4_last_logon

类型:DWORD

上次登录的日期和时间。 此值存储为自 1970 年 1 月 1 日 GMT 00:00:00 以来经过的秒数。 NetUserAddNetUserSetInfo 函数会忽略此成员。

此成员在每个备份域控制器上单独维护, (域中的 BDC) 。 若要获取准确的值,必须查询域中的每个 BDC。 上次登录发生在由最大检索值指示的时间。

usri4_last_logoff

类型:DWORD

当前未使用此成员。

上次注销的日期和时间。 此值存储为自 1970 年 1 月 1 日 GMT 00:00:00 以来经过的秒数。 值为零表示上次注销时间未知。

此成员在每个备份域控制器上单独维护, (域中的 BDC) 。 若要获取准确的值,必须查询域中的每个 BDC。 上次注销发生在由最大检索值指示的时间。

usri4_acct_expires

类型:DWORD

帐户过期的日期和时间。 此值存储为自 1970 年 1 月 1 日 GMT 00:00:00 以来经过的秒数。 值为 TIMEQ_FOREVER 表示帐户永不过期。

usri4_max_storage

类型:DWORD

用户可以使用的最大磁盘空间量。 指定USER_MAXSTORAGE_UNLIMITED以使用所有可用磁盘空间。

usri4_units_per_week

类型:DWORD

将周划分为的等长时间单位的数目。 此值是计算 usri4_logon_hours 成员中位字符串的长度所必需的。

对于 LAN Manager 2.0,此值必须UNITS_PER_WEEK。 NetUserAddNetUserSetInfo 函数会忽略此元素。

对于服务应用程序,单位必须是以下值之一:SAM_DAYS_PER_WEEK、SAM_HOURS_PER_WEEK或SAM_MINUTES_PER_WEEK。

usri4_logon_hours

类型: PBYTE

指向 21 字节的指针 (168 位) 位字符串,指定用户可以登录的时间。 每个位表示格林威治标准时间 (GMT) 一周中的唯一小时。

第一个位 (位 0,单词 0) 是星期日,0:00 到 0:59;第二位 (位 1,单词 0) 为星期日,1:00 到 1:59;等等。 请注意,word 0 中的位 0 表示 0:00 到 0:59 的星期日,前提是处于 GMT 时区。 在所有其他情况下,必须根据时区偏移量调整位 (例如,太平洋标准时间) GMT 减 8 小时。

调用 NetUserAdd 函数时,在此成员中指定 NULL 指针以指示没有时间限制。 在调用 NetUserSetInfo 函数时指定 NULL 指针,以指示不会对用户可以登录的时间进行更改。

usri4_bad_pw_count

类型:DWORD

用户尝试使用错误密码登录帐户的次数。 值为 – 1 表示该值未知。 对 NetUserAddNetUserSetInfo 函数的调用将忽略此成员。

此成员从主域控制器复制 (PDC) ;它还在域中的每个备份域控制器上维护 (BDC) 。 若要获取准确的值,必须查询域中的每个 BDC。 用户尝试使用错误密码登录的次数是检索到的最大值。

usri4_num_logons

类型:DWORD

用户成功登录到此帐户的次数。 值为 – 1 表示该值未知。 对 NetUserAddNetUserSetInfo 函数的调用将忽略此成员。

此成员在每个备份域控制器上单独维护, (域中的 BDC) 。 若要获取准确的值,必须查询域中的每个 BDC。 用户成功登录的次数是检索到的值的总和。

usri4_logon_server

类型: LPWSTR

指向 Unicode 字符串的指针,该字符串包含向其发送登录请求的服务器的名称。 服务器名称前面应有两个反斜杠 (\) 。 若要指示登录请求可由任何登录服务器处理,请为服务器名称指定星号 (\*) 。 NULL 字符串指示应将请求发送到域控制器。

对于 Windows 服务器, NetUserGetInfo 函数返回 \*。

NetUserAddNetUserSetInfo 函数将忽略此成员。

usri4_country_code

类型:DWORD

用户所选语言的国家/地区代码。

usri4_code_page

类型:DWORD

用户所选语言的代码页。

usri4_user_sid

类型: PSID

指向 SID 结构的指针,该结构包含唯一标识用户的 SID) (安全标识符。 NetUserAddNetUserSetInfo 函数将忽略此成员。

usri4_primary_group_id

类型:DWORD

用户的“主全局组”的相对标识符 (RID) 。 调用 NetUserAdd 函数时,必须在 WinNT.h) 中DOMAIN_GROUP_RID_USERS (定义此成员。 调用 NetUserSetInfo 时,此成员必须是注册用户的全局组的 RID。 有关详细信息,请参阅 已知 SIDSID 组件

usri4_profile

类型: LPWSTR

指向 Unicode 字符串的指针,该字符串指定用户配置文件的路径。 此值可以是 NULL 字符串、本地绝对路径或 UNC 路径。

usri4_home_dir_drive

类型: LPWSTR

指向 Unicode 字符串的指针,该字符串指定分配给用户主目录以进行登录的驱动器号。

usri4_password_expired

类型:DWORD

密码过期信息。

如果密码未过期 (,NetUserGetInfo 函数返回零;如果密码) ,则返回非零。

调用 NetUserAddNetUserSetInfo 时,请在此成员中指定一个非零值,以通知用户在下次登录时必须更改其密码。 若要关闭此消息,请调用 NetUserSetInfo 并在此成员中指定零。 请注意,不能指定零来否定已过期密码的过期时间。

注解

USER_INFO_4结构可与 NetUserAddNetUserSetInfoNetUserGetInfo 函数一起使用。

用户帐户名称限制为 20 个字符,组名限制为 256 个字符。 此外,帐户名称不能以句点结尾,并且不能包含逗号或以下任何可打印字符:“,/,,,[,],:,|, <,,, >+,=,;,?,*。 名称也不能包含范围 1-31 中的字符,这些字符不可打印。

请注意, USER_INFO_4 结构取代了 Windows XP 及更高版本上的 USER_INFO_3 结构。 建议应用程序在 Windows XP 及更高版本上使用 USER_INFO_4 结构,而不是 USER_INFO_3 结构与上述函数。

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
标头 lmaccess.h (包括 Lm.h)

另请参阅

NetUserAdd

NetUserEnum

NetUserGetInfo

NetUserSetInfo

网络管理概述

网络管理结构

SID

USER_INFO_3

用户函数