我正在尝试使用powershell v1.0创建一个简单的计划任务,当我查看MSDN上的任务计划程序对象http://msdn.microsoft.com/en-us/library/windows/desktop/aa383607%28v=vs.85%29.aspx时,我不确定我是否真的理解我在做什么。
到目前为止,在我的代码中,我有以下内容:
Function createFirefoxTask() {
$schedule = new-object -com Schedule.Service
$schedule.connect()
$tasks = $schedule.getfolder("\").gettasks(0)
$firefoxTaskExist=$false
# Check if the firefox schedule task exists
foreach ($task in ($tasks | select Name)) {
if($task.name.equals("FirefoxMaint")) {
$firefoxTaskExist=$true
break
}
}
# Create the scheduled task if it does not exist
if($firefoxTaskExist -eq $false) {
write-output "Creating firefox task..."
$firefoxTask=$schedule.NewTask(0)
$firefoxTask | get-member
}
}
但是分配给$firefoxTask
的成员似乎对我没有意义。例如,我如何做一些像命名我的新任务一样简单的事情?
这是我收到的输出......
TypeName: System.__ComObject#{f5bc8fc5-536d-4f77-b852-fbc1356fdeb6}
Name MemberType Definition
---- ---------- ----------
Actions Property IActionCollection Actions () {get} {set}
Data Property string Data () {get} {set}
Principal Property IPrincipal Principal () {get} {set}
RegistrationInfo Property IRegistrationInfo RegistrationInfo () {get} {set}
Settings Property ITaskSettings Settings () {get} {set}
Triggers Property ITriggerCollection Triggers () {get} {set}
XmlText Property string XmlText () {get} {set}
如果我深入研究它们,上述成员似乎都没有理解我正在尝试做什么。
答案 0 :(得分:1)
创建一个新任务我通常在一台服务器上手动创建它然后将其导出到.xml,使用以下代码可以将其导入另一台服务器上(我还没有验证这是在V1.0中工作)< / p>
$sch = New-Object -ComObject("Schedule.Service")
$computername | foreach{
$sch.connect($_)
$root=$sch.GetFolder("\")
$root.CreateFolder("SMAC")
$folder =$sch.GetFolder("\SMAC")
Get-childItem -path $task_path -Filter *.xml | %{
$task_name = $_.Name.Replace('.xml', '') #create a task base on the name of the xml file
$task_xml = Get-Content $_.FullName
$task = $sch.NewTask($null)
$task.XmlText = $task_xml
$folder.RegisterTaskDefinition($task_name, $task, 6, $cred.UserName, $cred.GetNetworkCredential().password, 1, $null)
}