runas 无需输入密码

runas 无需输入密码

在域中的 Windows 服务器上,我有一个从计划任务运行的脚本。

我希望这个脚本在用户帐户下运行mydomain\peter。如果您知道 Peter 的密码,那么使用计划任务执行此操作很简单。一旦完成,当 Peter 决定(或必须)更改密码时,脚本就会停止。

在 Linux 上,cron可以使用任何用户帐户运行作业,而无需知道相应的密码。并且root可以代表另一个用户运行任何操作(使用susudo)。

有什么方法可以在 Windows 上做到这一点吗?

我需要一台旧的 Windows 2003 服务器,但我可以从另一台计算机运行它。

答案1

不过,这正是服务帐户的用例。为什么不为这个计划任务设置一个域用户服务帐户呢?

无论如何,这也许是你应该做的,而不是以真实用户身份运行计划任务或脚本。你可以禁用帐户的密码过期功能,这样当 Pete 必须更改密码时,作业就不会失败,这还有另一个好处。

答案2

Windows 不支持此功能。出于责任原因,您不得冒充其他用户,即使是管理员也不行。

答案3

好的,因为您只想减少您的访问权限(而不是真正以 Peter 的身份运行),您可能有一些选择。

在 Windows 7(和 Windows Server 2008 R2)中,任务计划程序直接支持此功能(通过“不存储密码”选项),但我认为 Windows Server 2003 没有任何内置等效程序。在另一台计算机上以这种方式运行任务可能不会有帮助,因为您无法访问网络。

不过,它可以在软件中完成,即使在 Windows 2003 上,通过创建限制令牌Win32 函数。通过 Google 搜索找到了一款名为限制看起来它能够完成您想要的操作(通过选项-RSid)。请注意,我从未使用过此程序,因此无法保证其可靠性。

使用这种方法,脚本只能访问授予访问权限的文件两个都本地系统给彼得。(请注意,本地系统帐户隐含地属于管理员组,因此,如果管理员有访问权限,那就足够了。)

相关内容