chr*_*lly 0 windows batch-file
我有一些软件,要求在某个程序开始之前将 Windows 系统时间与物理原子钟* 同步。
timedate.cpl
现在,用户在开始之前会收到修改时间的说明。
我想显示一个小时和分钟输入框,并允许用户在时间匹配时单击按钮,就像开始倒计时一样。这使得他们在点击我的按钮后可以更轻松地提取时间。为了实现这一点,我想运行这样的系统命令:
runas /noprofile /user:Administrator "time 12:34"
Run Code Online (Sandbox Code Playgroud)
但是,当我测试它时,它会要求我输入密码。
我想知道是否有某种方法可以让我的程序有权设置时间而不需要每次都输入密码?
笔记:
* 原子钟是合适的,因为时间在很长一段时间内不会漂移太多。精度不是一个因素。到目前为止,操作员实际上在开始步骤之前将时间写在一张纸上。
您不指定这些计算机是否属于 Active Directory 域。我假设他们不是。
\n您没有指定您正在运行的 Windows 版本。Vista 之前和之后的灾难是巨大的。它实际上是一个完全不同的操作系统。你不能只说“Windows”,因为 Windows 在其 20 多年的历史中已经发生了很大的变化。我假设是 Vista 或更高版本。
\n在上面给出的示例中,您尝试以管理员身份运行程序,为此,您必须提供管理员密码。Windows 中没有与 sudo 直接等效的命令。目前还没有一种好的方法可以将管理员凭据嵌入到脚本中,或者以某种方式对其进行混淆,而不会产生将密码暴露给标准用户的危险风险。
\n无论如何,您不授予程序权限或访问权。您向执行程序的用户授予权限。这些程序在该用户的安全上下文中执行。这些程序从执行它们的用户那里继承了安全权限。
\n您可以使用组策略或本地计算机策略 (secpol.msc) 将此权限委派给用户或组。您需要编辑计算机配置\xe2\x87\x92 Windows 设置\xe2\x87\x92本地策略\xe2\x87\x92用户权限分配\xe2\x87\x92更改系统时间设置。
\n权限的技术名称是SeSystemtimePrivilege
用户权限。
但等等还有更多!更改系统时间是一项特权操作,用户可以恶意或意外地更改系统时间,从而造成严重破坏。因此,我认为此时您无法以标准用户身份更改系统时间。
\nNTRights.exe -u JoeBlow +r SeSystemtimePrivilege
2003 资源工具包中的 基本上与将用户添加到 secpol.msc 中的“更改系统时间”列表中执行相同的操作,但您仍然会收到错误A required privilege is not held by the client
。即使您禁用 UAC,您仍然会收到错误消息。请记住,用户的安全令牌仅在登录时计算一次,因此如果您更改该用户的安全令牌,他们需要注销并重新登录才能使更改生效。但这并不重要 - 它仍然不允许您在不提升的情况下更改系统时间。
此时,我会考虑做一些事情,比如编写一个 Windows 服务或一个作为本地系统运行的计划任务,标准用户可以通过某种方式与之交互,从而操纵系统时间。很明显,Windows 不希望标准用户乱搞系统时间。
\n 归档时间: |
|
查看次数: |
5264 次 |
最近记录: |