2016-06-23 28 views
0

私は、下部にあるコードを使用して、設定後30秒以内に実行されるスケジュール済みタスクを作成しています。メモ帳を例として実行します。元のプログラムでは管理者権限が必要です。だから、最高の特権で実行する必要があります設定。どのように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

「これは何が可能であった場合は、」思考実験はこれが不可能である理由を理解に役立つはずです。 (すべてのマルウェアがそれを行います!) –

答えて

2

管理者権限で実行するタスクを設定するには、管理者権限が必要です。だから、基本的にあなたが求めていることは不可能です。

1

Actualyが、これは、Windowsの古いバージョンで問題だったと広くマルウェアによって使用された

関連する問題