2016-06-23 5 views
0

Я использую код внизу, чтобы создать запланированную задачу, которая запускается в течение 30 секунд после ее настройки. В качестве примера используется Блокнот. Для первоначальной программы требуются права администратора. Поэтому ему необходимо установить Run с наивысшими привилегиями. Как установить его с помощью VBScript? Важная часть состоит в том, что VBScript не должен требовать прав администратора для запуска этого кода для установки этого параметра.Создание задачи расписания с помощью VBScript для запуска в качестве администратора без запроса прав администратора?

' This sample schedules a task to start notepad.exe 30 seconds 
' from the time the task is registered. 
'------------------------------------------------------------------ 

' A constant that specifies a time-based trigger. 
const TriggerTypeTime = 1 
' A constant that specifies an executable action. 
const ActionTypeExec = 0 

'******************************************************** 
' Create the TaskService object. 
Set service = CreateObject("Schedule.Service") 
call service.Connect() 

'******************************************************** 
' Get a folder to create a task definition in. 
Dim rootFolder 
Set rootFolder = service.GetFolder("\") 

' The taskDefinition variable is the TaskDefinition object. 
Dim taskDefinition 
' The flags parameter is 0 because it is not supported. 
Set taskDefinition = service.NewTask(0) 

'******************************************************** 
' Define information about the task. 

' Set the registration info for the task by 
' creating the RegistrationInfo object. 
Dim regInfo 
Set regInfo = taskDefinition.RegistrationInfo 
regInfo.Description = "Start notepad at a certain time" 
regInfo.Author = "Administrator" 

' Set the task setting info for the Task Scheduler by 
' creating a TaskSettings object. 
Dim settings 
Set settings = taskDefinition.Settings 
settings.Enabled = True 
settings.StartWhenAvailable = True 
settings.Hidden = False 

'******************************************************** 
' Create a time-based trigger. 
Dim triggers 
Set triggers = taskDefinition.Triggers 

Dim trigger 
Set trigger = triggers.Create(TriggerTypeTime) 

' Trigger variables that define when the trigger is active. 
Dim startTime, endTime 

Dim time 
time = DateAdd("s", 30, Now) 'start time = 30 seconds from now 
startTime = XmlTime(time) 

time = DateAdd("n", 5, Now) 'end time = 5 minutes from now 
endTime = XmlTime(time) 

WScript.Echo "startTime :" & startTime 
WScript.Echo "endTime :" & endTime 

trigger.StartBoundary = startTime 
trigger.EndBoundary = endTime 
trigger.ExecutionTimeLimit = "PT5M" 'Five minutes 
trigger.Id = "TimeTriggerId" 
trigger.Enabled = True 

'*********************************************************** 
' Create the action for the task to execute. 

' Add an action to the task to run notepad.exe. 
Dim Action 
Set Action = taskDefinition.Actions.Create(ActionTypeExec) 
Action.Path = "C:\Windows\System32\notepad.exe" 

WScript.Echo "Task definition created. About to submit the task..." 

'*********************************************************** 
' Register (create) the task. 

call rootFolder.RegisterTaskDefinition(_ 
    "Test TimeTrigger", taskDefinition, 6, , , 3) 

WScript.Echo "Task submitted." 

'------------------------------------------------------------------ 
' Used to get the time for the trigger 
' startBoundary and endBoundary. 
' Return the time in the correct format: 
' YYYY-MM-DDTHH:MM:SS. 
'------------------------------------------------------------------ 
Function XmlTime(t) 
    Dim cSecond, cMinute, CHour, cDay, cMonth, cYear 
    Dim tTime, tDate 

    cSecond = "0" & Second(t) 
    cMinute = "0" & Minute(t) 
    cHour = "0" & Hour(t) 
    cDay = "0" & Day(t) 
    cMonth = "0" & Month(t) 
    cYear = Year(t) 

    tTime = Right(cHour, 2) & ":" & Right(cMinute, 2) & _ 
     ":" & Right(cSecond, 2) 
    tDate = cYear & "-" & Right(cMonth, 2) & "-" & Right(cDay, 2) 
    XmlTime = tDate & "T" & tTime 
End Function 
+1

«What, если бы это было возможно» мысленный эксперимент поможет вам понять, почему это невозможно. (Все вредоносные программы сделают это!) –

ответ

2

Вам нужны права администратора, чтобы настроить задачу для запуска с правами администратора. Итак, в основном то, что вы просите, невозможно.

1

Actualy, это была проблема в старых версиях окон и широко используется сигнатурах