为什么不能这样做脚本,通过PowerShell脚本计划任务的事件?
问题描述:
我碰到一个脚本我一直工作在一个小问题。为什么不能这样做脚本,通过PowerShell脚本计划任务的事件?
代码本身工作完全正常;当我在我的本地工作站上运行它,它是完美的。然而,当我在需要安装在其上(此脚本被设计为自动安装)SCCM服务器中的一个(赢2003 R2 32位)运行它失败在我的功能之一。培训相关的代码如下:
# 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
}
的错误。特别是在这一行: $服务=新对象-ComObject“Schedule.Service”
据报道,“无法加载COM类型Schedule.Service”
答
原因是当地的盒子是寡妇7 Server 2003不具备comobject“Schedule.Service”这是2008年
的Windows 7的一部分,如果你按照它下面的链接会告诉你如何安排一个窗口上的任务2003服务器使用PowerShell。
想知道什么是讽刺?我原来的脚本来自那个博客。谢谢 – RoboGen 2012-08-07 14:29:22