Windows Server 2008任务调度程序中没有最高权限的.cmd

是否有可能作为一个特定的用户没有签入选项“运行最高权限”在任务计划程序中运行CMD脚本?

简单testing:

  1. 创buildD:\ Admin \ Scripts \ TestScripts \ testscript.cmd
  2. 脚本非常简单: echo success > D:\Admin\Scripts\TestScripts\out.txt
  3. 将完整权限授予用户mydoman \ admin (当服务器是域成员时包含在本地pipe理员组中的域pipe理员组的成员)到D:\ Admin \ Scripts \ TestScripts以及所有子目录和文件
  4. 用行动创build任务:
    • 命令: D:\Admin\Scripts\TestScripts\testscript.cmd
    • 请从: D:\Admin\Scripts\TestScripts
  5. 将用户更改为mydoman \ admin
  6. select“运行用户是否login”
  7. 不要select“以最高权限运行”
  8. 好的,input密码,完成

手动启动任务,并完成代码0x1。

如果我选中“以最高权限运行”选项,它会运行fune。 out.txt文件被创build。

当使用参数创build任务时,效果也是一样的:

  • 命令: cmd.exe
  • args: /c D:\Admin\Scripts\TestScripts\testscript.cmd
  • 请从: D:\Admin\Scripts\TestScripts

问题是:

  1. 是否强制检查“以最高权限运行”?
  2. CMD脚本可以运行没有最高权限?
  3. MS有任何文章清楚说明如何以及为什么在任务计划程序中运行CMD文件?

这就是UAC的脚步。长话短说,您需要为给定用户提供对目标目录的写入权限,而不依赖于用户的Administrators组成员。

例如:如果当前目录的ACL是:

 Administrators:(OI)(CI)(F) SYSTEM:(OI)(CI)(F) Authenticated Users:(OI)(CI)(RX) 

…您需要添加直接的ACL条目,例如: 用户名 :(OI)(CI)(M)或用户所属组的ACL条目。

原因是,UAC正在阻止pipe理员组的成员身份发生任何影响,而没有事先提升。 这是devise。

我希望这是有道理的。

  1. 没有

只要运行这些任务的(pipe理员)用户可以在正常的非提升命令提示符下执行相同的操作,它也应该通过任务计划程序工作。

您的pipe理员用户很可能需要提升才能在该目录中写入文件。 所以通过这个任务也是如此。

“以最高权限运行”只是告诉任务调度程序在执行命令之前先提升用户。

尝试在“用户”拥有写权限的目录中编写文件,它将在没有“最高权限”