创建具有从普通用户帐户运行的管理权限的计划任务

Posted

技术标签:

【中文标题】创建具有从普通用户帐户运行的管理权限的计划任务【英文标题】:Create scheduled task with administrative rights running from normal user account 【发布时间】:2015-05-04 11:38:13 【问题描述】:

我正在安装应用程序期间创建计划任务。安装程序本身以管理员权限运行:

SchTasks /F /create /tn "MyApp Start" /XML "D:\MyApps\start.xml" /ru "System"

此任务旨在在系统启动期间启动,只要登录的用户是创建任务的用户,它就可以正常工作。

在我的特殊情况下,如果另一个非管理员用户正在登录,该任务也应该运行。

如果非管理员用户正在登录,则当前任务未运行。更重要的是,他根本看不到任务。

问题是:如何以管理员身份创建计划任务

使用 DOS 或 PowerShell 命令 以系统权限运行 即使普通的非管理员用户登录 Windows 7/8 也会启动

这是我对任务的 xml 描述。

<?xml version="1.0"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2015-03-02T22:54:11</Date>
    <Author>foobar</Author>
  </RegistrationInfo>
  <Triggers>
    <BootTrigger>
      <StartBoundary>2015-03-02T22:54:11</StartBoundary>
      <Enabled>true</Enabled>
    </BootTrigger>
  </Triggers>
  <Principals>
    <Principal>
      <UserId>S-1-5-18</UserId>
      <RunLevel>LeastPrivilege</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <Duration>PT10M</Duration>
      <WaitTimeout>PT1H</WaitTimeout>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT72H</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions>
    <Exec>
      <Command>D:\MyApps\start.bat</Command>
    </Exec>
  </Actions>
</Task>

你有什么建议吗?

最好的问候 托比亚斯

【问题讨论】:

【参考方案1】:

托拜厄斯, 我实际上使用内置的 Windows 任务计划程序来设置这些类型的操作。我发现它比使用 CMD 容易得多,并且它具有您可能正在寻找的所有选项、功能、触发器等。我用它来起草任务并最终将它们推送到我们的网络上。更不用说默认情况下可以在普通用户和管理员用户权限下访问它。 希望这能为您指明正确的方向。

迈克。

【讨论】:

嗨,迈克,在我的情况下,任务计划程序中的构建不是选项。该任务将部署在近 8000 个工作站上。所以命令行的使用是完成这项工作的必备条件。我现在正在考虑另一个想法:编写一个 Windows 服务,它会在 Windows 启动期间自动启动,而不是使用任务。我会和我的同事讨论这个问题。

以上是关于创建具有从普通用户帐户运行的管理权限的计划任务的主要内容,如果未能解决你的问题,请参考以下文章

Admin——NTPtarcron计划任务

Linux_用户组及权限管理

管理用户和组,NTP,cron计划任务

如何在ubunto系统中创建普通用户并具有管理员权限

Linux命令之设置普通用户具有超级管理员权限sudo

记录一次setcap提权失败的经历