USER_INFO_2 结构 (lmaccess.h)
USER_INFO_2结构包含有关用户帐户的信息,包括帐户名称、密码数据、特权级别、用户主目录的路径以及其他与用户相关的网络统计信息。
语法
typedef struct _USER_INFO_2 {
LPWSTR usri2_name;
LPWSTR usri2_password;
DWORD usri2_password_age;
DWORD usri2_priv;
LPWSTR usri2_home_dir;
LPWSTR usri2_comment;
DWORD usri2_flags;
LPWSTR usri2_script_path;
DWORD usri2_auth_flags;
LPWSTR usri2_full_name;
LPWSTR usri2_usr_comment;
LPWSTR usri2_parms;
LPWSTR usri2_workstations;
DWORD usri2_last_logon;
DWORD usri2_last_logoff;
DWORD usri2_acct_expires;
DWORD usri2_max_storage;
DWORD usri2_units_per_week;
PBYTE usri2_logon_hours;
DWORD usri2_bad_pw_count;
DWORD usri2_num_logons;
LPWSTR usri2_logon_server;
DWORD usri2_country_code;
DWORD usri2_code_page;
} USER_INFO_2, *PUSER_INFO_2, *LPUSER_INFO_2;
成员
usri2_name
类型: LPWSTR
指向 Unicode 字符串的指针,该字符串指定用户帐户的名称。 对 NetUserSetInfo 函数的调用将忽略此成员。 有关更多信息,请参见下面的“备注”部分。
usri2_password
类型: LPWSTR
指向 Unicode 字符串的指针,该字符串指定 由 usri2_name 成员标识的用户的密码。 长度不能超过 PWLEN 字节。 NetUserEnum 和 NetUserGetInfo 函数返回 NULL 指针以维护密码安全性。
按照惯例,密码长度限制为LM20_PWLEN个字符。
usri2_password_age
类型:DWORD
自上次更改 usri2_password 成员以来经过的秒数。 NetUserAdd 和 NetUserSetInfo 函数将忽略此成员。
usri2_priv
类型:DWORD
分配给 usri2_name 成员的权限级别。 对于对 NetUserAdd 函数的调用,必须USER_PRIV_USER此成员。 对于 NetUserSetInfo 函数,此成员必须是 NetUserGetInfo 函数或 NetUserEnum 函数返回的值。 此成员可以是以下值之一。 有关用户和组帐户权限的详细信息,请参阅 权限。
值 | 含义 |
---|---|
|
来宾 |
|
用户 |
|
管理员 |
usri2_home_dir
类型: LPWSTR
指向 Unicode 字符串的指针,该字符串指定 由 usri2_name 成员指定的用户的主目录的路径。 字符串可以为 NULL。
usri2_comment
类型: LPWSTR
指向 Unicode 字符串的指针,该字符串包含要与用户帐户关联的注释。 字符串可以是 NULL 字符串,也可以在终止 null 字符之前具有任意数量的字符。
usri2_flags
类型:DWORD
此成员可以是以下一个或多个值。
请注意,设置用户帐户控制标志可能需要某些权限和控制访问权限。 有关详细信息,请参阅 NetUserSetInfo 函数的“备注”部分。
值 | 含义 |
---|---|
|
执行的登录脚本。 必须设置此值。 |
|
用户的帐户已禁用。 |
|
主目录是必需的。 忽略此值。 |
|
不需要密码。 |
|
用户无法更改密码。 |
|
帐户当前已锁定。可以调用 NetUserSetInfo 函数来清除此值并解锁以前锁定的帐户。 不能使用此值锁定以前解锁的帐户。 |
|
帐户的密码永远不会过期。 |
|
用户的密码存储在 Active Directory 中的可逆加密下。 |
|
将帐户标记为“敏感”;其他用户不能充当此用户帐户的代理人。 |
|
要求用户使用智能卡登录到用户帐户。 |
|
将此主体限制为仅使用数据加密标准 (DES) 密钥的加密类型。 |
|
此帐户不需要 Kerberos 预身份验证即可登录。 |
|
帐户已启用委派。 这是一个安全敏感设置;应严格控制启用了此选项的帐户。 此设置允许在帐户下运行的服务假定客户端的标识,并作为该用户向网络上的其他远程服务器进行身份验证。 |
|
用户的密码已过期。
Windows 2000: 不支持此值。 |
|
信任该帐户对 Kerberos 安全包外部的用户进行身份验证,并通过受约束的委派委托该用户。 这是一个安全敏感设置;应严格控制启用了此选项的帐户。 此设置允许在帐户下运行的服务断言客户端的标识,并作为该用户进行身份验证,以在网络上专门配置服务。
Windows XP/2000: 不支持此值。 |
以下值描述了帐户类型。 只能设置一个值。 不能使用 NetUserSetInfo 函数更改帐户类型。
usri2_script_path
类型: LPWSTR
指向 Unicode 字符串的指针,该字符串指定用户的登录脚本文件的路径。 脚本文件可以是 。CMD 文件、.EXE 文件或 .BAT 文件。 字符串也可以为 NULL。
usri2_auth_flags
类型:DWORD
用户的操作员特权。
调用 NetUserGetInfo 和 NetUserEnum 函数会基于用户的本地组成员身份返回值。 如果用户是打印操作员的成员,则设置AF_OP_PRINT。 如果用户是服务器操作员的成员,则设置AF_OP_SERVER。 如果用户是帐户操作员的成员,则设置AF_OP_ACCOUNTS。 从不设置AF_OP_COMM。 有关用户和组帐户权限的详细信息,请参阅 特权。
存在以下限制:
- 调用 NetUserAdd 函数时,此成员必须为零。
- 调用 NetUserSetInfo 函数时,此成员必须是调用 NetUserGetInfo 或 NetUserEnum 返回的值。
值 | 含义 |
---|---|
|
打印操作员特权已启用。 |
|
通信操作员特权已启用。 |
|
已启用服务器操作员特权。 |
|
帐户操作员特权已启用。 |
usri2_full_name
类型: LPWSTR
指向包含用户全名的 Unicode 字符串的指针。 此字符串可以是 NULL 字符串,也可以在终止 null 字符之前具有任意数量的字符。
usri2_usr_comment
类型: LPWSTR
指向包含用户注释的 Unicode 字符串的指针。 此字符串可以是 NULL 字符串,也可以在终止 null 字符之前具有任意数量的字符。
usri2_parms
类型: LPWSTR
指向保留供应用程序使用的 Unicode 字符串的指针。 此字符串可以是 NULL 字符串,也可以在终止 null 字符之前具有任意数量的字符。 Microsoft 产品使用此成员来存储用户配置信息。 请勿修改此信息。
usri2_workstations
类型: LPWSTR
重要
不应再使用 usri2_workstations。 相反,可以通过配置用户权限分配设置 (“允许本地登录 ”和 “拒绝本地登录”或 “允许通过远程桌面服务登录 ”和 “拒绝通过远程桌面服务登录 ”) 来控制对工作站的登录访问。
指向 Unicode 字符串的指针,该字符串包含用户可以从中登录的工作站的名称。 可以指定多达 8 个工作站;名称必须用逗号分隔。 NULL 字符串指示没有限制。 若要禁用从所有工作站到此帐户的登录,请在 usri2_flags 成员中设置 UF_ACCOUNTDISABLE 值。
usri2_last_logon
类型:DWORD
上次登录的日期和时间。 此值存储为自格林尼治标准时间 1970 年 1 月 1 日 00:00:00 以来经过的秒数。 NetUserAdd 和 NetUserSetInfo 函数会忽略此成员。
此成员在域中的 BDC) 的每个备份域控制器 (单独维护。 若要获取准确的值,必须查询域中的每个 BDC。 上次登录发生在最大检索值指示的时间。
usri2_last_logoff
类型:DWORD
当前未使用此成员。
指示上次注销的时间。 此值存储为自格林尼治标准时间 1970 年 1 月 1 日 00:00:00 以来经过的秒数。 值为零表示上次注销时间未知。
此成员在域中的 BDC) 的每个备份域控制器 (单独维护。 若要获取准确的值,必须查询域中的每个 BDC。 上次注销发生在最大检索值指示的时间。
usri2_acct_expires
类型:DWORD
帐户过期的日期和时间。 此值存储为自格林尼治标准时间 1970 年 1 月 1 日 00:00:00 以来经过的秒数。 值为 TIMEQ_FOREVER 表示帐户永不过期。
usri2_max_storage
类型:DWORD
用户可以使用的最大磁盘空间量。 指定USER_MAXSTORAGE_UNLIMITED以使用所有可用磁盘空间。
usri2_units_per_week
类型:DWORD
将周划分为的等长时间单位的数目。 此值是计算 usri2_logon_hours 成员中位字符串的长度所必需的。
必须为 LAN Manager 2.0 UNITS_PER_WEEK此值。 NetUserAdd 和 NetUserSetInfo 函数会忽略此元素。
对于服务应用程序,单位必须为以下值之一:SAM_DAYS_PER_WEEK、SAM_HOURS_PER_WEEK或SAM_MINUTES_PER_WEEK。
usri2_logon_hours
类型: PBYTE
指向 21 字节 (168 位) 位字符串的指针,该字符串指定用户可以登录的时间。 每个位表示一周中唯一的一小时,格林威治标准时间 (GMT) 。
第一个位 (位 0,字 0) 是星期日,0:00 到 0:59;第二位 (位 1,字 0) 为星期日,1:00 到 1:59;等等。 请注意,Word 0 中的位 0 仅当处于 GMT 时区时表示星期日从 0:00 到 0:59。 在所有其他情况下,必须根据时区偏移量调整位 (例如,太平洋标准时间) GMT 减去 8 小时。
调用 NetUserAdd 函数时,在此成员中指定 NULL 指针,以指示无时间限制。 在调用 NetUserSetInfo 函数时指定 NULL 指针,以指示不对用户可以登录的时间进行更改。
usri2_bad_pw_count
类型:DWORD
用户尝试使用错误密码登录帐户的次数。 值为 – 1 表示该值未知。 对 NetUserAdd 和 NetUserSetInfo 函数的调用将忽略此成员。
此成员从主域控制器复制, (PDC) ;它还保留在域中 (BDC) 的每个备份域控制器上。 若要获取准确的值,必须查询域中的每个 BDC。 用户尝试使用错误密码登录的次数是检索到的最大值。
usri2_num_logons
类型:DWORD
用户成功登录到此帐户的次数。 值为 – 1 表示该值未知。 对 NetUserAdd 和 NetUserSetInfo 函数的调用将忽略此成员。
此成员在域中的 BDC) 的每个备份域控制器 (单独维护。 若要获取准确的值,必须查询域中的每个 BDC。 用户成功登录的次数是检索到的值的总和。
usri2_logon_server
类型: LPWSTR
指向 Unicode 字符串的指针,该字符串包含向其发送登录请求的服务器的名称。 服务器名称前面应有两个反斜杠 (\) 。 若要指示登录请求可由任何登录服务器处理,请为服务器名称指定星号 (\*) 。 NULL 字符串指示应将请求发送到域控制器。
对于 Windows 服务器, NetUserGetInfo 和 NetUserEnum 返回 \*。 NetUserAdd 和 NetUserSetInfo 函数将忽略此成员。
usri2_country_code
类型:DWORD
用户所选语言的国家/地区代码。
usri2_code_page
类型:DWORD
用户所选语言的代码页。
注解
有关用户和组帐户权限的详细信息,请参阅 权限。
用户帐户名称限制为 20 个字符,组名限制为 256 个字符。 此外,帐户名称不能以句点结尾,并且不能包含逗号或以下任何可打印字符:“,/,,,[,],:,|, <,,, >+,=,;,?,*。 名称也不能包含范围 1-31 中的字符,这些字符不可打印。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
标头 | lmaccess.h (包括 Lm.h) |