Autor: Bodoconsult EDV-Dienstleistungen GmbH, Robert Leisner
JobExecuter technical documentation
Date created: 19.01.2021
Security related issues with JobExecuter
JobExecuter: create your own password to secure jobs
Overview over the available logging facilities in JobExecuter
Configuration of JobExecuter for sending SMTP mails
What is JSON and how to edit JSON files for JobExecuter jobs
Command line parameters for JobExecuter
SqlBackupLogSingleDatabaseJobTask
SqlBackupSingleDatabaseJobTask
SqlComplianceAllDatabasesJobTask
SqlComplianceSingleDatabaseJobTask
Registered and unregistered trademarks
JobExecuter is a software by Bodoconsult EDV-Dienstleistungen GmbH.
Bodoconsult EDV-Dienstleistungen GmbH
Ostring 45a
85591 Vaterstetten
http://www.bodoconsult.de
info@bodoconsult.de
JobExecuter fulfills helpful tasks especially for small Windows based IT enviroments but it is not limited on them. In such small environments often important features like database backup or file backup are missed and have to be implemented with some effort.
JobExecuter is a software to run different types of administrative jobs like database backup, file copying, running apps and others. It is used used in conjunction with Windows Task Scheduler (WTS). The WTS provides the job scheduling infrastructure. JobExecuter provides the functionality of the jobs in an supervised environment.
JobExecuter supports self-documentation: each job can be documented automatically and all such job documentations can be added to a complete documentation of all JobExecuter based jobs running on diverse server systems.
A JobExecuter job consists of one or more JobTasks. A job and its JobTasks is defined in a UTF8 encoded JSON file. The JSON file must be encrypted to a CJSON file before running the job. To run a job call JobExecuter.exe with the CJSON file with the job definition as parameter. The command line call for JobExecuter looks like:
JobExecuter.exe CJsonFileName
Or more general:
%PathToJobExcuterExe%\JobExecuter.exe %PathToJobJsonFile%\%JsonFileName%.cjson
Some of the JobTasks provided by JobExecuter need credentials to be provided. In that case the passwords do not have to be provide as clear text but as encrpyted string.
JobExecuter provides the command line parameter /p to encrypt passwords. Please see below in the section on command line parameters for JobExecuter.
Run JobExecuter always under an account with minimal permission.
To encrypt your job file run the following command line:
%PathToJobExcuterExe%\JobExecuter.exe /c %PathToJobJsonFile%\%JsonFileName%.cjson
You have to provide a password that must be equal to the one stored (encrypted) in the JobExecuter.exe.config file. See below how to encrpyt a password for JobExecuter (command line argument /j).
The result of this command line will be a file %PathToJobJsonFile%\%JsonFileName%.cjson. Run the job with the encrypted password use:
%PathToJobExcuterExe%\JobExecuter.exe %PathToJobJsonFile%\%JsonFileName%.cjson
Create the folder structure for JobExcuter via Windows Explorer starting with the TargetFolder. The TargetFolder may be any local folder on the machine running the Windows Task Scheduler to use.
Target path for JobExecuter environment
Application install path
Folder with subfolders for each job
Then copy the Samples folder in the JobExecuter's installation path to the TargetFolder\Jobs folder and renamed it to Test.
The Test folder will contain a test job not running from Windows Taslk Scheduler for building and testing new JobTasks.
Use the Test folder as template for creating new jobs.
To secure JobExecuter jobs you have to create your own salt and then to encrypt your password.
Go to JobExecuter's installation path TargetFolder\JobExecuter.
Then run Salt.bat to create a new salt. It will be copied to clipboard.
Then go edit JobExecuter.config and replace the JobSalt setting value with the just created salt from clipboard. Save JobExecuter.config.
Then run Password.bat to encrypt your password. It will be copied to clipboard.
Then go edit JobExecuter.config again and replace the JobPassword setting value with the just created password from clipboard. Save JobExecuter.config.
JobExcuter provides the following logging facilities:
By default JobExecuter creates always a log file in the job JSON file's directory with the the file name but the file extension .log.
JobExecuter can send a summary of the job's runtime results via SMTP to a job's SummaryMailReceiver. SMTP must be configured for JobExecuter. See section below.
JobExecuter can send error messages resulting from the job's runtime via SMTP to a job's ErrorMailReceiver or to a separate JobTask's ErrorMailReceiver. SMTP must be configured for JobExecuter. See section below.
If needed you can enable JobExecuter to log errors to the Windows Event log. You have to set the Jobs' property WriteToEventLog to true. You can find the log entries under the application log there.
To enable JobExecuter to send SMTP mails you need the SMTP address to use, the username and password to login to the SMTP server and a email address you want to send on behalf of.
!!!! JobExecuter uses only secure SMTP servers !!!!
To configure JobExecuter you must edit the JobExecuter.config located in the install directory of JobExecuter. Here the settings to edit:
SMTP server address like smtp.1und1.de
account name to login on the SMTP server
Encrypted password to login on the SMTP server (use command line parameter /p to encrypt a password. See section above!)
email address you send on behalf on, i.e. noreply@test.de
JSON is common plain text data format to transfer or store data. It is lightweight and relatively easy understandable compared to the alternative XML. JSON makes it easily possible to store object data outside a software and load it from a file in a software. Here a sample of a JobExecuter's Job object stored a JSON:
{
"$type": "JobExecuter.Dal.Model.Job, JobExecuter.Dal",
"Name": "Sample job for SqlBackupSingleDatabaseJobTask",
"Description": "This job contains one or more sample JobTasks for class JobExecuter.Dal.Model.SqlBackupSingleDatabaseJobTask",
"ErrorMailReceiver": "errorreceiver1@test.xxx;errorreceiver2@test.xxx",
"SummaryMailReceiver": "summaryreceiver1@test.xxx;summaryreceiver2@test.xxx",
"JobTasks": [
{
"$type": "JobExecuter.Dal.Model.SqlBackupSingleDatabaseJobTask, JobExecuter.Dal",
"DatabaseName": "MediaDb",
"LocalTarget": "d:\\tmp",
"NetworkTarget": null,
"FileName": "testbackup.bak",
"RemoveLocalBackup": false,
"Server": ".\\sqlexpress",
"Name": "Backup database to local file only",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 60
},
{
"$type": "JobExecuter.Dal.Model.SqlBackupSingleDatabaseJobTask, JobExecuter.Dal",
"DatabaseName": "MediaDb",
"LocalTarget": "d:\\tmp",
"NetworkTarget": "d:\\tmp\\network",
"FileName": "testbackup.bak",
"RemoveLocalBackup": true,
"Server": ".\\sqlexpress",
"Name": "Backup database to a network path",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 60
}
],
"Timeout": 500,
"WriteToEventLog": true
}
To edit JSON files you generally need only a good text editor. We recommend Notepad++. Copy and paste is a favourable way for creating new job files for JobExecuter.
JSON itself is formatted plain text with UTF8 encoding in case of JobExecuter. If you edit JSON files you will have to escape certain characters in the text. Please see the list of critical chararcters to escape in JSON:
Backspace (ascii code 08)
Form feed (ascii code 0C)
New line
Carriage return
Tab
Double quote
Backslash character
Example: Especially if you edit directory or file paths you have to escape the backslash. Instead of the directory path
C:\Test\Jobs\backup\
you have to write
C:\\Test\\Jobs\\backup\\
in the JSON file.
In the JobExecuter's installation path there is a folder Samples with an subfolder SampleJobFolder. This folder contains a sample job with all necessary steps to work with JobExecuter.
You can use this sample folder to create new jobs by copying the folder to a target folder for jobs and adjust the content of the JSON and BAT to your conrete situation.
Job definition file
Encrypted job definition file
Encrypt JSON job file to CJSON
Start job for testing purposes
Start job from Windows task scheduler
%PathToJobExcuterExe%\JobExecuter.exe %PathToJobJsonFile%\%JsonFileName%.cjson
Runs a job defined in the CJSON file %PathToJobJsonFile%\%JsonFileName%.cjson
JSON files to execute with JobExecuter should be UTF8 encoded and must be encrypted via command line parameter /c to a CJSON file. We recommend using Notepad++ as editor for JSON files. Encrypted JSON files must have the extension .cjson.
Each job should have an own folder.
If there is a readme.txt in the same folder as the JSON job file, the JobDocuJobTask documenting the job will add the content of readme.txt to the job documentation.
%PathToJobExcuterExe%\JobExecuter.exe /p
If you run JobExecuter with this parameter you will be ask to insert a clear text password. This password will be encrypted by JobExecuter and copied to the clipboard. From there you can paste it to a JSON job definition file where a password is required in encrypted form.
%PathToJobExcuterExe%\JobExecuter.exe /c %PathToJobJsonFile%\%JsonFileName%.json
Encrypt a job's JSON file to a CJSON file. Password required for that transaction! See below.
%PathToJobExcuterExe%\JobExecuter.exe /j
If you run JobExecuter with this parameter you will be ask to insert a clear text password. This password will be encrypted by JobExecuter and copied to the clipboard. From there you can paste it to jobexecuter.exe.config setting "JobPassword" where a password is required in encrypted form.
The you must edit the JobExecuter.config located in the install directory of JobExecuter. Search the setting "JobSalt" and copy the clipboard in the value of this setting. Save and close the config-file.
%PathToJobExcuterExe%\JobExecuter.exe /j
If you run JobExecuter with this parameter you will be ask to insert a clear text password. This password will be encrypted by JobExecuter and copied to the clipboard. From there you can paste it to jobexecuter.exe.config setting "JobPassword" where a password is required in encrypted form.
The you must edit the JobExecuter.config located in the install directory of JobExecuter. Search the setting "JobPassword" and copy the clipboard in the value of this setting. Save and close the config-file.
Creates a report of the current Windows domain's Active Directory structure.
Task to run a cmd.exe batch from a file or a string.
Creates a report of the current Windows domain's DHCP infrastructure
Checks the disk size and places an error if free space is below a certain percentage or below a certain absolute value
Creates a report for a Microsoft DNS server
Creates a HTML documentation from diverse JSON files as input.
May be used i.e. for combining database compliance reports from different database servers to one compliance report HTML file.
Backup of a folder based on robocopy.exe by Microsoft.
Task to clean a folder from old files
Task to create a compliance report for a folder.
Task to document the current JobExecuter job
Check successful ping to certain network addresses
Run a PowerShell script file
Run an app with or without parameters
Task to take a full backup for all SQL databases (with exception of TempDb) on a Microsoft® SqlServer starting with version 2008.
Task to take a log file backup for a single SQL database on Microsoft® SqlServer starting with version 2008.
Task to take a full backup for a single SQL database on Microsoft® SqlServer starting with version 2008.
Task to run a SQL batch from a file or from a string against a Microsoft® SqlServer
Task to collect compliance relevante information for all SQL databases on a Microsoft® SqlServer
Task to collect compliance relevante information for a single SQL database on a Microsoft® SqlServer
Task to take a documentation for all SQL databases on a Microsoft® SqlServer with exception of databases Master, Msdb, Model and TempDb.
Task to take a documentation for a single SQL database on a Microsoft® SqlServer.
Job to perfrom maintenance on a Microsoft® SqlServer instance
Task to save TaskScheduler tasks as XML and document it
Creates a report of the current Windows domain's Active Directory structure.
Work only for single domain networks. Domain forest are not supported. Delivers a report over the structure of the AD with Organizational Units (OU), users, groups and computers.
Description of the job used for documentation
Mail addresses separarted with semicolon to send an error mail to
Export documentation to HTML
Export documentation as <see cref="!:StructuredText" /> object to JSON.
If empty, the file will be placed in app subfolder docu with the name "job_docu.json"
Mail receiver(s) separated by semicolon. Intended to use for mail compliance report to compliance process owner
Name of the job
Export documentation to Pdf
Timeout in seconds the job will be terminated after start
Title for documentation
{
"$type": "JobExecuter.Dal.Model.Job, JobExecuter.Dal",
"Name": "Sample job for ActiveDirectoryJobTask",
"Description": "This job contains one or more sample JobTasks for class JobExecuter.Dal.Model.ActiveDirectoryJobTask",
"ErrorMailReceiver": "errorreceiver1@test.xxx;errorreceiver2@test.xxx",
"SummaryMailReceiver": "summaryreceiver1@test.xxx;summaryreceiver2@test.xxx",
"JobTasks": [
{
"$type": "JobExecuter.Dal.Model.ActiveDirectoryJobTask, JobExecuter.Dal",
"Title": null,
"MailTo": null,
"HtmlTargetFileName": "D:\\tmp\\JobExecuter\\ActiveDirectory.htm",
"PdfTargetFileName": null,
"JsonTargetFileName": null,
"Name": "Report Active Directory",
"Description": "Report the current domain's Active Directory structure with organisation units (OU), users, groups and computers.",
"ErrorMailReceiver": null,
"Timeout": 30
}
],
"Timeout": 500,
"WriteToEventLog": true
}
Task to run a cmd.exe batch from a file or a string.
Set either CmdBatchJobTask.Filename or CmdBatchJobTask.BatchFileContent. In doubt CmdBatchJobTask.BatchFileContent wins!
The advantage of running a batch in mode CmdBatchRunType.LineByLine that the batch runs line per line as separated processes.
The lines must be independent from each other.
Batch commands as string (like in a .bat or .cmd file). Commands in the string run always in mode CmdBatchRunType.LineByLine. Set either CmdBatchJobTask.Filename or CmdBatchJobTask.BatchFileContent. In doubt CmdBatchJobTask.BatchFileContent wins!
Description of the job used for documentation
Mail addresses separarted with semicolon to send an error mail to
Filename of .bat or .cmd file to run. Set either CmdBatchJobTask.Filename or CmdBatchJobTask.BatchFileContent. In doubt CmdBatchJobTask.BatchFileContent wins!
Name of the job
Type of how to run a cmd batch file
Timeout in seconds the job will be terminated after start
{
"$type": "JobExecuter.Dal.Model.Job, JobExecuter.Dal",
"Name": "Sample job for CmdBatchJobTask",
"Description": "This job contains one or more sample JobTasks for class JobExecuter.Dal.Model.CmdBatchJobTask",
"ErrorMailReceiver": "errorreceiver1@test.xxx;errorreceiver2@test.xxx",
"SummaryMailReceiver": "summaryreceiver1@test.xxx;summaryreceiver2@test.xxx",
"JobTasks": [
{
"$type": "JobExecuter.Dal.Model.CmdBatchJobTask, JobExecuter.Dal",
"Filename": "testbackup.bak",
"RunType": "WholeFile",
"BatchFileContent": null,
"Name": "Run a batch (*.bat or *.cmd) with cmd.exe",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 110
},
{
"$type": "JobExecuter.Dal.Model.CmdBatchJobTask, JobExecuter.Dal",
"Filename": "testbackup.bak",
"RunType": "LineByLine",
"BatchFileContent": null,
"Name": "Run a batch (*.bat or *.cmd) with cmd.exe",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 110
},
{
"$type": "JobExecuter.Dal.Model.CmdBatchJobTask, JobExecuter.Dal",
"Filename": null,
"RunType": "LineByLine",
"BatchFileContent": "REm dfgsfd\r\ncopy d:\\tmp\\FolderBackup1\\*.* d:\\tmp\\FolderBackup2\\*.* /y\r\nREM fghdfg\r\ncopy d:\\tmp\\FolderBackup2\\*.* d:\\tmp\\FolderBackup1\\*.* /y\r\nREM fghfsd\r\n",
"Name": "Run a batch commands from a string",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 110
}
],
"Timeout": 500,
"WriteToEventLog": true
}
Creates a report of the current Windows domain's DHCP infrastructure
User running that job needs to be member of security group DHCP Administrators on the DHCP server
Description of the job used for documentation
Mail addresses separarted with semicolon to send an error mail to
Export documentation to HTML
Export documentation as <see cref="!:StructuredText" /> object to JSON.
If empty, the file will be placed in app subfolder docu with the name "job_docu.json"
Mail receiver(s) separated by semicolon. Intended to use for mail compliance report to compliance process owner
Name of the job
Export documentation to Pdf
Timeout in seconds the job will be terminated after start
Title for documentation
{
"$type": "JobExecuter.Dal.Model.Job, JobExecuter.Dal",
"Name": "Sample job for DhcpJobTask",
"Description": "This job contains one or more sample JobTasks for class JobExecuter.Dal.Model.DhcpJobTask",
"ErrorMailReceiver": "errorreceiver1@test.xxx;errorreceiver2@test.xxx",
"SummaryMailReceiver": "summaryreceiver1@test.xxx;summaryreceiver2@test.xxx",
"JobTasks": [
{
"$type": "JobExecuter.Dal.Model.DhcpJobTask, JobExecuter.Dal",
"Title": null,
"MailTo": null,
"HtmlTargetFileName": "D:\\tmp\\JobExecuter\\DHCP.htm",
"PdfTargetFileName": null,
"JsonTargetFileName": null,
"Name": "Report Dhcp infrastructure",
"Description": "Report the current domain's DHCP infrastructure",
"ErrorMailReceiver": null,
"Timeout": 30
}
],
"Timeout": 500,
"WriteToEventLog": true
}
Checks the disk size and places an error if free space is below a certain percentage or below a certain absolute value
Description of the job used for documentation
Drives to check for disk space
Mail addresses separarted with semicolon to send an error mail to
Name of the job
Timeout in seconds the job will be terminated after start
{
"$type": "JobExecuter.Dal.Model.Job, JobExecuter.Dal",
"Name": "Sample job for DiskSizeJobTask",
"Description": "This job contains one or more sample JobTasks for class JobExecuter.Dal.Model.DiskSizeJobTask",
"ErrorMailReceiver": "errorreceiver1@test.xxx;errorreceiver2@test.xxx",
"SummaryMailReceiver": "summaryreceiver1@test.xxx;summaryreceiver2@test.xxx",
"JobTasks": [
{
"$type": "JobExecuter.Dal.Model.DiskSizeJobTask, JobExecuter.Dal",
"Drives": [
{
"$type": "JobExecuter.Dal.Model.Drive, JobExecuter.Dal",
"Name": "C:",
"MinimumPercentageOfFreeSpace": 0.3,
"IpAddress": null
},
{
"$type": "JobExecuter.Dal.Model.Drive, JobExecuter.Dal",
"Name": "D:",
"MinimumPercentageOfFreeSpace": 0.4,
"IpAddress": null
},
{
"$type": "JobExecuter.Dal.Model.Drive, JobExecuter.Dal",
"Name": "\\\\bododata\\data$",
"MinimumPercentageOfFreeSpace": 0.7,
"IpAddress": null
},
{
"$type": "JobExecuter.Dal.Model.Drive, JobExecuter.Dal",
"Name": "C:",
"MinimumPercentageOfFreeSpace": 0.3,
"IpAddress": "192.168.12.219"
},
{
"$type": "JobExecuter.Dal.Model.Drive, JobExecuter.Dal",
"Name": "C:",
"MinimumPercentageOfFreeSpace": 0.3,
"IpAddress": "192.168.12.15"
}
],
"Name": "Sample for DiskSizeJobTask job task",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 30
}
],
"Timeout": 500,
"WriteToEventLog": true
}
Creates a report for a Microsoft DNS server
User running that job needs to be member of security group DNS administrators on the DNS server
Description of the job used for documentation
Mail addresses separarted with semicolon to send an error mail to
Export documentation to HTML
Export documentation as <see cref="!:StructuredText" /> object to JSON.
If empty, the file will be placed in app subfolder docu with the name "job_docu.json"
Mail receiver(s) separated by semicolon. Intended to use for mail compliance report to compliance process owner
Name of the job
Export documentation to Pdf
FQDN of the DNS server
Timeout in seconds the job will be terminated after start
Title for documentation
{
"$type": "JobExecuter.Dal.Model.Job, JobExecuter.Dal",
"Name": "Sample job for DnsJobTask",
"Description": "This job contains one or more sample JobTasks for class JobExecuter.Dal.Model.DnsJobTask",
"ErrorMailReceiver": "errorreceiver1@test.xxx;errorreceiver2@test.xxx",
"SummaryMailReceiver": "summaryreceiver1@test.xxx;summaryreceiver2@test.xxx",
"JobTasks": [
{
"$type": "JobExecuter.Dal.Model.DnsJobTask, JobExecuter.Dal",
"Server": "BCGS02DC.BCG-AD.DE",
"Title": null,
"MailTo": null,
"HtmlTargetFileName": "D:\\tmp\\JobExecuter\\DNS.htm",
"PdfTargetFileName": null,
"JsonTargetFileName": null,
"Name": "Report a DNS server's structure",
"Description": "Report DNS server's structure",
"ErrorMailReceiver": null,
"Timeout": 30
}
],
"Timeout": 500,
"WriteToEventLog": true
}
Creates a HTML documentation from diverse JSON files as input.
May be used i.e. for combining database compliance reports from different database servers to one compliance report HTML file.
Append the JobExecuter help file to documentation
Description of the job used for documentation
Mail addresses separarted with semicolon to send an error mail to
Filenames for HTML documentation as result of the job
message to deliver for testing purposes
Name of the job
Timeout in seconds the job will be terminated after start
Title for documentation
{
"$type": "JobExecuter.Dal.Model.Job, JobExecuter.Dal",
"Name": "Sample job for DocumentationJobTask",
"Description": "This job contains one or more sample JobTasks for class JobExecuter.Dal.Model.DocumentationJobTask",
"ErrorMailReceiver": "errorreceiver1@test.xxx;errorreceiver2@test.xxx",
"SummaryMailReceiver": "summaryreceiver1@test.xxx;summaryreceiver2@test.xxx",
"JobTasks": [
{
"$type": "JobExecuter.Dal.Model.DocumentationJobTask, JobExecuter.Dal",
"JsonFiles": [
"d_:\\tmp\\test.jsonSample.json",
"d:\\tmp\\test.jsonSample.json"
],
"HtmlTargetFiles": [
"d:\\tmp\\FolderBackup2\\documentation.htm"
],
"Title": "Full documentation",
"AppendHelpFile": false,
"Name": "Full documentation",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 30
}
],
"Timeout": 500,
"WriteToEventLog": true
}
Backup of a folder based on robocopy.exe by Microsoft.
Robocopy.exe is installed automatically starting with Windows 7 and Windows 2008 Server.
Defines how backup works. Default is FolderBackupType.PlainCopy.
Description of the job used for documentation
Mail addresses separarted with semicolon to send an error mail to
Directories to exclude from backup
Syntax: C:\ToExclude1 "C:\To Exclude2" c:\ToExclude3
Include subdirectories in the folder backup. Default: true
Name of the job
Show progress of backup. May reduce performance. Default: false
Folder to backup
Target folder for the backup
Timeout in seconds the job will be terminated after start
{
"$type": "JobExecuter.Dal.Model.Job, JobExecuter.Dal",
"Name": "Sample job for FolderBackupJobTask",
"Description": "This job contains one or more sample JobTasks for class JobExecuter.Dal.Model.FolderBackupJobTask",
"ErrorMailReceiver": "errorreceiver1@test.xxx;errorreceiver2@test.xxx",
"SummaryMailReceiver": "summaryreceiver1@test.xxx;summaryreceiver2@test.xxx",
"JobTasks": [
{
"$type": "JobExecuter.Dal.Model.FolderBackupJobTask, JobExecuter.Dal",
"SourcePath": "d:\\tmp\\FolderBackup1",
"TargetPath": "d:\\tmp\\FolderBackup2",
"ExcludeDirectories": null,
"BackupType": "CopyOnlyNewerFiles",
"ShowProgress": false,
"IncludeSubDirectories": true,
"Name": "Backup a folder to a local or network share target",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 60
}
],
"Timeout": 500,
"WriteToEventLog": true
}
Task to clean a folder from old files
Clean folder from files older then X days
Description of the job used for documentation
Mail addresses separarted with semicolon to send an error mail to
Path to clean
Name of the job
Timeout in seconds the job will be terminated after start
{
"$type": "JobExecuter.Dal.Model.Job, JobExecuter.Dal",
"Name": "Sample job for FolderCleanJobTask",
"Description": "This job contains one or more sample JobTasks for class JobExecuter.Dal.Model.FolderCleanJobTask",
"ErrorMailReceiver": "errorreceiver1@test.xxx;errorreceiver2@test.xxx",
"SummaryMailReceiver": "summaryreceiver1@test.xxx;summaryreceiver2@test.xxx",
"JobTasks": [
{
"$type": "JobExecuter.Dal.Model.FolderCleanJobTask, JobExecuter.Dal",
"FolderPath": "d:\\tmp",
"Days": 7,
"Name": "Clean a folder from files older than 7 days",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 60
}
],
"Timeout": 500,
"WriteToEventLog": true
}
Task to create a compliance report for a folder.
FolderComplianceJobTask requires running under administrative privileges due to accessing file system access control list.
Description of the job used for documentation
Mail addresses separarted with semicolon to send an error mail to
Path to create compiance reporting for
Export documentation to HTML
Export documentation as <see cref="!:StructuredText" /> object to JSON.
If empty, the file will be placed in app subfolder docu with the name "job_docu.json"
Mail receiver(s) separated by semicolon. Intended to use for mail compliance report to compliance process owner
Name of the job
Export documentation to Pdf
Timeout in seconds the job will be terminated after start
Title for documentation
{
"$type": "JobExecuter.Dal.Model.Job, JobExecuter.Dal",
"Name": "Sample job for FolderComplianceJobTask",
"Description": "This job contains one or more sample JobTasks for class JobExecuter.Dal.Model.FolderComplianceJobTask",
"ErrorMailReceiver": "errorreceiver1@test.xxx;errorreceiver2@test.xxx",
"SummaryMailReceiver": "summaryreceiver1@test.xxx;summaryreceiver2@test.xxx",
"JobTasks": [
{
"$type": "JobExecuter.Dal.Model.FolderComplianceJobTask, JobExecuter.Dal",
"FolderPaths": [
{
"$type": "JobExecuter.Dal.Model.ComplianceFolder, JobExecuter.Dal",
"Path": "D:\\daten\\projekte",
"IncludeSubFolders": true,
"ShowPermissionsOfPredefinedAccounts": true
}
],
"Title": null,
"MailTo": "test@test123.de",
"HtmlTargetFileName": "d:\\tmp\\JobExecuter\\Compliance2.htm",
"PdfTargetFileName": null,
"JsonTargetFileName": null,
"Name": "Create a compliance report for file system folders",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 60
}
],
"Timeout": 500,
"WriteToEventLog": true
}
Task to document the current JobExecuter job
Current job (will be used if JobDocuJobTask.JobJsonFileName is empty.
Description of the job used for documentation
Mail addresses separarted with semicolon to send an error mail to
Export documentation to HTML
Full path of the CJSON file with JobExecuter job to document
Export documentation as <see cref="!:StructuredText" /> object to JSON.
If empty, the file will be placed in app subfolder docu with the name "job_docu.json"
Mail receiver(s) separated by semicolon. Intended to use for mail compliance report to compliance process owner
Name of the job
Export documentation to Pdf
Timeout in seconds the job will be terminated after start
Title for documentation
{
"$type": "JobExecuter.Dal.Model.Job, JobExecuter.Dal",
"Name": "Sample job for JobDocuJobTask",
"Description": "This job contains one or more sample JobTasks for class JobExecuter.Dal.Model.JobDocuJobTask",
"ErrorMailReceiver": "errorreceiver1@test.xxx;errorreceiver2@test.xxx",
"SummaryMailReceiver": "summaryreceiver1@test.xxx;summaryreceiver2@test.xxx",
"JobTasks": [
{
"$type": "JobExecuter.Dal.Model.JobDocuJobTask, JobExecuter.Dal",
"JobJsonFileName": "",
"Title": null,
"MailTo": null,
"HtmlTargetFileName": null,
"PdfTargetFileName": null,
"JsonTargetFileName": "",
"Name": "Document the current JobExecuter job",
"Description": "If JobJsonFileName and DocuJsonFileName left empty, JobExecuter will insert current job file path and as docu file name the current job file path with the suffix _docu.json",
"ErrorMailReceiver": null,
"Timeout": 30
},
{
"$type": "JobExecuter.Dal.Model.JobDocuJobTask, JobExecuter.Dal",
"JobJsonFileName": "d:\\tmp\\FolderBackup2\\job.json",
"Title": null,
"MailTo": null,
"HtmlTargetFileName": null,
"PdfTargetFileName": null,
"JsonTargetFileName": "d:\\tmp\\FolderBackup2\\job.json",
"Name": "Document the a JobExecuter job",
"Description": "Set JobJsonFileName and DocuJsonFileName to a spezific path if needed",
"ErrorMailReceiver": null,
"Timeout": 30
}
],
"Timeout": 500,
"WriteToEventLog": true
}
Check successful ping to certain network addresses
Description of the job used for documentation
Mail addresses separarted with semicolon to send an error mail to
IP-addresses separated by semicolon
Name of the job
Timeout in milliseconds for Ping. Default: 15.000
Timeout in seconds the job will be terminated after start
{
"$type": "JobExecuter.Dal.Model.Job, JobExecuter.Dal",
"Name": "Sample job for PingCheckJobTask",
"Description": "This job contains one or more sample JobTasks for class JobExecuter.Dal.Model.PingCheckJobTask",
"ErrorMailReceiver": "errorreceiver1@test.xxx;errorreceiver2@test.xxx",
"SummaryMailReceiver": "summaryreceiver1@test.xxx;summaryreceiver2@test.xxx",
"JobTasks": [
{
"$type": "JobExecuter.Dal.Model.PingCheckJobTask, JobExecuter.Dal",
"IpAdresses": "192.168.12.15;192.168.12.20;192.168.12.1;8.8.8.8",
"PingTimeout": 15000,
"Name": "Sample task for ping check",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 60
}
],
"Timeout": 500,
"WriteToEventLog": true
}
Run a PowerShell script file
Description of the job used for documentation
Mail addresses separarted with semicolon to send an error mail to
Full path to a powershell script file to run. Path may contain blanks
Name of the job
The version of PowerShell to run the Model.PsBatchJobTask on
Timeout in seconds the job will be terminated after start
{
"$type": "JobExecuter.Dal.Model.Job, JobExecuter.Dal",
"Name": "Sample job for PsBatchJobTask",
"Description": "This job contains one or more sample JobTasks for class JobExecuter.Dal.Model.PsBatchJobTask",
"ErrorMailReceiver": "errorreceiver1@test.xxx;errorreceiver2@test.xxx",
"SummaryMailReceiver": "summaryreceiver1@test.xxx;summaryreceiver2@test.xxx",
"JobTasks": [
{
"$type": "JobExecuter.Dal.Model.PsBatchJobTask, JobExecuter.Dal",
"Filename": "PowerShellScript.ps1.bak",
"PowerShellVersion": "V01",
"Name": "Running a PowerShell batch file with PowerShell V01",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 30
},
{
"$type": "JobExecuter.Dal.Model.PsBatchJobTask, JobExecuter.Dal",
"Filename": "PowerShellScript.ps1.bak",
"PowerShellVersion": "V03",
"Name": "Running a PowerShell batch file with PowerShell V03",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 30
}
],
"Timeout": 500,
"WriteToEventLog": true
}
Run an app with or without parameters
Arguments to start the app with
Description of the job used for documentation
Mail addresses separarted with semicolon to send an error mail to
Full path to app to run. Path may contain blanks
Run app in interactive mode. default: false
Name of the job
Timeout in seconds the job will be terminated after start
{
"$type": "JobExecuter.Dal.Model.Job, JobExecuter.Dal",
"Name": "Sample job for RunAppJobTask",
"Description": "This job contains one or more sample JobTasks for class JobExecuter.Dal.Model.RunAppJobTask",
"ErrorMailReceiver": "errorreceiver1@test.xxx;errorreceiver2@test.xxx",
"SummaryMailReceiver": "summaryreceiver1@test.xxx;summaryreceiver2@test.xxx",
"JobTasks": [
{
"$type": "JobExecuter.Dal.Model.RunAppJobTask, JobExecuter.Dal",
"Filename": "robocopy.exe",
"Arguments": null,
"InteractiveMode": false,
"Name": "Sample for running a app without parmeters",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 30
},
{
"$type": "JobExecuter.Dal.Model.RunAppJobTask, JobExecuter.Dal",
"Filename": "robocopy.exe",
"Arguments": "/?",
"InteractiveMode": false,
"Name": "Sample for running a app with parameters",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 30
}
],
"Timeout": 500,
"WriteToEventLog": true
}
Task to take a full backup for all SQL databases (with exception of TempDb) on a Microsoft® SqlServer starting with version 2008.
Uses the following SQl statement: BACKUP DATABASE [{0}] TO DISK = N'JobExecuter technical documentation' WITH INIT, SKIP, FORMAT, NOUNLOAD, NAME = N'{0} full backup'
Description of the job used for documentation
Mail addresses separarted with semicolon to send an error mail to
File name schema for the backup file. ;ust contain placeholders.
Otherwise all backups are made to the same file (and overwrite it with each backup)
Must contain placeholders:
??server?? = Server name or Server and instance name
??database?? = database name
Optional placeholders are:
??date?? = date in format yyyymmdd
??time?? = date and time in format yyyymmddhhnn
Local target folder to backup database in
Name of the job
Target folder for the backup on a network share (if requested).
Remove local backup files after copying to network. Default: false
server name or server and instance name of a database server
Timeout in seconds the job will be terminated after start
{
"$type": "JobExecuter.Dal.Model.Job, JobExecuter.Dal",
"Name": "Sample job for SqlBackupAllDatabasesJobTask",
"Description": "This job contains one or more sample JobTasks for class JobExecuter.Dal.Model.SqlBackupAllDatabasesJobTask",
"ErrorMailReceiver": "errorreceiver1@test.xxx;errorreceiver2@test.xxx",
"SummaryMailReceiver": "summaryreceiver1@test.xxx;summaryreceiver2@test.xxx",
"JobTasks": [
{
"$type": "JobExecuter.Dal.Model.SqlBackupAllDatabasesJobTask, JobExecuter.Dal",
"LocalTarget": "d:\\tmp",
"NetworkTarget": null,
"FileName": "??server??_??database??.bak",
"RemoveLocalBackup": false,
"Server": ".\\sqlexpress",
"Name": "Local backup of all databases on a SqlServer instance",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 60
},
{
"$type": "JobExecuter.Dal.Model.SqlBackupAllDatabasesJobTask, JobExecuter.Dal",
"LocalTarget": "d:\\tmp",
"NetworkTarget": "d:\\tmp\\network",
"FileName": "testbackup.bak",
"RemoveLocalBackup": false,
"Server": ".\\sqlexpress",
"Name": "Network share backup of all databases on a SqlServer instance",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 60
}
],
"Timeout": 500,
"WriteToEventLog": true
}
Task to take a log file backup for a single SQL database on Microsoft® SqlServer starting with version 2008.
Uses the following SQl statement: BACKUP LOG [{0}] TO DISK = N'JobExecuter technical documentation' WITH INIT, SKIP, FORMAT, NOUNLOAD, NAME = N'{0} full backup'
Name of the database to backup
Description of the job used for documentation
Mail addresses separarted with semicolon to send an error mail to
File name for the backup file
May contain placeholders:
??server?? = Server name or Server and instance name
??database?? = database name
??date?? = date in format yyyymmdd
??time?? = date and time in format yyyymmddhhnn
Local target folder to backup database in
Name of the job
Target folder for the backup on a network share (if requested).
Remove local backup files after copying to network. Default: false
server name or server and instance name of a database server
Timeout in seconds the job will be terminated after start
{
"$type": "JobExecuter.Dal.Model.Job, JobExecuter.Dal",
"Name": "Sample job for SqlBackupLogSingleDatabaseJobTask",
"Description": "This job contains one or more sample JobTasks for class JobExecuter.Dal.Model.SqlBackupLogSingleDatabaseJobTask",
"ErrorMailReceiver": "errorreceiver1@test.xxx;errorreceiver2@test.xxx",
"SummaryMailReceiver": "summaryreceiver1@test.xxx;summaryreceiver2@test.xxx",
"JobTasks": [
{
"$type": "JobExecuter.Dal.Model.SqlBackupLogSingleDatabaseJobTask, JobExecuter.Dal",
"DatabaseName": "MediaDb",
"LocalTarget": "d:\\tmp",
"NetworkTarget": "d:\\tmp\\network",
"FileName": "testbackup.bak",
"RemoveLocalBackup": true,
"Server": ".\\sqlexpress",
"Name": "Backup database to a network path",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 60
}
],
"Timeout": 500,
"WriteToEventLog": true
}
Task to take a full backup for a single SQL database on Microsoft® SqlServer starting with version 2008.
Uses the following SQl statement: BACKUP DATABASE [{0}] TO DISK = N'JobExecuter technical documentation' WITH INIT, SKIP, FORMAT, NOUNLOAD, NAME = N'{0} full backup'
Name of the database to backup
Description of the job used for documentation
Mail addresses separarted with semicolon to send an error mail to
File name for the backup file
May contain placeholders:
??server?? = Server name or Server and instance name
??database?? = database name
??date?? = date in format yyyymmdd
??time?? = date and time in format yyyymmddhhnn
Local target folder to backup database in
Name of the job
Target folder for the backup on a network share (if requested).
Remove local backup files after copying to network. Default: false
server name or server and instance name of a database server
Timeout in seconds the job will be terminated after start
{
"$type": "JobExecuter.Dal.Model.Job, JobExecuter.Dal",
"Name": "Sample job for SqlBackupSingleDatabaseJobTask",
"Description": "This job contains one or more sample JobTasks for class JobExecuter.Dal.Model.SqlBackupSingleDatabaseJobTask",
"ErrorMailReceiver": "errorreceiver1@test.xxx;errorreceiver2@test.xxx",
"SummaryMailReceiver": "summaryreceiver1@test.xxx;summaryreceiver2@test.xxx",
"JobTasks": [
{
"$type": "JobExecuter.Dal.Model.SqlBackupSingleDatabaseJobTask, JobExecuter.Dal",
"DatabaseName": "MediaDb",
"LocalTarget": "d:\\tmp",
"NetworkTarget": null,
"FileName": "testbackup.bak",
"RemoveLocalBackup": false,
"Server": ".\\sqlexpress",
"Name": "Backup database to local file only",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 60
},
{
"$type": "JobExecuter.Dal.Model.SqlBackupSingleDatabaseJobTask, JobExecuter.Dal",
"DatabaseName": "MediaDb",
"LocalTarget": "d:\\tmp",
"NetworkTarget": "d:\\tmp\\network",
"FileName": "testbackup.bak",
"RemoveLocalBackup": true,
"Server": ".\\sqlexpress",
"Name": "Backup database to a network path",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 60
}
],
"Timeout": 500,
"WriteToEventLog": true
}
Task to run a SQL batch from a file or from a string against a Microsoft® SqlServer
SQL statements must be separated by GO. The SQL statements must address database correctly, i.e EXEC testdb.dbo.TestProc.
All SQL statements are running on the same connection. This makes it possible to use temporary tables in SQL statements.
Direct batch SQL to run
Name of the database to run the batch file in
Description of the job used for documentation
Mail addresses separarted with semicolon to send an error mail to
Path to the SQL batch file to run
Name of the job
server name or server and instance name of a database server
Timeout in seconds the job will be terminated after start
{
"$type": "JobExecuter.Dal.Model.Job, JobExecuter.Dal",
"Name": "Sample job for SqlBatchJobTask",
"Description": "This job contains one or more sample JobTasks for class JobExecuter.Dal.Model.SqlBatchJobTask",
"ErrorMailReceiver": "errorreceiver1@test.xxx;errorreceiver2@test.xxx",
"SummaryMailReceiver": "summaryreceiver1@test.xxx;summaryreceiver2@test.xxx",
"JobTasks": [
{
"$type": "JobExecuter.Dal.Model.SqlBatchJobTask, JobExecuter.Dal",
"DatabaseName": "MediaDb",
"FileName": "testbackup.bak",
"BatchContent": null,
"Server": ".\\sqlexpress",
"Name": "Run a SQL batch file",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 60
},
{
"$type": "JobExecuter.Dal.Model.SqlBatchJobTask, JobExecuter.Dal",
"DatabaseName": "MediaDb",
"FileName": null,
"BatchContent": "exec spTest 1\r\nGO\r\nexec spTest 2\r\nGO\r\nexec spTest 3",
"Server": ".\\sqlexpress",
"Name": "Run SQL batch directly from string",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 60
}
],
"Timeout": 500,
"WriteToEventLog": true
}
Task to collect compliance relevante information for all SQL databases on a Microsoft® SqlServer
Databases Master, Msdb, Model and TempDb are excluded by this task. Requires the job running user to be member of the sysadmin or securityadmin server roles.
Description of the job used for documentation
Mail addresses separarted with semicolon to send an error mail to
Export documentation to HTML
Export documentation as <see cref="!:StructuredText" /> object to JSON.
If empty, the file will be placed in app subfolder docu with the name "job_docu.json"
Mail receiver(s) separated by semicolon. Intended to use for mail compliance report to compliance process owner
Name of the job
Export documentation to Pdf
server name or server and instance name of a database server
Timeout in seconds the job will be terminated after start
Title for documentation
{
"$type": "JobExecuter.Dal.Model.Job, JobExecuter.Dal",
"Name": "Sample job for SqlComplianceAllDatabasesJobTask",
"Description": "This job contains one or more sample JobTasks for class JobExecuter.Dal.Model.SqlComplianceAllDatabasesJobTask",
"ErrorMailReceiver": "errorreceiver1@test.xxx;errorreceiver2@test.xxx",
"SummaryMailReceiver": "summaryreceiver1@test.xxx;summaryreceiver2@test.xxx",
"JobTasks": [
{
"$type": "JobExecuter.Dal.Model.SqlComplianceAllDatabasesJobTask, JobExecuter.Dal",
"Server": ".\\sqlexpress",
"Title": null,
"MailTo": "info@bodoconsult.de",
"HtmlTargetFileName": "d:\\tmp\\JobExecuter\\ServerXY_DatabaseComplianceReport.htm",
"PdfTargetFileName": null,
"JsonTargetFileName": null,
"Name": "Create compliance information for all databases on a SqlServer with exception of databases Master, Msdb, Model and TempDb",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 60
}
],
"Timeout": 500,
"WriteToEventLog": true
}
Task to collect compliance relevante information for a single SQL database on a Microsoft® SqlServer
Name of the database to backup
Description of the job used for documentation
Mail addresses separarted with semicolon to send an error mail to
Export documentation to HTML
Export documentation as <see cref="!:StructuredText" /> object to JSON.
If empty, the file will be placed in app subfolder docu with the name "job_docu.json"
Mail receiver(s) separated by semicolon. Intended to use for mail compliance report to compliance process owner
Name of the job
Export documentation to Pdf
server name or server and instance name of a database server
Timeout in seconds the job will be terminated after start
Title for documentation
{
"$type": "JobExecuter.Dal.Model.Job, JobExecuter.Dal",
"Name": "Sample job for SqlComplianceSingleDatabaseJobTask",
"Description": "This job contains one or more sample JobTasks for class JobExecuter.Dal.Model.SqlComplianceSingleDatabaseJobTask",
"ErrorMailReceiver": "errorreceiver1@test.xxx;errorreceiver2@test.xxx",
"SummaryMailReceiver": "summaryreceiver1@test.xxx;summaryreceiver2@test.xxx",
"JobTasks": [
{
"$type": "JobExecuter.Dal.Model.SqlComplianceSingleDatabaseJobTask, JobExecuter.Dal",
"Server": ".\\sqlexpress",
"DatabaseName": "DatabaseXY",
"Title": null,
"MailTo": "info@bodoconsult.de",
"HtmlTargetFileName": "d:\\tmp\\JobExecuter\\ServerXY_DatabaseXY_ComplianceReport.htm",
"PdfTargetFileName": null,
"JsonTargetFileName": null,
"Name": "Create compliance information for a single database",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 60
}
],
"Timeout": 500,
"WriteToEventLog": true
}
Task to take a documentation for all SQL databases on a Microsoft® SqlServer with exception of databases Master, Msdb, Model and TempDb.
A database may contain stored procs under the schema dbo and names beginning with spDbDocu_ for adding database specific content to the docmentation.
For parts of the documentation the user running the job needs certain permissions. To give least possible permissions, this user should be part of a user defined server role on the SqlServer with the permissions VIEW ANY DEFINITION and GRANT VIEW SERVER STATE. You should avoid making the user a sysadmin for security reasons. User must have access to each database with least possible permissions!
CREATE SERVER ROLE NameOfNewServerRole
GO
GRANT VIEW ANY DEFINITION TO NameOfNewServerRole
GO
GRANT VIEW SERVER STATE TO NameOfNewServerRole
GO
EXEC sp_addsrvrolemember 'domain\SG-SqlKeyUsers', 'NameOfNewServerRole'
Description of the job used for documentation
Mail addresses separarted with semicolon to send an error mail to
Export documentation to HTML
Export documentation as <see cref="!:StructuredText" /> object to JSON.
If empty, the file will be placed in app subfolder docu with the name "job_docu.json"
Mail receiver(s) separated by semicolon. Intended to use for mail compliance report to compliance process owner
Name of the job
Export documentation to Pdf
server name or server and instance name of a database server
Timeout in seconds the job will be terminated after start
Title for documentation
{
"$type": "JobExecuter.Dal.Model.Job, JobExecuter.Dal",
"Name": "Sample job for SqlDocuAllDatabasesJobTask",
"Description": "This job contains one or more sample JobTasks for class JobExecuter.Dal.Model.SqlDocuAllDatabasesJobTask",
"ErrorMailReceiver": "errorreceiver1@test.xxx;errorreceiver2@test.xxx",
"SummaryMailReceiver": "summaryreceiver1@test.xxx;summaryreceiver2@test.xxx",
"JobTasks": [
{
"$type": "JobExecuter.Dal.Model.SqlDocuAllDatabasesJobTask, JobExecuter.Dal",
"Server": ".\\sqlexpress",
"Title": null,
"MailTo": null,
"HtmlTargetFileName": "d:\\tmp\\testbackup.bak.htm",
"PdfTargetFileName": null,
"JsonTargetFileName": "d:\\tmp\\testbackup.bak.json",
"Name": "Create a documentation for all databases on a SqlServer with exception of databases Master, Msdb, Model and TempDb",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 60
}
],
"Timeout": 500,
"WriteToEventLog": true
}
Task to take a documentation for a single SQL database on a Microsoft® SqlServer.
A database may contain stored procs under the schema dbo and names beginning with spDbDocu_ foradding database specific content to the docmentation.
For parts of the documentation the user running the job needs certain permissions.
To give least possible permissions, this user should be part of a user defined server role on the SqlServer with the permissions VIEW ANY DEFINITION and GRANT VIEW SERVER STATE.
You should avoid making the user a sysadmin for security reasons. User must have access to each database with least possible permissions!
CREATE SERVER ROLE NameOfNewServerRole
GO
GRANT VIEW ANY DEFINITION TO NameOfNewServerRole
GO
GRANT VIEW SERVER STATE TO NameOfNewServerRole
GO
EXEC sp_addsrvrolemember 'domain\SG-SqlKeyUsers', 'NameOfNewServerRole'
Name of the database to backup
Description of the job used for documentation
Mail addresses separarted with semicolon to send an error mail to
Export documentation to HTML
Export documentation as <see cref="!:StructuredText" /> object to JSON.
If empty, the file will be placed in app subfolder docu with the name "job_docu.json"
Mail receiver(s) separated by semicolon. Intended to use for mail compliance report to compliance process owner
Name of the job
Export documentation to Pdf
server name or server and instance name of a database server
Timeout in seconds the job will be terminated after start
Title for documentation
{
"$type": "JobExecuter.Dal.Model.Job, JobExecuter.Dal",
"Name": "Sample job for SqlDocuSingleDatabaseJobTask",
"Description": "This job contains one or more sample JobTasks for class JobExecuter.Dal.Model.SqlDocuSingleDatabaseJobTask",
"ErrorMailReceiver": "errorreceiver1@test.xxx;errorreceiver2@test.xxx",
"SummaryMailReceiver": "summaryreceiver1@test.xxx;summaryreceiver2@test.xxx",
"JobTasks": [
{
"$type": "JobExecuter.Dal.Model.SqlDocuSingleDatabaseJobTask, JobExecuter.Dal",
"Server": ".\\sqlexpress",
"DatabaseName": "MediaDb",
"Title": null,
"MailTo": null,
"HtmlTargetFileName": "d:\\tmp\\database_docu.htm",
"PdfTargetFileName": null,
"JsonTargetFileName": "d:\\tmp\\database_docu.json",
"Name": "Create a documentation for a single database",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 60
}
],
"Timeout": 500,
"WriteToEventLog": true
}
Job to perfrom maintenance on a Microsoft® SqlServer instance
Needs sysadmin permissions to run successfully on the instance of SqlServer
Description of the job used for documentation
Mail addresses separarted with semicolon to send an error mail to
Fragmentation level 1 (low ->medium) in percent. 50 means 50 percent. Default: 5
Fragmentation level 2 (medium -> high) in percent. 50 means 50 percent. Default: 30
Export documentation to HTML
Export documentation as <see cref="!:StructuredText" /> object to JSON.
If empty, the file will be placed in app subfolder docu with the name "job_docu.json"
Mail receiver(s) separated by semicolon. Intended to use for mail compliance report to compliance process owner
Name of the job
Export documentation to PDF
server name or server and instance name of a database server
Timeout in seconds the job will be terminated after start
Title for documentation
{
"$type": "JobExecuter.Dal.Model.Job, JobExecuter.Dal",
"Name": "Sample job for SqlMaintenanceJobTask",
"Description": "This job contains one or more sample JobTasks for class JobExecuter.Dal.Model.SqlMaintenanceJobTask",
"ErrorMailReceiver": "errorreceiver1@test.xxx;errorreceiver2@test.xxx",
"SummaryMailReceiver": "summaryreceiver1@test.xxx;summaryreceiver2@test.xxx",
"JobTasks": [
{
"$type": "JobExecuter.Dal.Model.SqlMaintenanceJobTask, JobExecuter.Dal",
"MailTo": "test@test123.de",
"Title": null,
"HtmlTargetFileName": "d:\\tmp\\JobExecuter\\Maintenance.htm",
"PdfTargetFileName": null,
"JsonTargetFileName": null,
"FragmentationLevel1": 5,
"FragmentationLevel2": 30,
"Server": "192.168.10.125",
"Name": "Runs a maintenance job on a SqlServer instance",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 600
}
],
"Timeout": 500,
"WriteToEventLog": true
}
Task to save TaskScheduler tasks as XML and document it
Description of the job used for documentation
Mail addresses separarted with semicolon to send an error mail to
Filters task by the filter expression added here. Seperated values with semicolon. Task name has to start with filter expression
Export documentation to HTML
Export documentation as <see cref="!:StructuredText" /> object to JSON.
If empty, the file will be placed in app subfolder docu with the name "job_docu.json"
Mail receiver(s) separated by semicolon. Intended to use for mail compliance report to compliance process owner
Name of the job
Export documentation to Pdf
Target server to access for windows task scheduler. Default: null = localhost
Timeout in seconds the job will be terminated after start
Title for documentation
Folder to export the tasks in
{
"$type": "JobExecuter.Dal.Model.Job, JobExecuter.Dal",
"Name": "Sample job for TaskSchedulerDocuJobTask",
"Description": "This job contains one or more sample JobTasks for class JobExecuter.Dal.Model.TaskSchedulerDocuJobTask",
"ErrorMailReceiver": "errorreceiver1@test.xxx;errorreceiver2@test.xxx",
"SummaryMailReceiver": "summaryreceiver1@test.xxx;summaryreceiver2@test.xxx",
"JobTasks": [
{
"$type": "JobExecuter.Dal.Model.TaskSchedulerDocuJobTask, JobExecuter.Dal",
"XmlTargetPath": "d:\\tmp\\FolderBackup2",
"Filter": null,
"TargetServer": null,
"Title": null,
"MailTo": null,
"HtmlTargetFileName": "d:\\tmp\\FolderBackup2\\docu.html",
"PdfTargetFileName": null,
"JsonTargetFileName": "d:\\tmp\\FolderBackup2\\docu.json",
"Name": "Getting all task scheduler tasks from local computer",
"Description": null,
"ErrorMailReceiver": null,
"Timeout": 30
},
{
"$type": "JobExecuter.Dal.Model.TaskSchedulerDocuJobTask, JobExecuter.Dal",
"XmlTargetPath": "d:\\tmp\\FolderBackup2",
"Filter": "Adobe;Microsoft",
"TargetServer": null,
"Title": null,
"MailTo": null,
"HtmlTargetFileName": "d:\\tmp\\FolderBackup2\\docu.html",
"PdfTargetFileName": null,
"JsonTargetFileName": "d:\\tmp\\FolderBackup2\\docu.json",
"Name": "Getting task scheduler data from local computer with use of filter expressions",
"Description": "Filters only tasks starting with Adobe or Microsoft",
"ErrorMailReceiver": null,
"Timeout": 30
}
],
"Timeout": 500,
"WriteToEventLog": true
}
If in the directory of a JobExecuter job - there where the JSON file of job is located - is Readme.txt placed, this file will be included in the job's documentation.
In such a Readme.txt you can use the following tags to format the readme.txt if it is processed to the job documentation. The following tags are interpreted:
Header level 1
Header level 2
Header level 3
Definition list (must be followed by a DD tag)
List items
All tags will be finished at the next carriage return+line feed (char(13)+char(10)).
Comments made of asterikses (*) will be removed when formatting Readme.txt to plain text or HTML
The HTML result of processing such a Readme.txt you can find in the file Readme.htm
Date this documentation was created: 19.01.2021 15:47
All other registered and unregistered trademarks are the property of their respective owners.
Used in JobExecuter to provide JSON support
URL: https://www.newtonsoft.com/json
MIT License
MIT Copyright (c) 2003-2010 David Hall
Permission is hereby granted, free of charge, to any person obtaining a copy of this
software and associated documentation files (the "Software"), to deal in the Software
without restriction, including without limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Used in JobExecuter to provide TaskScheduler documentation
URL: https://github.com/dahall/TaskScheduler
MIT License
MIT Copyright (c) 2003-2010 David Hall
Permission is hereby granted, free of charge, to any person obtaining a copy of this
software and associated documentation files (the "Software"), to deal in the Software
without restriction, including without limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies
or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Used in JobExecuter to provide DHCP documentation
URL: https://github.com/garysharp/DhcpServerApi/
MIT License
Copyright (c) 2015 Gary Sharp
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Used in JobExecuter to provide Microsoft (R) SqlServer maintenance
URL: https://github.com/olahallengren/sql-server-maintenance-solution
MIT License
Copyright (c) 2019 Ola Hallengren
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Used in JobExecuter to create HTML pages
URL: https://github.com/google/code-prettify
@license
Copyright (C) 2015 Google Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.