没有要求密码的runas

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

我想要这个脚本在mydomain\peter用户帐户下运行。 如果您知道Peter的密码,那么使用计划的任务很容易。 一旦完成,当Peter决定(或必须)更改密码时,剧本停止。

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

任何方式与Windows做到这一点?

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

但是,这正是服务帐户的用例。 为什么不为这个计划任务build立一个域用户服务帐户?

这可能是你应该做的,而不是作为一个真正的用户运行计划任务或脚本。 您可以在帐户上禁用密码过期,以便在Pete必须更改密码时,作业不会失败,以获得另一个好处。

这在Windows上不受支持。 出于问责原因,您不应该模仿其他用户,甚至不是以pipe理员身份。

好的,既然你只是想减less你的访问权限(而不是像Peter本身那样真正运行),你可能有一些select。

在Windows 7(和Windows Server 2008 R2)中,任务计划程序直接支持此操作(通过“不要存储密码”选项),但我不认为Windows Server 2003有任何内置的等效项。以这种方式运行任务在不同的机器上可能不会帮助,因为你没有得到networking访问。

可以用软件完成,即使在Windows 2003上也可以通过CreateRestrictedToken Win32函数完成。 谷歌search发现了一个名为ulimitnt的软件,似乎可以做你想做的事情(通过-RSid选项)。 请注意,我从来没有使用过这个程序,所以我不能保证它的可靠性。

使用这种方法,脚本只能访问授权访问本地系统 Peter的文件。 (请注意,本地系统帐户隐式属于pipe理员组,因此如果pipe理员有权访问就足够了。)