如何在VBScript中指定“以最高权限运行”?

时间:2013-11-15 20:08:40

标签: vbscript scheduled-tasks task

当我使用GUI任务计划程序时,我可以轻松检查“以最高权限运行”复选框。

但是,我在VBScript命令行中也没有找到这样的选项。

有没有办法从VBScript中做到这一点?

如何添加这个脚本这两个功能?

enter image description here

示例VBScript:http://msdn.microsoft.com/en-us/library/aa383665%28v%3DVS.85%29.aspx

特权:http://msdn.microsoft.com/en-us/library/windows/desktop/aa382076%28v=vs.85%29.aspx

3 个答案:

答案 0 :(得分:1)

此VBScript代码自动执行SchTasks.exe程序,并应演示您要执行的操作。要获取使用SchTasks创建任务的开关列表,您可以运行:

schtasks.exe /create /?

您仍然必须从管理命令提示符运行以下脚本才能创建具有“最高”权限的任务。此外,如果您希望使用系统帐户以外的帐户,则应使用/ RP开关。如果您完全自动化它,您可能希望使用/ F开关强制覆盖现有任务。否则在等待用户输入时可能会挂起。

Option Explicit

Dim WshShell, strWinDir, strCmdLine, lngExitCode
Const OpenAsCurrentWindowIsOpened = 10, WaitForExit = True

Set WshShell = CreateObject("WScript.Shell")
strWinDir = WshShell.ExpandEnvironmentStrings("%WINDIR%")

strCmdLine = strWinDir & "\System32\SCHTASKS.exe /create /SC DAILY /TN ""My VBScript Task"" /TR """ & strWinDir & "\System32\calc.exe"" /RL HIGHEST /RU ""NT AUTHORITY\SYSTEM"""

lngExitCode = WshShell.Run(strCmdLine, OpenAsCurrentWindowIsOpened, WaitForExit)

If lngExitCode = 0 Then
  WScript.Echo "Success"
Else
  WScript.Echo "Failed with error code " & CStr(lngExitCode)
End If

答案 1 :(得分:0)

如果您询问如何以管理模式交互式运行VBScripts,则只需从已在“管理模式”下运行的命令行运行CSCRIPT。例如,单击“开始”,键入cmd,等待几秒钟......,右键单击cmd.exe并选择“以管理员身份运行”。然后,当您从该命令行运行CSCRIPT时,它将以最高权限运行。请注意,您必须已使用管理员用户帐户登录。

或者您是否在询问如何使用这些选项自动在VBScript中创建新的计划任务?

答案 2 :(得分:0)

如果您指的是管理员模式,试试这个:

Dim ObjShell
Set ObjShell = CreateObject("WScript.Shell")
ObjShell.Run "runas.exe"

由于 CMD in Admin mode 只是 runas.exe,您可以通过 WScript.Shell(ObjShell.Run) 运行它。 这种方式更有效,因为如果你想运行命令行,你可以简单地这样做:

ObjShell.Run "runas.exe /K (command goes here)"