Run Command On Workstation Job Folder Scalars

A Run Command On Workstation job folder contains a set of scalars that store information about the job. The scalars for Run Command On Workstation folders have both create and read access. Therefore, an application can create a Run Command On Workstation job folder.

A Run Command On Workstation job folder has the following scalars:

Job ID
String. Read-only access. Unique identifier for the job. The SMS system assigns the job a unique eight-character Job ID based on the site code (first three characters) and five characters (last five characters).
Job type
String. Read-only access. The type of job. For the F_INSTALLJOB folder, the Job type is always "microsoft\SMS\workstation_script".
Job comment
String. Modify access. Text that describes the job. This text is viewed only by administrators of the SMS system. You can use this field to save comments about the job for yourself or other SMS administrators. You may want to include the package name, job target, or other information that helps you identify the job. Maximum length is 255 characters.
Activate time
Time. Create access. The time when you want SMS to activate the job.

The time specifies the date and time after which the Scheduler activates the job and begins sending the job to the target sites. Note that the Scheduler uses the SQL Server time to evaluate the activation time. Also note that this time is written directly to the site database, that is, no time zone conversion is done.

Left icon
String. Read-only access. A string that sets the left icon for the job in the Jobs window of the SMS Administrator.
Center icon
String. Read-only access. A string that sets the middle icon for the job in the Jobs window of the SMS Administrator.
Right icon
String. Read-only access. A string that sets the right icon for the job in the Jobs window of the SMS Administrator.
Priority
Integer. Modify access. Priority setting that you want the job to have relative to other jobs when being sent to target sites.

The priority setting is used to ensure that higher priority jobs are sent before lower priority jobs. A High priority tells the Scheduler to send the job to a target site before any other jobs with a lower priority.

For example, if a Sender is sending a Medium or Low priority job and the Sender detects a High priority job in one of its outboxes, the Sender will suspend the sending of the lower priority job and send the High priority job first. After the High priority job has completed, the Sender will resume sending the lower priority job that was suspended.

In addition, an outbox can be set to process all jobs, only higher priority jobs, or no jobs at specified days and times.

High has priority over Medium and Low; Medium has priority over Low.

JOBPRI_HIGH
High
JOBPRI_MEDIUM
Medium
JOBPRI_LOW
Low
Repeat mode
Integer. Modify access. Interval at which the job is repeated.

The intervals range from Daily (every 24 hours after the Activate time) to Monthly. The interval is based on the SMS system time. A repeated job generates a new job each time that interval elapses.

JOBRPT_NEVER
Never. Perform the job once.
JOBRPT_DAILY
Daily. Repeat every 24 hours after the Activate time.
JOBRPT_WEEKLY
Weekly. Repeat every 7 days after the Activate time.
JOBRPT_BIWEEKLY
Biweekly. Repeat every 14 days after the Activate time.
JOBRPT_MONTHLY
Monthly. Repeat every month.
Cancel mode
Integer. Modify access. When Cancel mode is set to JOBCANCEL_CANCEL, the SMS system attempts to cancel the job. Any other value for this scalar has no effect.
JOBCANCEL_DONT_CANCEL
Do not cancel the job.
JOBCANCEL_CANCEL
Cancel the job.
Package ID
String. Modify access. The package identifier for the package used for the job. The package identifier is an eight-character identifier that the SMS system assigns to a package. Note that the first three characters are the site code for the site where the package was created.

Caution If your application is creating a Run Command On Workstation job, your application must ensure that this scalar is set to a valid package identifier. Your application can get the package identifier through the package's folder in a populated package container.

In addition, the Package identifier must be a package identifier for a package that has Workstations properties defined. For the set of scalars required for this type of package, see Creating a Package for Run Command On Workstation Jobs.

Your application must also specify for the WCL name scalar a workstation command line from this package only. Your application can get the workstation command lines for a package by retrieving the F_WCL folders in the package's folder.

Job target
Integer. Modify access. Method used to specify the computers where you want to run the package command. There are three ways to specify the target computers:
WKSTAJOB_TGT_QUERY
Specifies that the list of target computers is defined by the result of a query that is run when the job is activated.

When using this option, your application must also set the Query ID scalar to specify the query to use.

WKSTAJOB_TGT_MACHGROUP
Specifies that the list of target computers is defined by a machine group.

When using this option, your application must also set the Machine group name scalar to specify the machine group to use.

WKSTAJOB_TGT_MACHPATH
Specifies that the list of target computers is defined by a specified path.

When using this option, your application must also set the Machine path scalar to specify the path to use.

Note The actual job target computers are determined at the time the Scheduler activates the job. To see the actual target computers at each target site, look at the computers listed by machine folders with architecture JobDetails and with a Job ID scalar value equal to the job identifier of the job.

Query ID
String. Modify access. When WKSTAJOB_TGT_QUERY is set for the Job target scalar, Query ID specifies the identifier for the query whose results will be used to specify the target computers for the job. A query identifier is an eight-character identifier that the SMS system assigns to a query. Note that the first three characters are the site code for the site where the query was created.

Caution When creating a job, your application must ensure that this scalar is set to a valid query identifier. Your application can get the query identifier through the query's persistent filter in a populated filter container.

Machine group name
String. Modify access. When WKSTAJOB_TGT_MACHGROUP is set for the Job target scalar, Group name specifies the name of the machine group that will be used to specify the target computers for the job.

Caution When creating a job, your application must ensure that this scalar is set to a valid machine group name. Your application can get the machine group name through the machine group's folder in a populated machine group container.

Machine path
String. When WKSTAJOB_TGT_MACHPATH is set for the Job target scalar, Machine path specifies the target computers for the job by using an SMS system path.

The path has the following form:

site|domain|computername

You can use the * wildcard as a substitute for a whole group of sites, domains, or computer names.

For example, RED|FINANCE|* specifies all computers in the FINANCE domain at the Redmond site (with the site code RED), and RED|*|* specifies all computers in all domains at the Redmond site.

When you use a specific site for the Machine path scalar (such as RED|FINANCE|*), you can specify any of the domains and computers in that site, but you cannot specify any of the site's subsites.

To specify a site and its subsites, you must specify *|*|* for the Machine path scalar, set the Job target scalar to WKSTAJOB_TGT_MACHPATH, set the Limit to sites scalar to JOBTGT_SITE, set the Site limit name scalar to the site, and set the Include subsites scalar to JOBTGT_INCLUDESUBSITES.

To specify all computers at all sites, specify *|*|* for the Machine path scalar.

Limit to sites
Integer. Modify access. Option that narrows down the job target to only computers that satisfy both the job target and are within a particular site or site group.
JOBTGT_NOSITELIMIT
Specifies that the job target should be used with no site limiting.
JOBTGT_SITEGROUP
Enables your application to narrow down the job target to only computers that satisfy both the job target criteria and are within the sites in a site group.

When using this option, your application must also set the Site limit name scalar to specify the site group to use.

JOBTGT_SITE
Enables your application to narrow down the job target to only computers that satisfy both the job target criteria and are within a site.

When using this option, your application must also set the Site limit name scalar to specify the site to use.

Include subsites
Integer. Modify access. Option that specifies how a job is propagated to the subsites of the sites that you specified by Site limit name scalar. This scalar applies only if the Limit to sites scalar is set to JOBTGT_SITEGROUP or JOBTGT_SITE.
JOBTGT_NOSUBSITES
Specifies that only the sites specified by the Site limit name scalar are used.
JOBTGT_INCLUDESUBSITES
Enables your application to specify that the job target includes the subsites of the sites that you specfied in the Site limit name scalar.
Site limit name
String. Modify access. The name of the site or site group to which to limit the job target. This scalar applies only if the Limit to sites scalar is set to JOBTGT_SITEGROUP or JOBTGT_SITE.

If Limit to sites is set to JOBTGT_SITE, the Site limit name scalar specifies the name of the site to which to limit the job target.

If Limit to sites is set to JOBTGT_SITEGROUP, the Site limit name scalar specifies the name of the site group to which to limit the job target.

If the Include subsites scalar is set to JOBTGT_INCLUDESUBSITES, the job target is limited to the specified site or site group and its subsites.

Caution When creating a job, your application must ensure that this scalar is set to a valid site or site group name. Your application can get the site name through the site's site folder in a populated site container. Your application can get the site group name through the site group's site group folder in a populated site group container.

Send phase
Integer. Modify access. Method used to specify whether to send the package to target sites if those sites already have the package. There are two methods. You can select only one method.
WKSTAJOB_SEND_IF_NOT_SENT
Specifies that the package will be sent to the target sites only if SMS has not already sent the package to those sites.
WKSTAJOB_SEND_ALWAYS
Specifies that the package will be sent to all target sites even if those sites have already received the package. This selection causes the package to be recompressed (if it was previously sent). If you make a change to the package's source directory, you should set this flag.
Distribute phase
Integer. Modify access. Method used to specify the distribution servers where the compressed package is decompressed. The target computers will use one of the distribution servers to run the package command for the job. There are two methods for specifying the distribution servers. Your application can select one, both, or no method.
WKSTAJOB_DIST_EXISTING
Specifies that SMS overwrites the package source directory on the distribution servers where the package source directory already exists. The SMS system maintains a list of the locations where packages have been distributed.
WKSTAJOB_DIST_SPECIFIED
Specifies that SMS places the package source directory on the distribution servers specified by the machine group set in the Distribution servers scalar. If the machine group does not contain a server for a target site, the package source directory is placed on the servers in the Default Servers group at that target site.
Distribution servers
String. Modify access. The name of the machine group that contains the distribution servers on which to install the package.

When the Distribute phase scalar is set to WKSTAJOB_DIST_SPECIFIED, this machine group specifies the distributions servers for the job. If the machine group does not contain a server for a target site, the package source directory is placed on the servers in the Default Servers group at that target site.

To specify the Default Servers group, your application must set the Distribute phase scalar to WKSTAJOB_DIST_SPECIFIED, and set the Distribution servers scalar to NULL. Default Servers is a special machine group created at each site (Default Servers are maintained using the Site Properties dialog box in the SMS Administrator). If default servers are used as distribution servers at a target site, the SMS Scheduler (at the site where the job is created) builds the list of target distribution servers for the target sites. Note that the list of default servers is read from the site database of the site where the job was created. This means that the default servers on the list are the default servers that were last reported to the site where the job was created.

Caution When creating a job, your application must ensure that this scalar is set to a valid machine group name or set to NULL (NULL specifies the Default Servers group). Your application can get the machine group name through the machine group's folder in a populated machine group container.

Run workstation command
Integer. Modify access. This scalar specifies that the package command specified by WCL name scalar will be made available to the target computers for the job.

TRUE specifies that the package command will be made available at the target computers.

FALSE specifies that the job does not make a package command available to the target computers. You may want to set this scalar to FALSE if you only want to send the package to the site (where it is stored as a compressed package) or if you only want to place the package directory on distribution servers.

Note that if you set this scalar to TRUE and the Distribute phase scalar is set to NULL, the decompressed package is sent to default servers.

WCL name
String. Modify access. The name of the workstation command line for the package specified in the Package ID scalar.

When the user at a target computer chooses to run the package, the Package Command Manager executes this command line.

If the WCL name scalar is set to NULL, no package command is offered to the target computers. This is equivalent to clearing the Run Command check box in the Job Details dialog box for a Run Command On Workstation job in the SMS Administrator.

Offer time
Time. Modify access. The time after which the package command will be available on the target computers (that is, the time that the package appears in the computer's Package Command Manager).

When the time specified by the Offer time scalar expires at the target computer (according to the target computer's system time), the package appears in the Package Command Manager window.

Mandatory time
Time. Modify access. The time after which the package command will be mandatory on the target computers.

When the Use mandatory time scalar is set to TRUE, the package command will become mandatory after this date and time on the target computers.

Use mandatory time
Integer. Modify access. This scalar specifies that the package command to be run is mandatory. TRUE specifies mandatory. FALSE specifies optional. A mandatory package command is automatically started when the time specified by the Mandatory time scalar expires on the target computer.

When you set this scalar, use the Mandatory time scalar to set the time after which the Package Command Manager forces the package command to be executed—until that time the package command can be run optionally.

Force over slow link
Integer. Modify access. This scalar is used to ensure that a mandatory package is not forced to run across a slow communications link. TRUE specifies that the command will be run without regard for the speed of the link. FALSE specifies that the command will not be run across a slow link.

This flag can only be enabled when the Use mandatory time scalar is set to TRUE.

When the user logs on at the target computer, the Inventory Processor evaluates the link to the target computer's logon server. If the Force over slow link scalar is set to FALSE, and the link has a transmission rate that is slower than the rate specified with the Slow Networks Strategy setting (in the Inventory window of the Site Properties dialog box of the SMS Administrator), mandatory packages are not forced at the target computer.

Expire time
Time. Modify access. The time after which the package command will become unavailable (removed from the Package Command Manager window) at the target computers.

When you set the Use expire time scalar to TRUE, use the Expire time scalar to set the time when the package command is no longer available on the target computer.

Use expire time
Integer. Modify access. This scalar specifies that the package becomes unavailable (removed from the Package Command Manager window) at the target computers after the specified time. TRUE specifies that the package expires after the date specified by the Expire time scalar. FALSE specifies that the package is always available (never removed from the Package Command Manager window).

When you set this scalar to TRUE, use the Expire time scalar to set the time when the package command is no longer available on the target computer. When the time specified by the Expire time scalar expires at the target computer (according to the target computer's system time), the package is removed from the Package Command Manager window.

Job status
Integer. Read-only access. Indicates the overall status of the job across all target sites. There are six overall job states:
JOBSTAT_PENDING
Pending. Indicates that the job has not started and that the Scheduler is waiting to activate the job. When a job has this overall status, you can delete the job and prevent it from ever starting.
JOBSTAT_ACTIVE
Active. Indicates that the Scheduler has started the job and that SMS is currently carrying out the job without errors. The job may be complete or may still be in progress at the target sites or computers.
JOBSTAT_ACTIVE_FAILED
Retrying. Indicates that the job has failed at some target sites or target computers; however, SMS continues to attempt to complete the job at those sites or computers. The job may be complete or may still be in progress at other target sites or computers.
JOBSTAT_COMPLETE
Complete. Indicates that the job successfully completed its tasks at all target computers at all target sites. When a job has this overall status, you can delete the job because the system does no further processing on the job.

For Run Command On Workstation jobs, the overall status does not become Complete until every computer targeted in the job has successfully received the package and executed the job.

JOBSTAT_CANCELLED
Canceled. Indicates that the job was successfully canceled at all target sites. When a job has this overall status, you can delete the job because the system does no further processing on the job.
JOBSTAT_FAILED
Failed. Indicates that the job has failed at some or all target sites or target computers and that SMS has stopped trying to complete the job. The job may have completed successfully at some target sites or computers. You can note the job identifier and check the event log to determine why the job failed.
Sending status
Integer. Read-only access. Indicates the status for sending the job's package and instructions to all target sites:
None
Indicates that a Sender has not processed the job's send request (the Scheduler has not yet created a *.SRQ file).
JOBSTAT_PENDING
Indicates that the send requests for the job have been placed in Sender outboxes but that the Senders have not started to send the job package and instructions to the target sites. The Senders may not have detected the send requests for the job yet.
JOBSTAT_ACTIVE
Indicates that one or more Senders are in the process of sending the job package and instructions to the target sites (without errors), but have not completed.
JOBSTAT_ACTIVE_FAILED
Indicates that at least one Sender has failed at an attempt to send the job to a target site; however, the Senders continue to attempt to send the job to the sites. You can note the job identifier and check the event log to determine why the job failed.
JOBSTAT_COMPLETE
Indicates that the Senders successfully sent the job package and instructions to all target sites.
JOBSTAT_CANCELLED
Indicates that the job was successfully canceled before it was sent to the target sites.
JOBSTAT_FAILED
Indicates that one or more Senders have failed to send the job to one or more target sites and that they have stopped trying to send the job to those sites.
Working status
Integer. Read-only access. Indicates the job's progress at all target sites:
JOBSTAT_PENDING
Indicates that no target site has received the job package and instructions yet.
JOBSTAT_ACTIVE
Indicates that the one or more target sites have received the package and are in the process of carrying out the job at those sites (without errors), but have not completed.
JOBSTAT_ACTIVE_FAILED
Indicates that the job has failed at one or more target computers at the target sites; however, the site components continue to attempt to complete the job at the target computers.
JOBSTAT_COMPLETE
Indicates that the job successfully completed at all target computers at all target sites.
JOBSTAT_CANCELLED
Indicates that the job was successfully canceled at all computers at all target sites.
JOBSTAT_FAILED
Indicates that the job has failed at some or all target computers at one or more target sites and that the site components have stopped trying to complete the job. The job may have completed successfully at some target computers. You can note the job identifier and check the event log to determine why the job failed.
Cancel status
Integer. Read-only access. Indicates how SMS has progressed in canceling the job:
None
Indicates that the job has not been canceled.
JOBSTAT_PENDING
Indicates that the target sites have not yet received the instructions to cancel the job.
JOBSTAT_ACTIVE
Indicates that one or more target sites have received the cancel instructions and are in the process of canceling the job at those sites (without errors), but have not completed the cancellation.
JOBSTAT_ACTIVE_FAILED
Indicates that the system has failed to cancel the job at some target computers at one or more target sites; however, the site components continue to attempt to cancel the job at those target computers.
JOBSTAT_COMPLETE
Indicates that the job was successfully canceled at all target computers at all target sites.
JOBSTAT_FAILED
Indicates that the system has failed to cancel the job at some target computers at one or more target sites and that the site components have stopped trying to cancel the job. The job may have completed successfully at some target computers. You can note the job identifier and check the event log to determine why the job failed.