seu SYSTEMTIME_NAME特权不存在

2024-09-28 03:12:50 发布

您现在位置:Python中文网/ 问答频道 /正文

从WindowsI系统上的用户帐户(7)更改为系统管理员帐户的时间。为了更改系统时间,在link中提到我们需要拥有SE_SYSTEMTIME_NAME特权。这是我的python脚本。在

import os,sys
import win32api
import win32security

priv_flags = win32security.TOKEN_ADJUST_PRIVILEGES | win32security.TOKEN_QUERY
hToken = win32security.OpenProcessToken (win32api.GetCurrentProcess (), priv_flags)
privilege_id = win32security.LookupPrivilegeValue (None, "SE_SYSTEMTIME_NAME")
win32security.AdjustTokenPrivileges (hToken, 0, [(privilege_id, win32security.SE_PRIVILEGE_ENABLED)])

win32api.SetSystemTime(2015,11,20,20,5,30,0,0)

但是当我执行这个脚本时,我得到了以下错误。这是回溯。在

^{pr2}$

为什么我不能获得特殊的特权。我做错什么了?在


Tags: nameimport脚本token系统时间帐户flags
1条回答
网友
1楼 · 发布于 2024-09-28 03:12:50

您需要的字符串是"SeSystemtimePrivilege"。在

在Windows头文件中,定义如下:

#DEFINE SE_SYSTEMTIME_NAME TEXT("SeSystemtimePrivilege")

请看这里:

理想情况下,Python库会将这些字符串定义为命名常量。这是Python中常用的模式。在

但是它仍然不起作用

我已经回答了这个问题,但还是不行。在

这是因为权限必须由管理员授予,如果没有权限,就不能直接打开,这将违反安全性。在

要授予特权,请使用GPEdit.msc公司或者SecPol.msc公司. 在GPEdit.msc公司,选择“计算机配置”->“Windows设置”->“安全设置”->“本地策略”->“用户权限分配”。在这里可以找到特权分配。在

您可以授予帐户或帐户所属的组“更改系统时间”权限。在

但这可能也不是你想要的。

如果您只希望计算机有正确的时间,请改为配置windows internet时间服务。在

控制面板->日期和时间->Internet时间选项卡。在

选中“与internet时间服务器同步”复选框如果没有选择服务器,请选择其中一个time.windows.com网站“或”pool.ntp.org". 在

这将自动设置每周一次的时间,这应该使您的计算机在几秒钟内正确的时间。如果您正在运行一个重要的服务器,您可能需要更频繁地设置它。为此,您需要编辑注册表。在

转到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\ NtpClient,并检查值SpecialPollInterval。这是几秒钟之内。在

默认值为604800,这是一周内的秒数。对于每日时间检查,请选择84600。除非你有非常特殊的要求,否则你只需要每天。在

相关问题 更多 >

    热门问题