You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Using the Job Scheduler Powershell Adapter, it's possible to create jobs or monitors that use the JobScheduler API in Powershell.

Requirements

  • Windows Machine with a JobScheduler installation
  • .Net Framework 4
  • Powershell 2

Installation

  • Download the JobScheduler Powershell Adapter from here (link)
  • Unzip the file to the bin directory of your JobScheduler installation
  • Register the assembly by running
  C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe [install_path]\bin\JobSchedulerPowershellAdapter.dll /codebase

Usage

The Powershell Adapter uses the JobScheduler COM interface.

Currently, neither COM Jobs nor Powershell Jobs are supported by JOE. So, Powershell Jobs need to be configured by editing XML files.

To configure a powershell job:

  • Have the <script> use the com_class JSPowershellAdapter.JobAdapter
  • define a parameter powershell_script which points to the location of the Powershell Job implementation
  • write a powershell Job implementation which at least implements Function spooler_process()

Example job definition

    <?xml version="1.0" encoding="ISO-8859-1"?>
  
    <job>
        <params>
            <param name="test" value="12345"/>
            <param name="powershell_script" value="powershell\powershell_job.ps1"/>
        </params>    
        <script com_class="JSPowershellAdapter.JobAdapter"/>
        <run_time once="no"/>
    </job>

Example Powershell Job Script

    Function spooler_init()
    \{	
        if ($spooler_log)
        \{
            $spooler_log.info("This is spooler_init") 
            $spooler_log.info("TaskID: "+$spooler_task.id) 
        \}	
        
        return $true
    \}
  
    Function spooler_open()
    \{	
        $spooler_log.info("This is spooler_open") 
        return $true;
    \}
  
    Function spooler_process()
    \{	
        $spooler_log.info("This is spooler_process") 
        return $false;
    \}
  
    Function spooler_close()
    \{	
        $spooler_log.info("This is spooler_close") 
    \}
  
    Function spooler_exit()
    \{	
        $spooler_log.info("This is spooler_exit") 
    \}
  
    Function spooler_on_success()
    \{	
        $spooler_log.info("This is spooler_on_success") 
    \}
  
    Function spooler_on_error()
    \{	
        $spooler_log.info("This is spooler_on_error") 
    \}
  • No labels