缺少使用 SetSystemTime 的权限
Permissions missing to use SetSystemTime
我正在尝试使用 SetSystemTime(来自 Kernel32.dll)或使用来自 cmd.exe 的 TIME
。
都失败了,TIME
给我错误
A required privilege is not held by the client.
我已经使用 gpedit.msc
将 local/Users 和用户本身添加到 security settings/Local Policies/Change the system time
。
我尝试使用 AdjustTokenPrivileges( SeSystemtimePrivilege ...)
启用权限,但出现 GrandPrivilege failed
错误。
我使用的是 Win7 x32 专业版。
这是具有管理员权限的标准用户,但我试图在没有 "Run as Administrator"
的情况下更改时间,因为调用 SetSystemTime
函数的程序不应该以 "Run as Administrator"
。
我认为 Change the system time
政策的目的正是针对这种情况,并且在 MSDN
中也有描述
不知所措
事实证明,虽然 SeSystemTimePrivilege
不会为非管理员触发 UAC,但它 是 仍然从管理员时生成的受限令牌中删除登录。结果是您可以使用组策略将 SeSystemTimePrivilege
分配给非管理用户,但该策略对管理用户没有影响。
如果管理用户 运行 时程序需要提升是可以接受的,您可以使用 highestAvailable
清单设置。这样,如果用户是管理员,程序只会要求提升权限。或者,您可以将程序设计为仅在实际需要设置时间时才请求提升。
如果提升提示不可接受,您将必须安装系统服务以代表您的应用程序更改系统时间。
我正在尝试使用 SetSystemTime(来自 Kernel32.dll)或使用来自 cmd.exe 的 TIME
。
都失败了,TIME
给我错误
A required privilege is not held by the client.
我已经使用 gpedit.msc
将 local/Users 和用户本身添加到 security settings/Local Policies/Change the system time
。
我尝试使用 AdjustTokenPrivileges( SeSystemtimePrivilege ...)
启用权限,但出现 GrandPrivilege failed
错误。
我使用的是 Win7 x32 专业版。
这是具有管理员权限的标准用户,但我试图在没有 "Run as Administrator"
的情况下更改时间,因为调用 SetSystemTime
函数的程序不应该以 "Run as Administrator"
。
我认为 Change the system time
政策的目的正是针对这种情况,并且在 MSDN
不知所措
事实证明,虽然 SeSystemTimePrivilege
不会为非管理员触发 UAC,但它 是 仍然从管理员时生成的受限令牌中删除登录。结果是您可以使用组策略将 SeSystemTimePrivilege
分配给非管理用户,但该策略对管理用户没有影响。
如果管理用户 运行 时程序需要提升是可以接受的,您可以使用 highestAvailable
清单设置。这样,如果用户是管理员,程序只会要求提升权限。或者,您可以将程序设计为仅在实际需要设置时间时才请求提升。
如果提升提示不可接受,您将必须安装系统服务以代表您的应用程序更改系统时间。