2012-08-07 2 views
0

제가 작업 해본 스크립트에 약간의 문제가 있습니다.왜이 스크립트는 Powershell 스크립트를 통해 예약 된 작업 이벤트를 만들 수 없습니까?

코드 자체가 완벽하게 작동합니다. 로컬 워크 스테이션에서 실행할 때 완벽합니다. 그러나 SCCM이 설치되어 있어야하는 서버 (Win 2003 R2 32-bit) 중 하나 (이 스크립트는 자동으로 설치되도록 설계됨)에서 실행하면 내 기능 중 하나에서 오류가 발생합니다. 와 관계있는 코드는 다음과 같습니다

# Schedules Weekly tasks 
    function SchWeekly 
    {param ([string]$Comp, [string]$Date, [string]$RunTime, [int]$DayOfWeek, [string]  $commandpath) 

    $service = new-object -comobject "Schedule.Service"    # Forms object reference 
    $service.Connect($Comp)           # Connects to host machine 
    $rootFolder = $service.GetFolder("\")      # Sets root folder of Task Scheduler 
    $taskDefinition = $service.NewTask(0)       # Begins task creation 
    $regInfo = $taskDefinition.RegistrationInfo      # Sets registry info 
    $regInfo.Description = 'SCCM Check For Update' 
    $regInfo.Author = "Administrator" 
    $settings=$taskDefinition.Settings        # Sets default settings for the new task 
    $settings.StartWhenAvailable = $True 
    $settings.Hidden = $False 
    $triggers = $taskDefinition.Triggers       # Creates Trigger object reference 
    $trigger = $triggers.Create(3)         # Sets to create (Number 3 means Weekly trigger) 
    # Start Time ex. 2012-6-10 22:00:00 
    $trigger.StartBoundary = $Date + "T" + $RunTime     # Sets start date (End date can be set) e 
                  # ex. $trigger.EndBoundary = Date + "T" + Time 
    $trigger.DaysOfWeek = $DayOfWeek        # Sends integer for day of week to run on (1-7) 
                  # 1 = Sunday, 2 = Monday, etc.... 
    $trigger.WeeksInterval = 1          # Sets to run every week 
    $trigger.Id = "WeeklyTriggerId"         # Trigger ID name 
    $trigger.Enabled = $True 
    $Action = $taskDefinition.Actions.Create(0) 
    $Action.Path = $commandpath           # Links to script 
    $rootFolder.RegisterTaskDefinition('SCCM Check For Update', $taskDefinition, 6, "", "", 3) # Registers scheduled task 
    } 

오류는 특히이 라인에 : $ 서비스 = 그것은

"COM 형식 Schedule.Service를로드 할 수 없습니다"보고

"Schedule.Service"-comobject 새로운 객체

답변

1

그 이유는 해당 지역의 상자가에 따라 그 아래의 링크를 어떻게 예약하는 방법을 보여줍니다 경우하여 ComObject "Schedule.Service을"이없는 7 서버 2003은 윈도우 7의 일부 2008 년

입니다 과부입니다 창에 대한 작업 PowerShell을 사용하는 2003 서버

Schedules tasks on w2k3

+1

아이러니 뭐니? 내 원래 스크립트는 바로 그 블로그에서 온다. 감사 – RoboGen

관련 문제