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 成员以来经过的秒数。 NetUserAdd 和 NetUserSetInfo 函数将忽略此成员。
usri4_priv
类型:DWORD
分配给 usri4_name 成员的权限级别。 NetUserAdd 和 NetUserSetInfo 函数将忽略此成员。 此成员可以是以下值之一。 有关用户和组帐户权限的详细信息,请参阅 权限。
值 | 含义 |
---|---|
|
来宾 |
|
用户 |
|
管理员 |
usri4_home_dir
类型: LPWSTR
指向 Unicode 字符串的指针,该字符串指定 由usri4_name 成员指定的用户的主目录的路径。 字符串可以为 NULL。
usri4_comment
类型: LPWSTR
指向 Unicode 字符串的指针,该字符串包含要与用户帐户关联的注释。 字符串可以是 NULL 字符串,也可以在终止 null 字符之前具有任意数量的字符。
usri4_flags
类型:DWORD
此成员可以是以下一个或多个值。
请注意,设置用户帐户控制标志可能需要某些权限和控制访问权限。 有关详细信息,请参阅 NetUserSetInfo 函数的“备注”部分。
值 | 含义 |
---|---|
|
执行的登录脚本。 必须设置此值。 |
|
用户的帐户已禁用。 |
|
主目录是必需的。 忽略此值。 |
|
不需要密码。 |
|
用户无法更改密码。 |
|
帐户当前已锁定。可以调用 NetUserSetInfo 函数来清除此值并解锁以前锁定的帐户。 不能使用此值锁定以前解锁的帐户。 |
|
帐户的密码永远不会过期。 |
|
用户的密码存储在 Active Directory 中的可逆加密下。 |
|
将帐户标记为“敏感”;其他用户不能充当此用户帐户的代理人。 |
|
要求用户使用智能卡登录到用户帐户。 |
|
将此主体限制为仅使用数据加密标准 (DES) 密钥的加密类型。 |
|
此帐户不需要 Kerberos 预身份验证即可登录。 |
|
帐户已启用委派。 这是一个安全敏感设置;应严格控制启用了此选项的帐户。 此设置允许在帐户下运行的服务假定客户端的标识,并作为该用户向网络上的其他远程服务器进行身份验证。 |
|
用户的密码已过期。
Windows 2000: 此值将被忽略。 |
|
信任该帐户对 Kerberos 安全包外部的用户进行身份验证,并通过受约束的委派委托该用户。 这是一个安全敏感设置;应严格控制启用了此选项的帐户。 此设置允许在帐户下运行的服务断言客户端的标识,并作为该用户进行身份验证,以在网络上专门配置服务。
Windows XP/2000: 此值将被忽略。 |
以下值描述了帐户类型。 只能设置一个值。 不能使用 NetUserSetInfo 函数更改帐户类型。
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。
NetUserAdd 和 NetUserSetInfo 函数将忽略此成员。
此成员可以是以下一个或多个值。
值 | 含义 |
---|---|
|
打印操作员权限已启用。 |
|
通信操作员权限已启用。 |
|
已启用服务器操作员权限。 |
|
帐户操作员权限已启用。 |
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 以来经过的秒数。 NetUserAdd 和 NetUserSetInfo 函数会忽略此成员。
此成员在每个备份域控制器上单独维护, (域中的 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。 NetUserAdd 和 NetUserSetInfo 函数会忽略此元素。
对于服务应用程序,单位必须是以下值之一: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 表示该值未知。 对 NetUserAdd 和 NetUserSetInfo 函数的调用将忽略此成员。
此成员从主域控制器复制 (PDC) ;它还在域中的每个备份域控制器上维护 (BDC) 。 若要获取准确的值,必须查询域中的每个 BDC。 用户尝试使用错误密码登录的次数是检索到的最大值。
usri4_num_logons
类型:DWORD
用户成功登录到此帐户的次数。 值为 – 1 表示该值未知。 对 NetUserAdd 和 NetUserSetInfo 函数的调用将忽略此成员。
此成员在每个备份域控制器上单独维护, (域中的 BDC) 。 若要获取准确的值,必须查询域中的每个 BDC。 用户成功登录的次数是检索到的值的总和。
usri4_logon_server
类型: LPWSTR
指向 Unicode 字符串的指针,该字符串包含向其发送登录请求的服务器的名称。 服务器名称前面应有两个反斜杠 (\) 。 若要指示登录请求可由任何登录服务器处理,请为服务器名称指定星号 (\*) 。 NULL 字符串指示应将请求发送到域控制器。
对于 Windows 服务器, NetUserGetInfo 函数返回 \*。
NetUserAdd 和 NetUserSetInfo 函数将忽略此成员。
usri4_country_code
类型:DWORD
用户所选语言的国家/地区代码。
usri4_code_page
类型:DWORD
用户所选语言的代码页。
usri4_user_sid
类型: PSID
指向 SID 结构的指针,该结构包含唯一标识用户的 SID) (安全标识符。 NetUserAdd 和 NetUserSetInfo 函数将忽略此成员。
usri4_primary_group_id
类型:DWORD
用户的“主全局组”的相对标识符 (RID) 。 调用 NetUserAdd 函数时,必须在 WinNT.h) 中DOMAIN_GROUP_RID_USERS (定义此成员。 调用 NetUserSetInfo 时,此成员必须是注册用户的全局组的 RID。 有关详细信息,请参阅 已知 SID 和 SID 组件。
usri4_profile
类型: LPWSTR
指向 Unicode 字符串的指针,该字符串指定用户配置文件的路径。 此值可以是 NULL 字符串、本地绝对路径或 UNC 路径。
usri4_home_dir_drive
类型: LPWSTR
指向 Unicode 字符串的指针,该字符串指定分配给用户主目录以进行登录的驱动器号。
usri4_password_expired
类型:DWORD
密码过期信息。
如果密码未过期 (,NetUserGetInfo 函数返回零;如果密码) ,则返回非零。
调用 NetUserAdd 或 NetUserSetInfo 时,请在此成员中指定一个非零值,以通知用户在下次登录时必须更改其密码。 若要关闭此消息,请调用 NetUserSetInfo 并在此成员中指定零。 请注意,不能指定零来否定已过期密码的过期时间。
注解
USER_INFO_4结构可与 NetUserAdd、NetUserSetInfo 和 NetUserGetInfo 函数一起使用。
用户帐户名称限制为 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) |