配置计划任务

配置计划任务

我有一个 PowerShell 脚本,我想使用它来关闭在不同用户会话中运行的应用程序。该脚本在以管理员身份运行时有效,但是我不想授予用户管理员权限只是为了关闭在其他用户会话中运行的应用程序。我在任务计划程序中创建了一个任务,该任务应允许该任务使用存储的凭据以管理员身份运行。请参阅以下任务:

计划任务

然后我创建了一个简短的链接来链接到该计划任务,并将其放在公共桌面上。以下是该路径:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy 绕过-文件 C:\SMS_Killer.ps1

我已经设置了执行绕过,但是,除非管理员登录,否则它似乎不起作用。

以下是任务执行时运行的代码:

Get-Process | Where {$_.ProcessName -eq "firefox"} | Stop-Process

Read-Host -Prompt "Press Enter to exit"

这是我以非管理员身份运行它时出现的错误:

Stop-Process : Cannot stop process "firefox (3328)" because of the following error: Access is denied
At C:\SMS_Killer.ps1:5 char:54
+ Get-Process | Where {$_.ProcessName -eq "firefox"} | Stop-Process
+                                                      ~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (System.Diagnostics.Process (firefox):Process) [Stop-Process], ProcessComman
   dException
    + FullyQualifiedErrorId : CouldNotStopProcess,Microsoft.PowerShell.Commands.StopProcessCommand

任何帮助都将非常感激,我不确定我哪里做错了。

答案1

如果在任何用户帐户登录或重新连接到已断开的会话时运行该进程,则可以安全地终止该进程,然后让SYSTEM该任务以稍微不同的方式运行触发它。

这样做将避免需要任何用户帐户具有执行任务的权限。每次根据特定条件事件触发时都会执行该任务。


配置计划任务

  1. 安排任务运行为SYSTEM

在此处输入图片描述

  1. 将三个触发器设置如下:
    • At log onAny user
    • On connection to user sessionAny userConnection from remote computer
    • On connection to user sessionAny userConnection from local computer

笔记:将这三个触发器分别设置为Delay task for的值10 seconds

在此处输入图片描述

答案2

在最新版本的 Windows 10 中,schtasks /run现在执行此操作需要管理员权限。非管理员用户不再可能使用此技巧。微软已经关闭了 Windows 中的漏洞,非管理员用户可以通过任务计划程序启动管理员任务。

您可能正在寻找一种方法来使此方法再次发挥作用,因为它已经起作用很多年了,但现在已不再可能。

仍然有效的替代解决方案是实用程序 运行方式,免费供私人使用,描述如下:

以另一个用户身份运行应用程序或从受限帐户(如命令)以管理员身份启动程序runas,但无需在每次启动时输入登录信息。

相关内容