1

作業中のスクリプトで小さな問題が発生しました。

コード自体は完全に正常に機能します。ローカルワークステーションで実行すると、完璧です。ただし、SCCMをインストールする必要があるサーバー(Win 2003 R2 32ビット)の1つ(このスクリプトは自動的にインストールするように設計されています)で実行すると、機能の1つで失敗します。関連するコードは次のとおりです。

    # 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
    }

エラーは具体的には次の行にあります:$ service = new-object -comobject "Schedule.Service"

「COMタイプSchedule.Serviceを読み込めません」と報告されています

4

1 に答える 1

1

その理由は、ローカルボックスが未亡人であるためです。7サーバー2003には、Windows7および2008の一部であるcomobject「Schedule.Service」がありません。

以下のリンクをたどると、PowerShellを使用してWindows2003サーバーでタスクをスケジュールする方法が示されます。

w2k3でタスクをスケジュールします

于 2012-08-07T14:27:34.753 に答える