【问题标题】:Creating Task via Powershell as System32通过 Powershell 作为 System32 创建任务
【发布时间】:2021-01-06 22:52:47
【问题描述】:

我想通过 Powershell 创建一个任务,但我得到了这个错误:

Register-ScheduledTask : 拒绝访问 在 C:\Users\4TL4S\Documents\Coding\Bot_Dev\juri_exc\ui\setup_bot_task.ps1:8 Zeichen:1

  • Register-ScheduledTask "Bot_Activation" -InputObject $Task
  • CategoryInfo : PermissionDenied: (PS_ScheduledTask:Root/Microsoft/...S_ScheduledTask) [Register-ScheduledTask], CimException
  • FullyQualifiedErrorId : HRESULT 0x80070005,Register-ScheduledTask

我认为这与“管理员”没有足够的权限有关...我该如何解决这个问题?是否可以将 Task 创建为 System32?

这是脚本:

$Action = New-ScheduledTaskAction -Execute "cmd.exe"
$Trigger = New-ScheduledTaskTrigger -At "0am" -DaysOfWeek 1 -Weekly
$Principle = New-ScheduledTaskPrincipal "Administrator" -RunLevel Highest
$Settings = New-ScheduledTaskSettingsSet
$Task = New-ScheduledTask -Action $Action -Principal $Principle -Trigger $Trigger -Settings $Settings
Register-ScheduledTask "Bot_Activation" -InputObject $Task 

这是调用脚本的代码:

subprocess.Popen([r'C:\\WINDOWS\\system32\WindowsPowerShell\\v1.0\\powershell.exe',
                         '-ExecutionPolicy',
                         'Unrestricted',
                         './setup_bot_task.ps1'], cwd=os.getcwd())

【问题讨论】:

    标签: python python-3.x powershell task scheduler


    【解决方案1】:

    您需要使用“以管理员身份运行”选项运行这是一个提升的会话。

    您可以将Start-Process 与参数-Verb 和参数runas 一起使用。看这个测试

    Start-Process powershell -ArgumentList @'
    $Action = New-ScheduledTaskAction -Execute "cmd.exe"
    $Trigger = New-ScheduledTaskTrigger -At "0am" -DaysOfWeek 1 -Weekly
    $Principle = New-ScheduledTaskPrincipal "Administrator" -RunLevel Highest
    $Settings = New-ScheduledTaskSettingsSet
    $Task = New-ScheduledTask -Action $Action -Principal $Principle -Trigger $Trigger -Settings $Settings
    Register-ScheduledTask "Bot_Activation" -InputObject $Task 
    '@ -Verb runas
    

    【讨论】:

    • 是否可以将其作为参数传递?因为这个脚本正在被 Python 脚本调用
    • 我用调用 PS1 脚本的代码编辑了帖子
    • 你在python中通常是如何提升的?
    • 老实说,我不知道 POpen 有一个 shell=False 参数,但它并没有真正说明这是否提升了权限
    • 你的脚本解决了我的问题 :) 我的意思是它确实打开了一个 Powershell 窗口,但这并不重要 :)
    猜你喜欢
    • 2022-01-27
    • 1970-01-01
    • 2014-06-21
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    • 1970-01-01
    相关资源
    最近更新 更多