运行 来自 vbscript 的 Psexec 在 Windows 10 上禁用计划任务并隐藏控制台 window

Run Psexec from vbscript to disable scheduled task on Windows 10 and hide console window

我需要一个将 运行 通过计划任务的 vbs 脚本。 vbs 脚本将用于使用 Psexec 禁用需要特殊权限的 windows 更新计划任务。 Psexec.exe 位于与 vbs 脚本相同的目录中。尝试通过 vbscript 希望 Psexec.exe 控制台不可见。我可以使用 cmd 脚本来做到这一点,但无法隐藏 Psexec.exe 控制台 window,我不希望它可见,因为我不想 users/anyone 看到某些东西已启动.控制台短暂显示并退出,但仍然可见。

%~dp0psexec.exe -i -d -s -accepteula schtasks /change /tn "Microsoft\Windows\WindowsUpdate\sihpostreboot" /disable

我试过了,但根本无法让 Psexec 通过 vbs 脚本禁用任务,控制台 window 是否可见。

Option Explicit
Dim fso
Dim GetTheParent
Dim vbhide
Set fso = CreateObject("Scripting.FileSystemObject")
GetTheParent = fso.GetParentFolderName(Wscript.ScriptFullName)
Dim objShell
Set objShell = Wscript.CreateObject("WScript.Shell")
objShell.Run GetTheParent & "\psexec.exe -i -d -s -accepteula schtasks /change /tn \Microsoft\Windows\WindowsUpdate\sihpostreboot /disable", vbhide    

完全消除 psexec。使用 schtasks 创建一个通过系统帐户运行 schtasks 的任务,如下所示:

If WScript.Arguments.length = 0 Then
  Set objShell = CreateObject("Shell.Application")
  'Pass a bogus argument, say [ uac]
  objShell.ShellExecute "wscript.exe", Chr(34) & WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1
Else
  Set oWSH = WScript.CreateObject("WScript.Shell")
  TR = "schtasks /change /tn '\Microsoft\Windows\WindowsUpdate\sihpostreboot' /disable"
  oWSH.Run "schtasks /create /ru system /tn CustomTask /tr """ & TR & """ /sc onevent /ec system /mo *[System/EventID=999] /f",0,True
  oWSH.Run "schtasks /run /tn CustomTask",0,False
End If

请注意,OnEvent 条目只是一个允许我们创建计划任务的虚拟事件。

还要注意 TR = 字符串中的单引号。这是一个 Schtasks 功能,而不是 VBScript 功能。 Schtasks 在创建任务时将这些单引号转换为双引号,允许带有空格参数的命令。