Commands

This page shows available commands in the FastTrack language. Refer to the Getting Started Guide for more information.

Commands syntax

Commands Reference
Active Directory - Computers

CreateComputer <ComputerName>
CreateComputer <ComputerName>, <ContainerOrOUName>

Creates a computer in the Active Directory. If ContainerOrOUName is specified, the computer is created in that Container or OU, otherwise in the root of the Active Directory. If domain is different than the domain of the executing user, specify group as <Domain>\<ComputerName> and <Domain>\<ContainerOrOUName>.
Example: CreateComputer AcmePC0010

DeleteComputer <ComputerName>

Deletes an Active Directory computer, if it exists. If domain is different than the domain of the executing user, specify computer as <Domain>\<ComputerName>.
Example: DeleteComputer AcmePC0010

DisableComputer <ComputerName>

Disables an Active Directory computer. If domain is different than the current users' domain, specify name <Domain>\<ComputerName>.
Example: DisableComputer AcmeComputer

EnableComputer <ComputerName>

Enables an Active Directory computer. If domain is different than the current users' domain, specify name <Domain>\<ComputerName>.
Example: EnableComputer AcmeComputer

RenameComputer <ComputerName>, <NewComputerName>

Renames an Active Directory computer. If domain is different than the current users' domain, specify name <Domain>\<ComputerName>. Use SetComputerName to rename a local computer.
Example: RenameComputer AcmePC0010,AcmeShopPC01

SetComputerCustomProperty <ComputerName>, <PropertyName>, <PropertyValue>

Changes a custom property for an Active Directory computer. Property name must be an LDAP property name like 'managedBy'; see the "Attribute Editor" property tab of the computer for a list of attribute and values. Multiple values can be passed for multi-attribute fields. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<ComputerName>.
Example: SetComputerCustomProperty AcmePC0010,managedBy,"[UserDistinguishedName AcmeSysAdm]"

SetComputerDescription <ComputerName>, <Description>

Sets the description field of an Active Directory computer. Use the SetLocalComputerDescription command to set the local description of a computer. If domain is different than the domain of the executing user, specify computer as <Domain>\<ComputerName>.
Example: SetComputerDescription AcmePC0010,Shop demo computer

SetLocalComputerDescription <Description>

Sets the local description of the computer. Use SetComputerDescription to set the property in the Active Directory.
Example: SetLocalComputerDescription Houston DC
Active Directory - Groups - Computers

AddComputerToGroup <ComputerName>, <GroupName>

Adds a computer to the Active Directory group, if not already member. If domain is different than the current users' domain, specify group as <Domain>\<GroupName> and <Domain>\<ComputerName>.
Example: AddComputerToGroup AcmeComputer, MSOfficeMachines

RemoveComputerFromGroup <ComputerName>, <GroupName>

Removes a computer from the Active Directory group, if already member. If domain is different than the current users' domain, specify group as <Domain>\<GroupName> and <Domain>\<ComputerName> .
Example: RemoveComputerFromGroup AcmeComputer, MSOfficeMachines
Active Directory - Groups - Users

AddUserToGroup <UserName>, <GroupName>

Adds a user to an Active Directory group, if not already member. If domain is different than the domain of the executing user, specify as <Domain>\<GroupName> and <Domain>\<UserName>.
Example: AddUserToGroup AcmeUser,Acme Operators

CloneUserGroups <UserName>, <TargetUserName>

Makes the second user member of the same groups as the first user. If second user is member of any additional groups, the user will be removed from these groups. The result is that the second user is member of the exact same groups as the first user, including having same primary group. Use the CopyUserGroups command to only add new memberships. If domain is different than the domain of the executing user, specify as <Domain>\<GroupName> and <Domain>\<UserName>.
Example: CloneUserGroups AcmeUser,NewAcmeUser

CopyUserGroups <UserName>, <TargetUserName>

Adds the second user to all groups that the first user is member of, including setting the primary group to the same group. Groups that the user is already member of are ignored. Use the CloneUserGroups command to remove additional groups that the second user is member of that the first one is not. If domain is different than the domain of the executing user, specify as <Domain>\<GroupName> and <Domain>\<UserName>.
Example: CopyUserGroups AcmeUser,NewAcmeUser

RemoveUserFromGroup <UserName>, <GroupName>

Removes a user from an Active Directory group, if already member. If domain is different than the domain of the executing user, specify as <Domain>\<GroupName> and <Domain>\<UserName>.
Example: RemoveUserFromGroup AcmeUser,Acme Operators

SetUserPrimaryGroup <UserName>, <GroupName>

Sets the primary group of a user. The user must be member of the group. If domain is different than the domain of the executing user, specify as <Domain>\<GroupName> and <Domain>\<UserName>.
Example: SetUserPrimaryGroup AcmeUser,Domain Admins
Active Directory - Groups

AddGroupToGroup <GroupName>, <TargetGroupName>

Adds a the first specified Active Directory group to the second Active Directory group, if not already member. If domain is different than the current users' domain, specify group as <Domain>\<DomainGroupName>.
Example: AddGroupToGroup AcmeHelpDesk,Acme Operators

CreateDomainLevelDistributionGroup <GroupName>
CreateDomainLevelDistributionGroup <GroupName>, <ContainerOrOUName>

Creates a Domain Level Active Directory Distribution group. If ContainerOrOUName is specified, the user is created in that Container or OU, otherwise in the root of the Active Directory. If domain is different than the domain of the executing user, specify group as <Domain>\<GroupName> and <Domain>\<ContainerOrOUName>.
Example: CreateDomainLevelDistributionGroup Acme Operators

CreateDomainLevelGroup <GroupName>
CreateDomainLevelGroup <GroupName>, <ContainerOrOUName>

Creates a Domain Level Active Directory Security group. If ContainerOrOUName is specified, the user is created in that Container or OU, otherwise in the root of the Active Directory. If domain is different than the domain of the executing user, specify group as <Domain>\<GroupName> and <Domain>\<ContainerOrOUName>.
Example: CreateDomainLevelGroup Acme Operators

CreateGlobalDistributionGroup <GroupName>
CreateGlobalDistributionGroup <GroupName>, <ContainerOrOUName>

Creates a Global Active Directory Distribution group. If ContainerOrOUName is specified, the user is created in that Container or OU, otherwise in the root of the Active Directory. If domain is different than the domain of the executing user, specify group as <Domain>\<GroupName> and <Domain>\<ContainerOrOUName>.
Example: CreateGlobalDistributionGroup Acme Operators

CreateGlobalGroup <GroupName>
CreateGlobalGroup <GroupName>, <ContainerOrOUName>

Creates a Global Active Directory Security group. If ContainerOrOUName is specified, the user is created in that Container or OU, otherwise in the root of the Active Directory. If domain is different than the domain of the executing user, specify group as <Domain>\<GroupName> and <Domain>\<ContainerOrOUName>.
Example: CreateGlobalGroup Acme Operators

CreateUniversalDistributionGroup <GroupName>
CreateUniversalDistributionGroup <GroupName>, <ContainerOrOUName>

Creates a Universal Active Directory Distribution group. If ContainerOrOUName is specified, the user is created in that Container or OU, otherwise in the root of the Active Directory. If domain is different than the domain of the executing user, specify group as <Domain>\<GroupName> and <Domain>\<ContainerOrOUName>.
Example: CreateUniversalDistributionGroup Acme Operators

CreateUniversalGroup <GroupName>
CreateUniversalGroup <GroupName>, <ContainerOrOUName>

Creates a Universal Active Directory Security group. If ContainerOrOUName is specified, the user is created in that Container or OU, otherwise in the root of the Active Directory. If domain is different than the domain of the executing user, specify group as <Domain>\<GroupName> and <Domain>\<ContainerOrOUName>.
Example: CreateUniversalGroup Acme Operators

DeleteGroup <GroupName>

Deletes an Active Directory group of any type, if it exists. If domain is different than the domain of the executing user, specify group as <Domain>\<GroupName>.
Example: DeleteGroup Acme Operators

DisableSimpleGroupCheck

Disables simple group checks for the UserIsMemberOf condition (default).

EnableSimpleGroupCheck

Enables simple group checks for the UserIsMemberOf condition, when used for the logged on user. The simple group check will not query the Active Directory for information about memberships, but will use the local Windows cache information. Simple group is quicker, but will disable support for cross-domain checks, distribution group memberships, recursive groups and when executed under User Account Control (UAC), will not return true on membership of administrator groups such as Domain Admins.

RemoveGroupFromGroup <GroupName>, <TargetGroupName>

Removes the first specified Active Directory group from the second Active Directory group, if already member. If domain is different than the current users' domain, specify group as <Domain>\<DomainGroupName>.
Example: RemoveGroupFromGroup AcmeHelpDesk,Acme Operators

RenameGroup <GroupName>, <NewGroupName>

Renames an Active Directory group. If domain is different than the current users' domain, specify group as <Domain>\<DomainGroupName>.
Example: RenameGroup AcmeHelpDesk,Acme HelpDesk

SetGroupCustomProperty <GroupName>, <PropertyName>, <PropertyValue>

Changes a custom property for an Active Directory group. Property name must be an LDAP property name like 'managedBy'; see the "Attribute Editor" property tab of the group for a list of attribute and values. Multiple values can be passed for multi-attribute fields. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<GroupName>.
Example: SetGroupCustomProperty AcmeHelpDesk,managedBy,"[UserDistinguishedName AcmeSysAdm]"

SetGroupDescription <GroupName>, <Description>

Sets the description field of an Active Directory group of any type. If domain is different than the domain of the executing user, specify group as <Domain>\<GroupName>.
Example: SetGroupDescription Acme Operators,HelpDesk operators within Acme Corp
Active Directory - Organizational Units - Computers

MoveComputer <ComputerName>, <ContainerOrOUName>

Moves a computer to a specific OU or container. The domain is, by default, the domain of the logged-on user. To specify another domain, use: <Domain>\<OUName>. An OU can be located by either its name (if unique), distinguished name or a special FastTrack slash notation. If the name of an OU is unique, simply use the name and it will automatically be found. If the name might be ambiguous, a slash notation from the root can be used instead of full distinguished name. For example an OU "Sales" under a root OU "America" would have a distinguished name of for example OU=Sales,OU=America,DC=ACME,DC=COM. Simply use America/Sales for simpler syntax instead. If the OU actually contains a slash, use double slash to escape.
Example: MoveComputer AcmePC0010,Acme Sales America
Active Directory - Organizational Units - Groups

MoveGroup <GroupName>, <ContainerOrOUName>

Moves a group to a specific OU or container. The domain is, by default, the domain of the logged-on user. To specify another domain, use: <Domain>\<OUName>. An OU can be located by either its name (if unique), distinguished name or a special FastTrack slash notation. If the name of an OU is unique, simply use the name and it will automatically be found. If the name might be ambiguous, a slash notation from the root can be used instead of full distinguished name. For example an OU "Sales" under a root OU "America" would have a distinguished name of for example OU=Sales,OU=America,DC=ACME,DC=COM. Simply use America/Sales for simpler syntax instead. If the OU actually contains a slash, use double slash to escape.
Example: MoveUser Acme Sales Staff,Acme Sales America
Active Directory - Organizational Units - Users

MoveUser <UserName>, <ContainerOrOUName>

Moves user to a specific OU or container. The domain is, by default, the domain of the logged-on user. To specify another domain, use: <Domain>\<OUName>. An OU can be located by either its name (if unique), distinguished name or a special FastTrack slash notation. If the name of an OU is unique, simply use the name and it will automatically be found. If the name might be ambiguous, a slash notation from the root can be used instead of full distinguished name. For example an OU "Sales" under a root OU "America" would have a distinguished name of for example OU=Sales,OU=America,DC=ACME,DC=COM. Simply use America/Sales for simpler syntax instead. If the OU actually contains a slash, use double slash to escape.
Example: MoveUser AcmeUser,Acme Sales America
Active Directory - Organizational Units

CreateOU <OUName>
CreateOU <OUName>, <ContainerOrOUName>

Creates an organizational unit in the Active Directory. If ContainerOrOUName is specified, the OU is created in that Container or OU, otherwise in the root of the Active Directory. The domain is, by default, the domain of the logged-on user. To specify another domain, use: <Domain>\<OUName>. An OU can be located by either its name (if unique), distinguished name or a special FastTrack slash notation. If the name of an OU is unique, simply use the name and it will automatically be found. If the name might be ambiguous, a slash notation from the root can be used instead of full distinguished name. For example an OU "Sales" under a root OU "America" would have a distinguished name of for example OU=Sales,OU=America,DC=ACME,DC=COM. Simply use America/Sales for simpler syntax instead. If the OU actually contains a slash, use double slash to escape.
Example: CreateOU Acme Sales America

DeleteOU <OUName>

Deletes an Active Directory organizational unit, if it exists. The domain is, by default, the domain of the logged-on user. To specify another domain, use: <Domain>\<OUName>. An OU can be located by either its name (if unique), distinguished name or a special FastTrack slash notation. If the name of an OU is unique, simply use the name and it will automatically be found. If the name might be ambiguous, a slash notation from the root can be used instead of full distinguished name. For example an OU "Sales" under a root OU "America" would have a distinguished name of for example OU=Sales,OU=America,DC=ACME,DC=COM. Simply use America/Sales for simpler syntax instead. If the OU actually contains a slash, use double slash to escape.
Example: DeleteOU Acme Sales America

DisableOURecursion

Disables recursion for conditions and collections on Organizational Unit operations. Conditions and collections only look at the current OU and not SubOUs.

EnableOURecursion

Enables recursion for conditions and collections on Organizational Unit operations. Recursion in enabled by default.

MoveOU <OUName>, <ContainerOrOUName>

Moves an organizational unit to a specific OU or container. The domain is, by default, the domain of the logged-on user. To specify another domain, use: <Domain>\<OUName>. An OU can be located by either its name (if unique), distinguished name or a special FastTrack slash notation. If the name of an OU is unique, simply use the name and it will automatically be found. If the name might be ambiguous, a slash notation from the root can be used instead of full distinguished name. For example an OU "Sales" under a root OU "America" would have a distinguished name of for example OU=Sales,OU=America,DC=ACME,DC=COM. Simply use America/Sales for simpler syntax instead. If the OU actually contains a slash, use double slash to escape.
Example: MoveOU Acme Sales America,Acme Sales Global

RenameOU <OUName>, <NewOUName>

Renames an Active Directory organizational unit. The domain is, by default, the domain of the logged-on user. To specify another domain, use: <Domain>\<OUName>. An OU can be located by either its name (if unique), distinguished name or a special FastTrack slash notation. If the name of an OU is unique, simply use the name and it will automatically be found. If the name might be ambiguous, a slash notation from the root can be used instead of full distinguished name. For example an OU "Sales" under a root OU "America" would have a distinguished name of for example OU=Sales,OU=America,DC=ACME,DC=COM. Simply use America/Sales for simpler syntax instead. If the OU actually contains a slash, use double slash to escape.
Example: RenameOU Acme Sales America,Acme Sales

SetOUCustomProperty <OUName>, <PropertyName>, <PropertyValue>

Changes a custom property for an Active Directory organizational unit. Property name must be an LDAP property name like 'managedBy'; see the "Attribute Editor" property tab of the organizational unit for a list of attribute and values. Multiple values can be passed for multi-attribute fields. The domain is, by default, the domain of the logged-on user. To specify another domain, use: <Domain>\<OUName>. An OU can be located by either its name (if unique), distinguished name or a special FastTrack slash notation. If the name of an OU is unique, simply use the name and it will automatically be found. If the name might be ambiguous, a slash notation from the root can be used instead of full distinguished name. For example an OU "Sales" under a root OU "America" would have a distinguished name of for example OU=Sales,OU=America,DC=ACME,DC=COM. Simply use America/Sales for simpler syntax instead. If the OU actually contains a slash, use double slash to escape.
Example: SetOUCustomProperty Acme Sales America,managedBy,"[UserDistinguishedName AcmeSysAdm]"

SetOUDescription <OUName>, <Description>

Sets the description field of an Active Directory organizational unit. The domain is, by default, the domain of the logged-on user. To specify another domain, use: <Domain>\<OUName>. An OU can be located by either its name (if unique), distinguished name or a special FastTrack slash notation. If the name of an OU is unique, simply use the name and it will automatically be found. If the name might be ambiguous, a slash notation from the root can be used instead of full distinguished name. For example an OU "Sales" under a root OU "America" would have a distinguished name of for example OU=Sales,OU=America,DC=ACME,DC=COM. Simply use America/Sales for simpler syntax instead. If the OU actually contains a slash, use double slash to escape.
Example: SetOUDescription Acme Sales America,All sales staff in the US
Active Directory - Users - Password

AllowUserPasswordChange <UserName>

Enables the ability to change password for an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: AllowUserPasswordChange AcmeUser

DisableUserMustChangePassword <UserName>

Sets the user not be forced to change password at next logon. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: DisableUserMustChangePassword AcmeUser

DisableUserPasswordExpiry <UserName>

Disables expiration of password for an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: DisableUserPasswordExpiry AcmeUser

DisallowUserPasswordChange <UserName>

Disables the ability to change password for an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: DisallowUserPasswordChange AcmeUser

EnableUserMustChangePassword <UserName>

Sets the user to must change password at next logon. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: EnableUserMustChangePassword AcmeUser

EnableUserPasswordExpiry <UserName>

Enables expiration of password for an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: EnableUserPasswordExpiry AcmeUser

SetUserPassword <UserName>, <EncryptedPassword>

Changes the password of an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>. Password must be encrypted in the editor using Tools->Encrypt Password or using the EncryptPassword function.
Example: SetUserPassword AcmeUser, Akut3sRS6e3kJHztyeqg9w==

SetUserPasswordPlain <UserName>, <PlainTextPassword>

Changes the password of an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>. Password is entered as plain text. SetUserPassword is recommended, unless the password is retrieved from user input.
Example: SetUserPassword AcmeUser, MyNewAcmePassword2
Active Directory - Users - Properties

ClearUserImage <UserName>
ClearUserImage <UserName>, <PropertyName>

Clears a user photo of an Active Directory user. The default attribute is "thumbnailPhoto", but other attributes can be specified, such as "jpegPhoto". Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: ClearUserPhoto AcmeUser

ClearUserWorkstations <UserName>

Allows the user to log on to any workstation by clearing the list of workstations that the user is allowed to log on to, which is listed by pressing the "Log on to..." under the user account tab in the Active Directory. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: ClearUserWorkstations AcmeUser

CopyUserImage <UserName>, <ImageFile>
CopyUserImage <UserName>, <ImageFile>, <PropertyName>

Copies a user photo of an Active Directory user to a disk file. The default attribute is "thumbnailPhoto", but other attributes can be specified, such as "jpegPhoto". Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: CopyUserImage AcmeUser,AcmeUser.jpg

SetUserAssistantPhoneNo <UserName>, <PhoneNo>

Changes the assistant's phone number of an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserAssistantPhoneNo AcmeUser,555.555.5555

SetUserCity <UserName>, <City>

Changes the "City" property of an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserCity AcmeUser,Los Angeles

SetUserCommonName <UserName>, <CommonName>

Changes the common name ("cn" attribute) of an Active Directory user. When using CreateUser the common name is the same as the account name. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserCommonName AcmeUser,Steve Hansson

SetUserCompany <UserName>, <CompanyName>

Changes the "Company" property of an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserCompany AcmeUser,Acme Corp

SetUserCountry <UserName>, <CountryName>

Changes the "Country" property of an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserCountry AcmeUser,United States

SetUserCustomProperty <UserName>, <PropertyName>, <PropertyValue>

Changes a custom property for an Active Directory user. Property name must be an LDAP property name like 'streetAddress'; see the "Attribute Editor" property tab of the user for a list of attribute and values. Multiple values can be passed for multi-attribute fields. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserCustomProperty AcmeUser,streetAddress,Acmeroad 55

SetUserDepartment <UserName>, <DepartmentName>

Changes the "Department" property of an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserDepartment AcmeUser,Sales

SetUserDescription <UserName>, <Description>

Changes the description of an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserDescription AcmeUser,Acme test user

SetUserDisplayName <UserName>, <DisplayName>

Changes the display name of an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserDisplayName AcmeUser,Steve Hansson

SetUserEMailAddress <UserName>, <EmailAddress>

Changes the principal name of an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserEMailAddress AcmeUser,acme@acme.com

SetUserExchangeCustomAttribute <UserName>, <Number>, <PropertyValue>

Changes an Exchange Custom Attribute (also known as Extension Attributes) for an Active Directory user. Number must be between 1 and 15. To clear the attribute, set property value to an empty string. If no username is specified, current user is assumed. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.

SetUserFaxNo <UserName>, <FaxNo>

Changes the "FaxNo" property of an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserFaxNo AcmeUser,555.555.5555

SetUserHomeDir <UserName>, <Path>

Changes the home path of an Active Directory user. Enter blank path to clear the home path. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserHomeDir AcmeUser,\\Acme\Home$\AcmeUser

SetUserHomeDrive <UserName>, <Drive>

Changes the home drive of an Active Directory user (e.g. H:). Enter blank path to clear the home drive. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserHomeDrive AcmeUser,H:

SetUserHomePhoneNo <UserName>, <PhoneNo>

Changes the "Home Phone" property of an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserHomePhoneNo AcmeUser,555.555.5555

SetUserImage <UserName>, <ImageFile>
SetUserImage <UserName>, <ImageFile>, <PropertyName>
SetUserImage <UserName>, <ImageFile>, <PropertyName>, <ScaledPixelSize>

Sets a user photo of an Active Directory user. The default attribute is "thumbnailPhoto", but other attributes can be specified, such as "jpegPhoto". ScaledPixelSize will scale the photo to a this maximum width or height in pixels. If ScaledPixelSize is 96 and the original image is 960x640, the image will be 96x64. If ScaledPixelSize is not specified, no scaling is done. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserPhoto AcmeUser,Acme.jpg

SetUserInitials <UserName>, <Initials>

Changes the initials of an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserInitials AcmeUser,SH

SetUserIPPhoneNo <UserName>, <PhoneNo>

Changes the "IP Phone" property of an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserIPPhoneNo AcmeUser,555.555.5555

SetUserLogonScript <UserName>, <File>

Changes the logon script path of an Active Directory user. Enter blank path to clear the logon script. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserLogonScript AcmeUser,\\Acme\NetLogon\FTLogon.exe

SetUserMobileNo <UserName>, <PhoneNo>

Changes the "Mobile" property of an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserMobileNo AcmeUser,555.555.5555

SetUserName <UserName>, <FirstName>, <LastName>

Changes the first name and last name of an Active Directory user. Use the SetUserCommonName and SetUserDisplayName commands to change the common and display names of the account. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserName AcmeUser,Steve,Hansson

SetUserNotes <UserName>, <Notes>

Changes the "Notes" property of an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.

SetUserOffice <UserName>, <Office>

Changes the "Office" property of an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserOffice AcmeUser,Acme office

SetUserPagerNo <UserName>, <PhoneNo>

Changes the "Pager" property of an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserPagerNo AcmeUser,555.555.5555

SetUserPhoneNo <UserName>, <PhoneNo>

Changes the "Telephone number" property of an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserPhoneNo AcmeUser,555-12345

SetUserPOBox <UserName>, <POBox>

Changes the "P.O. Box" property of an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.

SetUserPrincipalName <UserName>, <PrincipalName>

Changes the principal name of an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserPrincipalName AcmeUser,acme@acme.com

SetUserProfilePath <UserName>, <Path>

Changes the profile path of an Active Directory user. Enter blank path to clear the profile path. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserProfilePath AcmeUser,\\AcmeServer\Roaming$\AcmeUser

SetUserState <UserName>, <State>

Changes the "State" property of an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserState AcmeUser,California

SetUserStreet <UserName>, <Address>

Changes the "Street" property of an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserStreet AcmeUser,Fremont St. 4533

SetUserTitle <UserName>, <Title>

Changes the "Title" property of an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserTitle AcmeUser,CEO

SetUserWebPage <UserName>, <WebPage>

Changes the "Webpage" property of an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.

SetUserWorkstations <UserName>, <ListOfWorkstations>

Sets a list of workstations that the user is allowed to log on to, which is listed by pressing the "Log on to..." under the user account tab in the Active Directory. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserWorkstations AcmeUser,DesktopPC1244,LaptopPC4433

SetUserZip <UserName>, <ZipCode>

Changes the "Zip" property of an Active Directory user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserZip AcmeUser,90210
Active Directory - Users

CopyUser <UserName>, <NewUserName>, <EncryptedPassword>
CopyUser <UserName>, <NewUserName>, <EncryptedPassword>, <ContainerOrOUName>
CopyUser <UserName>, <NewUserName>, <EncryptedPassword>, <FirstName>, <LastName>
CopyUser <UserName>, <NewUserName>, <EncryptedPassword>, <ContainerOrOUName>, <FirstName>, <LastName>

Copies an Active Directory user account. The new user is created in the same container or OU as the source user, unless specified otherwise by parameters. The new user will be member of the same groups as the source user and non-personal attributes will be copied, such as company, department, address, department, logon script, etc. Personal attributes must be set afterwards with other commands, such as using the SetUserHomeDir command to the set the home folder directory. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName> and <Domain>\<ContainerOrOUName>. When specifying first name and last name, this information will be used to set the first name, last name, display name and common name properties. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
Example: CopyUser AcmeUser, NewAcmeUser, Akut3sRS6e3kJHztyeqg9w==

CopyUserPlain <UserName>, <NewUserName>, <EncryptedPassword>
CopyUserPlain <UserName>, <NewUserName>, <EncryptedPassword>, <ContainerOrOUName>
CopyUserPlain <UserName>, <NewUserName>, <EncryptedPassword>, <FirstName>, <LastName>
CopyUserPlain <UserName>, <NewUserName>, <EncryptedPassword>, <ContainerOrOUName>, <FirstName>, <LastName>

Copies an Active Directory user account. The new user is created in the same container or OU as the source user, unless specified otherwise by parameters. The new user will be member of the same groups as the source user and non-personal attributes will be copied, such as company, department, address, department, logon script, etc. Personal attributes must be set afterwards with other commands, such as using the SetUserHomeDir command to the set the home folder directory. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName> and <Domain>\<ContainerOrOUName>. When specifying first name and last name, this information will be used to set the first name, last name, display name and common name properties. Password is entered as plain text. CopyUser is recommended, unless the password is retrieved from user input.
Example: CopyUserPlain AcmeUser, NewAcmeUser, AcmePassword

CreateUser <UserName>, <EncryptedPassword>
CreateUser <UserName>, <EncryptedPassword>, <ContainerOrOUName>
CreateUser <UserName>, <EncryptedPassword>, <FirstName>, <LastName>
CreateUser <UserName>, <EncryptedPassword>, <ContainerOrOUName>, <FirstName>, <LastName>

Creates an Active Directory user account. If no ContainerOrOUName is specified, the new user is placed in the "Users" container. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName> and <Domain>\<ContainerOrOUName>. When specifying first name and last name, this information will be used to set the first name, last name, display name and common name properties. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
Example: CreateUser AcmeUser, Akut3sRS6e3kJHztyeqg9w==

CreateUserPlain <UserName>, <PlainTextPassword>
CreateUserPlain <UserName>, <PlainTextPassword>, <ContainerOrOUName>
CreateUserPlain <UserName>, <PlainTextPassword>, <FirstName>, <LastName>
CreateUserPlain <UserName>, <PlainTextPassword>, <ContainerOrOUName>, <FirstName>, <LastName>

Creates an Active Directory user account. If no ContainerOrOUName is specified, the new user is placed in the "Users" container. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName> and <Domain>\<ContainerOrOUName>. When specifying first name and last name, this information will be used to set the first name, last name, display name and common name properties. Password is entered as plain text. CreateUser is recommended, unless the password is retrieved from user input.
Example: CreateUserPlain AcmeUser, AcmePassword

DeleteUser <UserName>

Deletes an Active Directory user account, if it exists. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: DeleteUser AcmeUser

DisableUser <UserName>

Disables an Active Directory user, if it is currently enabled. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: DisableUser AcmeUser

EnableUser <UserName>

Enables an Active Directory user, if it is currently disabled. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: EnableUser AcmeUser

RemoveUserExpiry <UserName>

Removes account expiry of a user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: RemoveUserExpiry AcmeUser

RenameUser <UserName>, <NewName>

Renames a user account. Note that this does not change the common name. If the common name needs to changed, use the SetUserCommonName command. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: RenameUser AcmeUser, AcmeRenamedUser

SetUserExpiryDate <UserName>, <Date>

Set the expiry date of a user. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: SetUserExpiryDate AcmeUser, [AddDays 90]

UnlockUser <UserName>

Unlocks an Active Directory user, if it is currently locked. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<UserName>.
Example: UnlockUser AcmeUser
Azure Active Directory

ResetAzureUser

Resets the default user for all Azure Active Directory user features to the logged on user.

SetAzureApp <TenantName>, <ClientId>, <Key>

Points to the Azure Active Directory application that must be used for interaction.
Example: SetAzureApp acme.com,"c40ab109-8ed2-e6fe-43ed-f00523470e79","R5fTQh2TUtDA4NYId6QVnchwoP5IH0q/xoToin1PY5W="

SetAzureUser <UserName>

Sets the default user for all Azure Active Directory user features.
Example: SetAzureUser joe@acme.com
Backup and Replication - Excludes

SyncExcludeClear

Clears all exclude patterns for SyncDir, SyncDirSecure, CopyDir and CopyDirSecure operations.

SyncExcludeDir <DirectoryName>

Adds a directory to exclude from SyncDir, SyncDirSecure, CopyDir and CopyDirSecure operations. Any directory matching the file name will be excluded.
Example: SyncExcludeDir Pictures

SyncExcludeDirs <DirectoryName>
SyncExcludeDirs <ListOfDirectories>

Adds directory names or patterns to exclude from SyncDir, SyncDirSecure, CopyDir and CopyDirSecure operations. Wildcards are accepted like *picture*. All subdirectories and subfiles under a matched directory are excluded. ListOfDirectories simply means a dynamic number of parameters/directories; there can be any number of parameters from none to an infinite number of parameters.
Example: SyncExcludeDir Pictures,Movies,Backup

SyncExcludeFile <FileName>

Adds a file to exclude from SyncDir, SyncDirSecure, CopyDir and CopyDirSecure operations. Any file matching the file name will be excluded.
Example: SyncExcludeFile Index.dat

SyncExcludeFiles <FilePattern>
SyncExcludeFiles <ListOfFilePatterns>

Adds file names or patterns to exclude from SyncDir, SyncDirSecure, CopyDir and CopyDirSecure operations. Wildcards are accepted like *.dat. Any file matching the patterns will be excluded. ListOfFilePatterns simply means a dynamic number of parameters/patterns; there can be any number of parameters from none to an infinite number of parameters.
Example: SyncExcludeFile *.mp3,*.avi,*.jpg
Backup and Replication - Include

SyncIncludeClear

Clears all include patterns for SyncDir, SyncDirSecure, CopyDir and CopyDirSecure operations.

SyncIncludeFile <FileName>

Adds a file to include to SyncDir, SyncDirSecure, CopyDir and CopyDirSecure operations. Any file matching the file name will be included. Any files not matching all included files or file patterns will be excluded.
Example: SyncIncludeFile Index.dat

SyncIncludeFiles <FilePattern>
SyncIncludeFiles <ListOfFilePatterns>

Adds file names or patterns to include to SyncDir, SyncDirSecure, CopyDir and CopyDirSecure operations. Wildcards are accepted like *.dat. Any files not matching all included files or file patterns will be excluded. ListOfFilePatterns simply means a dynamic number of parameters/patterns; there can be any number of parameters from none to an infinite number of parameters.
Example: SyncIncludeFiles *.pst,*.ost
Backup And Replication - Settings

DisableSyncCancel

Removes the cancel button for commands SyncDir and SyncDirSecure.

DisableSyncLog

Disables logging for SyncDir, SyncDirSecure, CopyDir and CopyDirSecure operations.

DisableSyncRepairMode

Determines if secure operations using SyncDirSecure, SyncDirSecureHidden, CopyDirSecure and CopyDirSecureHidden checks for permission changes in files that are not new or have content changes. By default existing unchanged files are not checked for security changes for performance reasons, but folders are always checked. If an unchanged file exists in both source and destination, changes in file security will not be checked, unless explicitly overruled with the EnableSyncRepairMode command. The recommended setting is the default mode that can also be set with the DisableSyncRepairMode command. Refer to http://www.fasttrackscript.com/SyncDir for more information on this mode.

EnableSyncCancel <LogFile>

When enabled, a cancel button is displayed in the user interface for operations for the commands SyncDir and SyncDirSecure. By default the user can cancel. If the user clicks the cancel button, all current copies are finished to avoid data corruption and then the operation is cancelled. Use the LastSyncWasCancelled condition to determine, if the last operation was cancelled by the user. Use the DisableSyncCancel command to remove the cancellation option.

EnableSyncLog <LogFile>

When enabled, all operations using SyncDir, SyncDirSecure, CopyDir and CopyDirSecure are logged to this file. Refer to http://www.fasttrackscript.com/SyncDir for more information on this mode.

EnableSyncRepairMode

Determines if secure operations using SyncDirSecure, SyncDirSecureHidden, CopyDirSecure and CopyDirSecureHidden checks for permission changes in files that are not new or have content changes. By default existing unchanged files are not checked for security changes for performance reasons, but folders are always checked. If an unchanged file exists in both source and destination, changes in file security will not be checked, unless explicitly overruled with the EnableSyncRepairMode command. The recommended setting is the default mode that can also be set with the DisableSyncRepairMode command. Refer to http://www.fasttrackscript.com/SyncDir for more information on this mode.

SetIOThreads <NumberOfThreads>

Sets the number of threads that SyncDir, SyncDirSecure, CopyDir, CopyDirSecure, DeleteSubFiles and DeleteDir use. Default is 8, meaning that up to 8 simultaneous IO operations are executed in parallel.
Example: SetIOThreads 32

SetIOThreshold <ThresholdInMB>

Sets the size in MB, where SyncDir, SyncDirSecure, CopyDir and CopyDirSecure operations will copy single threaded (regardless of thread settings) and operate on block level instead of file level. Default is 50, meaning files over 50 MB will be copied single threaded. If number of IO threads is already set to 1 with the SetIOThreads command, this setting has no effect.
Example: SetIOThreshold 50
Backup and Replication

SyncDir <SourcePath>, <DestPath>

Synchronizes source directory tree to the destination directory making them the same, while only copying changes. The difference between SyncDir and SyncDirSecure is that SyncDirSecure will also copy and synchronize permissions. Files and directories issued with SyncExcludeDir and SyncExcludeFile are excluded. Symbolic link directories are ignored to prevent unintended copying of files. Will by default use 8 threads to execute, use SetIOThreads command to change number of threads. SyncDir will switch to single threaded and block level mode when files are over 50mb by default, use SetIOThreshold to change the threshold. Use the LastSyncWasCancelled condition to detect cancellation. The cancel button can be removed using the DisableSyncCancel command. Use the SetWaitCaption to change the "Please wait ..." header.
Example: SyncDir [UserDocumentsDir],[UserHomeDir]\DocumentsBackup

SyncDirHidden <SourcePath>, <DestPath>

Synchronizes source directory tree to the destination directory making them the same, while only copying changes. The difference between SyncDirHidden and SyncDirSecureHidden is that SyncDirSecureHidden will also copy and synchronize permissions. No user interface is shown during the process. Files and directories issued with SyncExcludeDir and SyncExcludeFile are excluded. Symbolic link directories are ignored to prevent unintended copying of files. Will by default use 8 threads to execute, use SetIOThreads command to change number of threads. SyncDir will switch to single threaded and block level mode when files are over 50mb by default, use SetIOThreshold to change the threshold.
Example: SyncDirHidden [UserDocumentsDir],[UserHomeDir]\DocumentsBackup

SyncDirSecure <SourcePath>, <DestPath>

Synchronizes source directory tree to the destination directory making them the same, while only copying changes. The difference between SyncDir and SyncDirSecure is that SyncDirSecure will also copy and synchronize permissions. If an unchanged file exists in both source and destination, changes in file security only will not be checked for performance reasons, unless explicitly overruled with the EnableSyncRepairMode command. Folder permissions are always checked. Files and directories issued with SyncExcludeDir and SyncExcludeFile are excluded. Symbolic link directories are ignored to prevent unintended copying of files. Will by default use 8 threads to execute, use SetIOThreads command to change number of threads. SyncDirSecure will switch to single threaded and block level mode when files are over 50mb by default, use SetIOThreshold to change the threshold. Use the LastSyncWasCancelled condition to detect cancellation. The cancel button can be removed using the DisableSyncCancel command.
Example: SyncDirSecure [UserDocumentsDir],[UserHomeDir]\DocumentsBackup

SyncDirSecureHidden <SourcePath>, <DestPath>

Synchronizes source directory tree to the destination directory making them the same, while only copying changes. The difference between SyncDirHidden and SyncDirSecureHidden is that SyncDirSecureHidden will also copy and synchronize permissions. If an unchanged file exists in both source and destination, changes in file security only will not be checked for performance reasons, unless explicitly overruled with the EnableSyncRepairMode command. Folder permissions are always checked. No user interface is shown during the process. Files and directories issued with SyncExcludeDir and SyncExcludeFile are excluded. Symbolic link directories are ignored to prevent unintended copying of files. Will by default use 8 threads to execute, use SetIOThreads command to change number of threads. SyncDir will switch to single threaded and block level mode when files are over 50mb by default, use SetIOThreshold to change the threshold.
Example: SyncDirSecureHidden [UserDocumentsDir],[UserHomeDir]\DocumentsBackup
Browsers

DisableProxyLocalAddressBypass

Disables proxy bypass for local addresses.

DisableProxyServer

Clears proxy server for the current user. Will also be disabled for running browsers and processes. Proxy changes will also take effect in Firefox and Chrome, unless the configuration in these are manually changed to not use system settings.

EnableProxyLocalAddressBypass

Enables proxy bypass for local addresses.

EnableProxyServer

Enables the current proxy server for the current user. Will also be enabled for running browsers and processes. Proxy changes will also take effect in Firefox and Chrome, unless the configuration in these are manually changed to not use system settings.

InstallVirtualBrowser <ScriptFile>

Installs a virtual browser named "FastTrack Virtual Browser" to handle http and https requests; refer to www.fasttrackscript.com/BrowserControl for more information. The command must be executed as an elevated administrator to install the virtual browser. The command has no effect on operating systems previous to Windows 8 - use the SetScriptAsDefaultBrowser for these operating systems. If the script has no path, it will automatically be copied to the local machine. If the script has a path, the script will execute from this location. Inside the script use the [VirtualBrowserURL] function to get the url to use. The intention of the command is to use a controller script to launch browsers based on logic, such as the url and start a browsers exe file based on this logic and pass the [VirtualBrowserURL] value. Refer to www.fasttrackscript.com/BrowserControl for more information.
Example: InstallVirtualBrowser MyController.fsh

RemoveDefaultBrowserChecks

Removes the default browser checks in Internet Explorer, Firefox and Chrome. This is automatically done when using the SetDefaultBrowser or SetScriptAsDefaultBrowser commands. When using the InstallVirtualBrowser command and Windows 2012 Group Policies, the command can be used in logon script to remove the annoyance of default browser notification in the browser set by Group Policies. Refer to www.fasttrackscript.com/BrowserControl for more information.

RemoveVirtualBrowser

Removes a virtual browser set with the InstallVirtualBrowser command. Refer to www.fasttrackscript.com/BrowserControl for more information.

SetDefaultBrowser <Browser>

Sets the default browser and removes the default browser checks in Internet Explorer, Firefox and Chrome. Notice that this command has no effect starting from Windows 8, where you must use Group Policies to control the default browser - refer to www.fasttrackscript.com/BrowserControl for more information. Possible values are "Internet Explorer", "Chrome" and "FireFox". If the browser is not installed, the default browser is not changed. For other browsers, select a default browser in your own computer and use the value set under HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http - using a custom value does not work in Windows XP.
Example: SetDefaultBrowser Chrome

SetHomePage <Url>

Sets the browser home page for the current user. The change is immediate on Internet Explorer. On Firefox and Chrome, the change will apply if the browser is not open and the user has a browser profile. For logon scripts, use this command in the prelogon.fsh part.
Example: SetHomePage www.google.com

SetProxyBypassAddresses <ListOfAddresses>

Sets hostnames/addresses for the proxy to bypass. An empty list will clear the addresses.

SetProxyServer <Server>, <Port>

Sets and enables proxy server for the current user. The setting will also take effect on running browsers. Proxy changes will also take effect in Firefox and Chrome, unless the configuration in these are manually changed to not use system settings.
Example: SetProxyServer acmeproxy.acme.com,8080

SetScriptAsDefaultBrowser <ScriptFile>

Installs a script as the default browser and removes the default browser checks in Internet Explorer, Firefox and Chrome. Notice that this command has no effect starting from Windows 8. On Windows 8 the InstallVirtualBrowser command must be used - refer to www.fasttrackscript.com/BrowserControl for more information. Inside the script use the [VirtualBrowserURL] function to get the url to use. The intention of the command is to use a controller script to launch browsers based on logic, such as the url and start a browsers exe file based on this logic and pass the [VirtualBrowserURL] value. Refer to www.fasttrackscript.com/BrowserControl for more information.
Example: SetScriptAsDefaultBrowser MyController.fsh
Citrix - Client

DisableSeamlessIcaMode

Disables seamless mode. Must be used when the application is a published desktop.

EnableSeamlessIcaMode

Enables seamless mode when possible for published applications and published desktops executed with the RunIcaApp and RunIcaAppDirect commands.

RunIcaApp <XMLBroker>, <ApplicationName>
RunIcaApp <XMLBroker>, <ApplicationName>, <UserName>, <EncryptedPassword>

Shows a Citrix published application. To specify a another port than 80 for the Citrix XML Broker port, use <XMLBroker>:<Port> instead of just <XMLBroker>. When the user stops the session, the script continues. Use <Domain>\<UserName> to specify domain for the connecting user. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function. If the published application is a desktop, use the DisableSeamlessIcaMode command first to disable seamless mode. Citrix receiver must be installed.

RunIcaAppDirect <Server>, <ApplicationName>
RunIcaAppDirect <Server>, <ApplicationName>, <UserName>, <EncryptedPassword>

Shows a Citrix published application from a specific server. To specify a another port than the default 1494, use <Server>:<Port> instead of just <Server>. When the user stops the session, the script continues. Use <Domain>\<UserName> to specify domain for the connecting user. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function. If the published application is a desktop, use the DisableSeamlessIcaMode command first to disable seamless mode. Citrix receiver must be installed.

RunIcaFile <IcaFile>
RunIcaFile <IcaFile>, <UserName>, <EncryptedPassword>

Shows a Citrix session based on an ICA file. When the user stops the session, the script continues. Use <Domain>\<UserName> to specify domain for the connecting user. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function. To specify a another port than the default 1494, use <Server>:<Port> instead of just <Server>. Citrix receiver must be installed.

SetIcaFixedSize <Width>, <Height>
SetIcaFixedSize <Width>, <Height>, <Depth>

Sets the size in pixels of new Citrix desktops created with RunIcaApp, RunIcaAppDirect and ShowIcaDesktop commands. Setting the size of a seamless application is not supported by Citrix and therefore this command only takes effect with RunIcaApp and RunIcaAppDirect, when seamless mode is disabled. Depth can be 16 or 24 for number of color bit. To restore the default size, use the SetIcaSize command and set size to 80 percent.
Example: SetIcaDesktopFixedSize 1024,768

SetIcaSize <Percent>
SetIcaSize <PercentX>, <PercentY>
SetIcaSize <PercentX>, <PercentY>, <Depth>

Sets the size of new Citrix desktops created with RunIcaApp, RunIcaAppDirect and ShowIcaDesktop commands. Setting the size of a seamless application is not supported by Citrix and therefore this command only takes effect with RunIcaApp and RunIcaAppDirect, when seamless mode is disabled. The size is in percent of the screen resolution. Setting the percent to 100 invokes full screen mode. For instance a percent of 80 will show all subsequent applications filling 80% of the screen in both directions on any given computer at any given resolution. Depth can be 16 or 24 for number of color bit. To restore the default size, set size to 80 percent.
Example: SetIcaAppSize 90,90

ShowFullIcaDesktop <Server>
ShowFullIcaDesktop <Server>, <UserName>, <EncryptedPassword>

Shows a full-screen Citrix ICA desktop on a specific server. The session is full-screen regardless of seamless and size settings. When the user stops the session, the script continues. Use <Domain>\<UserName> to specify domain for the connecting user. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function. To specify a another port than the default 1494, use <Server>:<Port> instead of just <Server>. Citrix receiver must be installed.

ShowIcaDesktop <Server>
ShowIcaDesktop <Server>, <UserName>, <EncryptedPassword>

Shows a Citrix ICA desktop on a specific server. When the user stops the session, the script continues. Use <Domain>\<UserName> to specify domain for the connecting user. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function. To specify a another port than the default 1494, use <Server>:<Port> instead of just <Server>. Citrix receiver must be installed.
Clipboard

SetClipboard <Value>

Puts text on the clipboard.
Cloud Inventory - Cloud Account

UploadBasicInventory

UploadBasicInventory is a scaled-down version of UploadInventory. If you do not want to use the list of installed software, you can save bandwidth by uploading only hardware information. It is recommended to UploadInventory, unless there is an explicit reason not to. It is safe to always call UploadBasicInventory in for example a logon and/or SmartDock script, as the upload only happens, when inventory information is changed. If no information is changed over a longer period of time, an upload is made every 2 weeks to keep the last inventory date updated. This is done to allow you to use the last inventory date as an indicator to identify computers that no longer exist. In typical scenarios, a computer will upload about 2 kilobytes per month only with UploadBasicInventory, whereas UploadInventory will typically upload about 10 kilobytes. To see the actual information sent, use the HardwareInventoryXML function, which returns the same information in a different format. Any parameters added as custom information will be shown on the client detail page on the reporting site and are fully filterable. Custom information could for example be additional information from your Active Directory that you would like to attach to your inventory information. Please refer to http://www.fasttrackscript.com/SkyBox for more information on inventory.
Example: If OnceAWeek Then UploadHardwareInventory

UploadInventory
UploadInventory <ListOfCustomValues>

Uploads encrypted and compressed inventory information to your personal inventory web on http://www.fasttrackscript.com/Inventory. It is safe to always call UploadInventory in for example a logon and/or SmartDock script, as the upload only happens, when inventory information is changed. ListOfCustomValues simply means a dynamic number of parameters/values; there can be any number of parameters from none to an infinite number of parameters. If hardware information is changed, the upload is about 500 bytes and if the list of installed software is changed, the upload is typically about 2 kilobytes. If no information is changed over a longer period of time, a hardware upload is made every 2 weeks to keep the last inventory date updated. This is done to allow you to use the last inventory date as an indicator to identify computers that no longer exist. In typical scenarios, a computer will upload about 10 kilobytes per month only. To see the actual information sent, use the InventoryXML function, which returns the same information in a different format. Any parameters added as custom information will be shown on the client detail page on the reporting site and are fully filterable. Custom information could for example be additional information from your Active Directory that you would like to attach to your inventory information. Please refer to http://www.fasttrackscript.com/SkyBox for more information on inventory. The difference between UploadInventory and SaveInventory is that UploadInventory is for the cloud-based inventory and SaveInventory is for a local SkyBox server.
Example: If OnceAWeek Then UploadInventory
Cloud Inventory - Local Server

LogInventoryError <DataBrokerUrl>, <Category>, <Event>
LogInventoryError <DataBrokerUrl>, <Category>, <Event>, <UserName>, <EncryptedPassword>

Uploads an event of type 'Error' to a local SkyBox Server. See more documentation on http://www.fasttrackscript.com/Inventory. The data broker url can be found at the top right corner in the local SkyBox server web, once logged in. If an event cannot be stored, an error occurs. The username and password is for use when the inventory web site has Windows authentication (other authentications such as forms authentication must be disabled). Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
Example: LogInventoryError 192.168.1.3,Backup status,Backup successful

LogInventoryEvent <DataBrokerUrl>, <Category>, <Event>
LogInventoryEvent <DataBrokerUrl>, <Category>, <Event>, <UserName>, <EncryptedPassword>

Uploads an event of type 'Information' to a local SkyBox Server. See more documentation on http://www.fasttrackscript.com/Inventory. The data broker url can be found at the top right corner in the local SkyBox server web, once logged in. If an event cannot be stored, an error occurs. The username and password is for use when the inventory web site has Windows authentication (other authentications such as forms authentication must be disabled). Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
Example: LogInventoryEvent 192.168.1.3,Backup status,Backup successful

LogInventoryWarning <DataBrokerUrl>, <Category>, <Event>
LogInventoryWarning <DataBrokerUrl>, <Category>, <Event>, <UserName>, <EncryptedPassword>

Uploads an event of type 'Warning' to a local SkyBox Server. See more documentation on http://www.fasttrackscript.com/Inventory. The data broker url can be found at the top right corner in the local SkyBox server web, once logged in. If an event cannot be stored, an error occurs. The username and password is for use when the inventory web site has Windows authentication (other authentications such as forms authentication must be disabled). Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
Example: LogInventoryWarning 192.168.1.3,Backup status,Backup successful

SaveInventory <DataBrokerUrl>
SaveInventory <DataBrokerUrl>, <ListOfCustomValues>

Uploads or refreshes inventory data for the executing computer to a local SkyBox Server. The data broker url can be found at the top right corner in the local SkyBox server web, once logged in. ListOfCustomValues simply means a dynamic number of parameters/values; there can be any number of parameters from none to an infinite number of parameters. If hardware information is changed, the upload is about 500 bytes and if the list of installed software is changed, the upload is typically about 2 kilobytes. The SaveInventory command is for open web sites and SaveInventorySecure is for use when the inventory web site has Windows authentication (other authentications such as forms authentication must be disabled). Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function. If no information is changed over a longer period of time, a hardware upload is made every 2 weeks to keep the last inventory date updated. This is done to allow you to use the last inventory date as an indicator to identify computers that no longer exist. In typical scenarios, a computer will upload about 10 kilobytes per month only. To see the actual information sent, use the InventoryXML function, which returns the same information in a different format. Any parameters added as custom information will be shown on the client detail page on the reporting site and are fully filterable. Custom information could for example be additional information from your Active Directory that you would like to attach to your inventory information. Please refer to http://www.fasttrackscript.com/SkyBox for more information on inventory. The difference between UploadInventory and SaveInventory is that UploadInventory is for the cloud-based inventory and SaveInventory is for a local SkyBox server.
Example: SaveInventory 192.168.1.3

SaveInventorySecure <DataBrokerUrl>, <UserName>, <EncryptedPassword>
SaveInventorySecure <DataBrokerUrl>, <UserName>, <EncryptedPassword>, <ListOfCustomValues>

Uploads or refreshes inventory data for the executing computer to a local SkyBox Server. The data broker url can be found at the top right corner in the local SkyBox server web, once logged in. ListOfCustomValues simply means a dynamic number of parameters/values; there can be any number of parameters from none to an infinite number of parameters. If hardware information is changed, the upload is about 500 bytes and if the list of installed software is changed, the upload is typically about 2 kilobytes. The SaveInventory command is for open web sites and SaveInventorySecure is for use when the inventory web site has Windows authentication (other authentications such as forms authentication must be disabled). Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function. If no information is changed over a longer period of time, a hardware upload is made every 2 weeks to keep the last inventory date updated. This is done to allow you to use the last inventory date as an indicator to identify computers that no longer exist. In typical scenarios, a computer will upload about 10 kilobytes per month only. To see the actual information sent, use the InventoryXML function, which returns the same information in a different format. Any parameters added as custom information will be shown on the client detail page on the reporting site and are fully filterable. Custom information could for example be additional information from your Active Directory that you would like to attach to your inventory information. Please refer to http://www.fasttrackscript.com/SkyBox for more information on inventory. The difference between UploadInventory and SaveInventory is that UploadInventory is for the cloud-based inventory and SaveInventory is for a local SkyBox server.
Example: SaveInventory 192.168.1.3,acmeuser,[EncryptPassword acmepass]
Cloud Jobs

InstallUserJobsDownloader

Installs the download handler that is executed, whenever a user logs on. This handler basically just executes the RunUserJobs command, when a user logs on. This command requires local admin rights and UAC elevation (see www.fasttrackscript.com/uac for more information on UAC). Use url for a local SkyBox server. The data broker url for a local SkyBox server can be found at the top right corner in the local SkyBox server web, once logged in. The username and password is for use when the inventory web site has Windows authentication (other authentications such as forms authentication must be disabled). Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.

RunSystemJobs
RunSystemJobs <DataBrokerUrl>
RunSystemJobs <DataBrokerUrl>, <UserName>, <EncryptedPassword>

Downloads and executes system jobs from a SkyBox server. If the job is deleted from the server, the job will also be removed on clients. This command requires local admin rights and UAC elevation (see www.fasttrackscript.com/uac for more information on UAC). Use url for a local SkyBox server. The data broker url for a local SkyBox server can be found at the top right corner in the local SkyBox server web, once logged in. The username and password is for use when the inventory web site has Windows authentication (other authentications such as forms authentication must be disabled). Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.

RunUserJobs
RunUserJobs <DataBrokerUrl>
RunUserJobs <DataBrokerUrl>, <UserName>, <EncryptedPassword>

Downloads and executes user jobs from a SkyBox server. Jobs are cached locally and check for new jobs will happen at first logon of the day only. Use url for a local SkyBox server. The data broker url for a local SkyBox server can be found at the top right corner in the local SkyBox server web, once logged in. The username and password is for use when the inventory web site has Windows authentication (other authentications such as forms authentication must be disabled). Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.

UninstallUserJobsDownloader

Removes the download handler that is executed, whenever a user logs on. This command requires local admin rights and UAC elevation (see www.fasttrackscript.com/uac for more information on UAC). Use url for a local SkyBox server. The data broker url for a local SkyBox server can be found at the top right corner in the local SkyBox server web, once logged in. The username and password is for use when the inventory web site has Windows authentication (other authentications such as forms authentication must be disabled). Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
COM Automation

Exec <SourceObject>.<Method>
Exec <SourceObject>.<Method>(<ListOfParameters>)

Executes a method on a COM object. The source object can be an object created with the CreateObject function (entering for instance CreateObject(Scripting.FileSystemObject) as SourceObject) or an object set with SetObject. Indefinite object nesting is supported to compact scripts, for example executing a third level object: Exec <SourceObject>.<Method>(<Parameters>).<Method>(<Parameters>). ListOfParameters simply means a dynamic number of parameters; there can be any number of parameters from none to an infinite number of parameters. Methods or properties that have dots in the name must be quoted. Refer to http://fasttrackscript.com/COM for more details on using COM with FastTrack Automation Studio.
Example: Exec MyFile.WriteLine(Test line)

SetObject <ObjectName>=<SourceObject>
SetObject <ObjectName>=<SourceObject>.<SubObject>
SetObject <ObjectName>=<SourceObject>.<Method>(<ListOfParameters>)

Sets an internal object to another object. The name before the equal sign is the name by which the object can be used for other COM functions and commands. The source object can be an object created with the CreateObject function (entering for instance CreateObject(Scripting.FileSystemObject) as SourceObject) or a method result or property of another object. Indefinite object nesting is supported to compact scripts, for example setting an object to a third level object: SetObject <ObjectName>=<SourceObject>.<Method>(<Parameters>).<Method>(<Parameters>). ListOfParameters simply means a dynamic number of parameters; there can be any number of parameters from none to an infinite number of parameters. Methods or properties that have dots in the name must be quoted. Refer to http://www.fasttrackscript.com/COM for more details on using COM with FastTrack Automation Studio.
Example: SetObject Excel = CreateObject(Excel.Application)

SetValue <SourceObject>.<PropertyName>=<Value>

Sets the value of a property of an object. The source object can be an object created with the CreateObject function (entering for instance CreateObject(Scripting.FileSystemObject) as SourceObject) or an object set with SetObject. Indefinite object nesting is supported to compact scripts, for example setting a third level object property: SetValue <SourceObject>.<Method>(<Parameters>).<Method>(<Parameters>).<PropertyName>=<Value>. Methods or properties that have dots in the name must be quoted. Refer to http://fasttrackscript.com/COM for more details on using COM with FastTrack Automation Studio.
Example: SetValue Excel.Visible = True
Computer Name

SetComputerName <NewName>
SetComputerName <NewName>, <UserName>, <EncryptedPassword>
SetComputerName <NewName>, <UserName>, <EncryptedPassword>, <RemoteComputerName>

Renames the executing computer. If the computer is not in a domain, credentials are ignored and the executing user must be local admin. If the computer is in a domain, the computer account in the Active Directory is also renamed. Use <DomainName>\<UserName> for domain user credentials. A reboot is required after the rename; use RebootForced to perform a forced reboot. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
Example: SetComputerName AcmePC0010
Custom Collections

AddToCollection <CollectionName>, <ListOfValues>

Adds one or more elements to a custom collection. If the collection is not created with the CreateCollection, the custom collection will be created. ListOfValues simply means a dynamic number of parameters/values; there can be any number of parameters from none to an infinite number of parameters.
Example: AddToCollection MyUsers,[Var User]

AddToCollectionStart <CollectionName>, <ListOfValues>

Inserts one or more elements into a custom collection at the start. If the collection is not created with the CreateCollection, the custom collection will be created. ListOfValues simply means a dynamic number of parameters/values; there can be any number of parameters from none to an infinite number of parameters.
Example: AddToCollection MyUsers,[Var User]

ClearCollection <CollectionName>

Clears the content of a custom collection. If the collection does not exist, an error will occur. If the collection may not exist, use the CreateCollection command instead.
Example: ClearCollection MyUsers

CreateCollection <CollectionName>
CreateCollection <CollectionName>=<ListOfValues>

Creates a custom collection and optionally adds a list of values. If the collection already exists, it will be reset. It is best practice to define a collection first with the CreateCommand for readability, but the collection will automatically be created on use, if it does not exist. ListOfValues simply means a dynamic number of parameters/values; there can be any number of parameters from none to an infinite number of parameters.
Example: CreateCollection MyUsers
Date And Time

SetTime <Time>

Sets the local clock time. If user is not administrator and UAC elevated, the command has no effect, as the user does not have permission to set the clock.

SetTimeFromServer
SetTimeFromServer <ComputerName>

Synchronizes client time to the remote time. If no computer name is specified, the logon server is used. If user is not administrator and UAC elevated, the command has no effect, as the user does not have permission to set the clock.
Desktop

DisableScreenSaverLogonScreen

Disables the logon screen after screensaver.

EmptyRecycleBin
EmptyRecycleBin <DriveLetter>:

Empties recycle bin of all drives. Specifying for instance C: as parameter, vil empty recycle bin on the C-drive only.

EnableScreenSaverLogonScreen

Enables the logon screen after screensaver.

RemoveScreenSaver

Removes the screensaver for the current user.

RestoreDesktop

Restores windows from ShowDesktop.

SetScreenSaver <ImageFile>

Sets the screensaver for the current user.
Example: SetScreenSaver [SystemDir]\Bubbles.scr

SetScreenSaverTimeout <Seconds>

Sets the timeout in minutes of the screensaver.

SetWallPaper <ImageFile>

Sets the wallpaper for the current user. The wallpaper must be png, jpeg or bmp format. Png is recommended.
Example: SetWallPaper [WinDir]\Acme.jpg

ShowDesktop

Minimizes all windows and shows the desktop.
Directories - Attributes

ClearDirArchived <Directory>

Removes the archive bit on a directory.

ClearDirArchivedSub <Directory>

Removes the archive bit on a directory and all subdirectories and subfiles recursively.

ClearDirAttributes <Directory>

Clears the system, hidden, archive and read-only bits on a directory.

ClearDirAttributesSub <Directory>

Clears the system, hidden, archive and read-only bits on a directory and all subdirectories and subfiles recursively.

ClearDirHidden <Directory>

Clears the hidden attribute on a directory.

ClearDirHiddenSub <Directory>

Clears the hidden attribute on a directory and all subdirectories and subfiles recursively.

ClearDirReadOnly <Directory>

Removes the read-only attribute from a directory.

ClearDirReadOnlySub <Directory>

Removes the read-only attribute from a directory and all subdirectories and subfiles recursively.

ClearDirSystemAttrib <Directory>

Clears the system bit on a directory.

ClearDirSystemAttribSub <Directory>

Clears the system bit on a directory and all subdirectories and subfiles recursively.

SetDirArchived <Directory>

Sets the archive bit on a directory.

SetDirArchivedSub <Directory>

Sets the archive bit on a directory and all subdirectories and subfiles recursively.

SetDirHidden <Directory>

Sets the hidden attribute on a directory.

SetDirHiddenSub <Directory>

Sets the hidden attribute on a directory and all subdirectories and subfiles recursively.

SetDirReadOnly <Directory>

Marks a directory as read-only.

SetDirReadOnlySub <Directory>

Marks a directory and all subdirectories and subfiles recursively as read-only.

SetDirSystemAttrib <Directory>

Sets the system bit on a directory.

SetDirSystemAttribSub <Directory>

Sets the system bit on a directory and all subdirectories and subfiles recursively.
Directories - Permissions

AddDirPermissions <Path>, <ACL>

Removes inherited permissions and ensures the defined accounts have the defined access to the directory including all subdirectories and subfiles. If the accounts already have permissions, they will be changed to the new access right. Any accounts not specified, will keep their existing access rights. ACL (Access Control List) is as a comma separated ACE (Access Control Entry) list in the format [<Domain>\]<AccountName>:<AccessRight>. Account name can be a user or a group. AccessRight is typically 'Read', 'Read And Execute', 'Modify', 'Write' or 'Full Control' (or abbreviated to R, RE, M, W and FC respectively); for a full list of access rights, click the "Show" icon on the "Scripting" tab in the script editor and select "Extended Attributes". To add multiple access rights to the same user, add the user more than once in the list. Use SetDirPermissions to specify a new ACL instead of replacing permissions. Requires admin privileges.
Example: AddDirPermissions [ProgramFilesDir]\Acme,Acme\CRMUsers:Read

AddDirPermissionsDenied <Path>, <ACL>

Removes inherited permissions and denies access to the directory including all subdirectories and subfiles. ACL (Access Control List) is as a comma separated ACE (Access Control Entry) list in the format [<Domain>\]<AccountName>:<AccessRight>. Account name can be a user or a group. AccessRight is typically 'Read', 'Read And Execute', 'Modify', 'Write' or 'Full Control' (or abbreviated to R, RE, M, W and FC respectively); for a full list of access rights, click the "Show" icon on the "Scripting" tab in the script editor and select "Extended Attributes". To add multiple access rights to the same user, add the user more than once in the list. Use SetDirPermissions to specify a full ACL list. Requires admin privileges.
Example: AddDirPermissionsDenied [ProgramFilesDir]\Acme,Acme\CRMUsers:Read

AddDirPermissionsInherited <Path>

Sets the directory and all subdirectories and subfiles to inherit permissions from its parent directory, but preserves added permissions. Requires admin privileges.
Example: SetDirPermissionsInherited [ProgramFilesDir]\Acme

RemoveDirPermissions <Path>, <AccountName>

Removes inherited permissions and removes the specified account name from the ACL (Access Control List) on the directory including all subdirectories and subfiles. Account name can be a user or a group in the format [<Domain>\]<AccountName>. When specifying a specific user, be aware that the user can still have access, if the user is a member of a group that still has access. Requires admin privileges.
Example: RemoveDirPermissions [ProgramFilesDir]\Acme,Acme\CRMUsers

SetDirOwner <Path>, <AccountName>

Sets the owner of to the specified account name including all subdirectories and subfiles.
Example: SetDirOwner [ProgramFilesDir]\Acme,[LocalSystemAccount]

SetDirPermissions <Path>, <ACL>

Removes inherited permissions and sets the directory permissions including all subdirectories and subfiles. ACL (Access Control List) is as a comma separated ACE (Access Control Entry) list in the format [<Domain>\]<AccountName>:<AccessRight>. Account name can be a user or a group. AccessRight is typically 'Read', 'Read And Execute', 'Modify', 'Write' or 'Full Control' (or abbreviated to R, RE, M, W and FC respectively); for a full list of access rights, click the "Show" icon on the "Scripting" tab in the script editor and select "Extended Attributes". To add multiple access rights to the same user, add the user more than once in the list. Use AddDirPermissions, AddDirPermissionsDenied and RemoveDirPermissions to modify to an existing ACL instead of creating a new one. Requires admin privileges.
Example: SetDirPermissions [ProgramFilesDir]\Acme,Acme\Domain Users:Read,Acme\Domain Admins:Full Control

SetDirPermissionsInherited <Path>

Sets the directory and all subdirectories and subfiles to inherit permissions from its parent directory. Requires admin privileges.
Example: SetDirPermissionsInherited [ProgramFilesDir]\Acme
Directories

CopyDir <SourcePath>, <DestPath>

Copies source directory tree to the destination directory, copying only files that are new or changed. Any extra files and directories in destination will not be deleted, use SyncDir or SyncDirSecure for this functionality. The difference between CopyDir and CopyDirSecure is that CopyDirSecure will also copy permissions. Files and directories issued with SyncExcludeDir and SyncExcludeFile are excluded. Symbolic link directories are ignored to prevent unintended copying of files. Most settings and statistics under "Backup and Replication Settings" and "Backup and Replication Statistics" in the Engine Browser tree also applies to this command. The operation will by default use 8 threads to execute, use the SetIOThreads command to change number of threads. Use the SetWaitCaption to change the "Please wait ..." header.
Example: CopyDir [UserDocumentsDir],[UserHomeDir]\DocumentsBackup

CopyDirHidden <SourcePath>, <DestPath>

Copies source directory tree to the destination directory without showing any user interface during the process. Any extra files and directories in destination will not be deleted, use SyncDirHidden for this functionality. The difference between CopyDirHidden and CopyDirSecureHidden is that CopyDirSecureHidden will also copy permissions. Files and directories issued with SyncExcludeDir and SyncExcludeFile are excluded. Symbolic link directories are ignored to prevent unintended copying of files. Most settings and statistics under "Backup and Replication Settings" and "Backup and Replication Statistics" in the Engine Browser tree also applies to this command. The operation will by default use 8 threads to execute, use the SetIOThreads command to change number of threads.
Example: CopyDirHidden [UserDocumentsDir],[UserHomeDir]\DocumentsBackup

CopyDirSecure <SourcePath>, <DestPath>

Copies source directory tree to the destination directory, copying only files that are new or changed. Any extra files and directories in destination will not be deleted, use SyncDir or SyncDirSecure for this functionality. The difference between CopyDir and CopyDirSecure is that CopyDirSecure will also copy permissions. If an unchanged file exists in both source and destination, changes in file security only will not be checked for performance reasons, unless explicitly overruled with the EnableSyncRepairMode command. Folder permissions are always checked. Files and directories issued with SyncExcludeDir and SyncExcludeFile are excluded. Symbolic link directories are ignored to prevent unintended copying of files. Most settings and statistics under "Backup and Replication Settings" and "Backup and Replication Statistics" in the Engine Browser tree also applies to this command. The operation will by default use 8 threads to execute, use the SetIOThreads command to change number of threads.
Example: CopyDirSecure [UserDocumentsDir],[UserHomeDir]\DocumentsBackup

CopyDirSecureHidden <SourcePath>, <DestPath>

Copies source directory tree to the destination directory without showing any user interface during the process. Any extra files and directories in destination will not be deleted, use SyncDirHidden for this functionality. The difference between CopyDirHidden and CopyDirSecureHidden is that CopyDirSecureHidden will also copy permissions. If an unchanged file exists in both source and destination, changes in file security only will not be checked for performance reasons, unless explicitly overruled with the EnableSyncRepairMode command. Folder permissions are always checked. Files and directories issued with SyncExcludeDir and SyncExcludeFile are excluded. Symbolic link directories are ignored to prevent unintended copying of files. Most settings and statistics under "Backup and Replication Settings" and "Backup and Replication Statistics" in the Engine Browser tree also applies to this command. The operation will by default use 8 threads to execute, use the SetIOThreads command to change number of threads.
Example: CopyDirSecureHidden [UserDocumentsDir],[UserHomeDir]\DocumentsBackup

DeleteDir <Path>

Deletes a directory including all directories and files under it, if it exists. Will by default use 8 threads to execute, use the SetIOThreads command to change number of threads.
Example: DeleteDir [ProgramFilesDir]\Acme\AcmeCRMApp

DeleteDirPreserved <Path>

Deletes all subdirectories and files in a directory preserving the folder itself. Useful for emptying folder, e.g. temporary internet files or the windows temp directory.
Example: If UserOnceAWeek Then DeleteDirPreserved [TempDir]

MakeDir <Path>

Creates a directory recursively.
Example: MakeDir [ProgramFilesDir]\Acme\AcmeCRMApp

MoveDir <Path>, <NewPath>

Moves the directory including subdirectories and subfiles.

PurgeTempFiles

Purges all files in the TEMP folder for the current user.
Example: If UserOnceAWeek Then PurgeTempFiles

RenameDir <Path>, <NewPath>

Renames the directory including subdirectories and subfiles.

SetCurrentDir <Path>

Changes the current directory.

Subst <DriveLetter>:, <Path>
Subst <DriveLetter>:, <Path>, <DisplayName>

Creates a virtual drive. If the drive is already created, existing mapping is removed first. The optional display name is the name of the drive name displayed in the Explorer.
Example: Subst Y:,[ProgramFilesDir]\Acme

Unsubst <DriveLetter>:

Removes a virtual drive. If the virtual drives does not exist, the command does nothing.
Example: Unsubst Y:
Drivers

InstallDriver <InfFile>
InstallDriver <InfFile>, <InfFile32Bit>

Preinstalls a signed driver to the Windows driver store and updates existing hardware with the new driver, if hardware is present and the driver is a better match. If not, the driver remain in the driver store. Wildcards can be used such as *.inf for multiple installs. If your environment is mixed between 32 and 64 bit and the drivers are different, use the last parameter to point to 32-bit driver to be used for 32-bit machines only.

PreinstallDriver <InfFile>
PreinstallDriver <InfFile>, <InfFile32Bit>

Preinstalls a signed driver to the Windows driver store, even if the hardware is not currently present but does not update drivers on existing hardware. Wildcards can be used such as *.inf for multiple installs. If your environment is mixed between 32 and 64 bit and the drivers are different, use the last parameter to point to 32-bit driver to be used for 32-bit machines only.

UninstallDriver <InfFile>
UninstallDriver <InfFile>, <InfFile32Bit>

Uninstalls a driver from the Windows driver store. Wildcards can be used such as *.inf for multiple installs. If your environment is mixed between 32 and 64 bit and the drivers are different, use the last parameter to point to 32-bit driver to be used for 32-bit machines only.
Environment Variables

SetEnvVar <Name>, <Value>

Sets a common environment variable.
Example: SetEnvVar LocalServer,[Var CurrentServer]

SetProcessEnvVar <Name>, <Value>

Sets an environment variable for the current process only.
Example: SetProcessEnvVar LocalServer,[Var CurrentServer]

SetUserEnvVar <Name>, <Value>

Sets a user specific environment variable.
Example: SetUserEnvVar LocalServer,[Var CurrentServer]
Event Log

ClearEventLog <LogName>
ClearEventLog <LogName>, <RemoteComputerName>

Clears an event log. LogName must be the name of the log to clear, for instance System or Application.
Example: ClearEventLog Application

CreateEventSource <Source>
CreateEventSource <Source>, <LogName>
CreateEventSource <Source>, <LogName>, <RemoteComputerName>

Creates an event log source, which requires admin rights. If log name is not speciefied, "Application" is assumed. The purpose of this command is to be able to create a source once as administrator, allowing loggig of events to this source without admin rights.

LogErrorEvent <Source>, <EventText>
LogErrorEvent <Source>, <EventText>, <LogName>
LogErrorEvent <Source>, <EventText>, <LogName>, <RemoteComputerName>

Logs an error event to the event log, which requires local admin rights (unless source is already created once). Source is the Source row in the event viewer, which is used to categorize events in a log. If log name is not specified, Application is used by default. You could use you company name for a custom log area, if you would like to isolate your own custom events. Be aware that Windows does not allow the same Source name to be used in multiple logs.
Example: If [DiskStatus]<>OK Then LogErrorEvent Disk failure,Harddrive has failure: [DiskStatus]

LogEvent <Source>, <EventText>
LogEvent <Source>, <EventText>, <LogName>
LogEvent <Source>, <EventText>, <LogName>, <RemoteComputerName>

Logs an information event to the event log, which requires local admin rights (unless source is already created once). Source is the Source row in the event viewer, which is used to categorize events in a log. If log name is not specified, Application is used by default. You could use you company name for a custom log area, if you would like to isolate your own custom events. Be aware that Windows does not allow the same Source name to be used in multiple logs.
Example: LogEvent Installation,Installation of [CurrentInstallName] v[CurrentInstallVersion] complete at [Time] on [Date]

LogWarningEvent <Source>, <EventText>
LogWarningEvent <Source>, <EventText>, <LogName>
LogWarningEvent <Source>, <EventText>, <LogName>, <RemoteComputerName>

Logs a warning event to the event log, which requires local admin rights (unless source is already created once). Source is the Source row in the event viewer, which is used to categorize events in a log. If log name is not specified, Application is used by default. You could use you company name for a custom log area, if you would like to isolate your own custom events. Be aware that Windows does not allow the same Source name to be used in multiple logs.
Example: If [FreeDiskSpace]<10 Then LogWarningEvent LowDisk,Harddrive has only [FreeDiskSpace]GB free.
Execution - Console

AddConsoleBreak

Inserts a blank line into the console window. The console window will be displayed, if it is not already visible. The following settings commands have effect on the window: SetScreenPos, SetHeaderFont, SetHeaderColor, SetBackgroundImage, ResetBackgroundImage, SetWindowSize, SetWindowScale, SetNextWindowSize, SetNextWindowScale, SetScaling, EnableTopMost/DisableTopMost and the visual effects commands.

AddConsoleLine

Inserts a custom text line into the console window. The console window will be displayed, if it is not already visible. The following settings commands have effect on the window: SetScreenPos, SetHeaderFont, SetHeaderColor, SetBackgroundImage, ResetBackgroundImage, SetWindowSize, SetWindowScale, SetNextWindowSize, SetNextWindowScale, SetScaling, EnableTopMost/DisableTopMost and the visual effects commands.

ClearConsole

Clears the console output.

HideConsole

Hides the console output window. The window is automatically displayed again, when content is added.

LaunchCMD <CmdLine>
LaunchCMD <CmdLine>, <UserName>, <EncryptedPassword>

Launches a console command without waiting for it to finish. Specify user as <Domain>\<UserName> for a domain user. Password must be encrypted in the editor using Tools->Encrypt Password or using the EncryptPassword function. The following settings commands have effect on the console window: SetScreenPos, SetHeaderFont, SetHeaderColor, SetBackgroundImage, ResetBackgroundImage, SetWindowSize, SetWindowScale, SetNextWindowSize, SetNextWindowScale, SetScaling, EnableTopMost/DisableTopMost and the visual effects commands. If the user specified is under User Account Control (UAC), these restrictions apply.
Example: LaunchCMD MyWorkerProgram.Exe

LaunchCMDElevated <CmdLine>

Launches a console command without waiting for it to finish. If the user is under User Account Control (UAC), the script will temporarily halt to show the UAC pop-up screen to ask for permission to continue. Username cannot be specified because a target user would not have a session, where permission can be asked to elevate. If UAC is not enabled, you can use the Launch command with credentials to run the file as another user.
Example: LaunchCMDElevated MyWorkerProgram.Exe

LaunchCMDHidden <CmdLine>

Launches a console command hidden, if possible, without waiting for it to finish.
Example: LaunchCMDHidden MyWorkerProgram.Exe

RunCMD <CmdLine>
RunCMD <CmdLine>, <UserName>, <EncryptedPassword>

Runs a console command line and waits for it to finish. If credentials are not specified, the internal FastTrack Console will be used for output. If credentials are specified, this console will not be used, because the output cannot be retrieved cross-process. The following settings commands have effect on the console window: SetScreenPos, SetHeaderFont, SetHeaderColor, SetBackgroundImage, ResetBackgroundImage, SetWindowSize, SetWindowScale, SetNextWindowSize, SetNextWindowScale, SetScaling, EnableTopMost/DisableTopMost and the visual effects commands. Exit code can be retrieved with the LastExitCode function and last output can be retreived with the LastCMDOutput function, if credentials are not specified. Specify user as <Domain>\<UserName> for a domain user. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function. If the user specified is under User Account Control (UAC), these restrictions apply.
Example: RunCMD Build.Exe

RunCMDElevated <CmdLine>

Runs a console command and waits for it to finish. Exit code can be retrieved with the LastExitCode function. If the user is under User Account Control (UAC), the script will temporarily halt to show the UAC pop-up screen to ask for permission to continue. Username cannot be specified because a target user would not have a session, where permission can be asked to elevate. If UAC is not enabled, you can use the Run command with credentials to run the file as another user.
Example: RunCMDElevated Build.Exe

RunCMDHidden <CmdLine>

Runs a console command hidden, if possible, and waits for it to finish. Exit code can be retrieved with the LastExitCode function and last output can be retreived with the LastCMDOutput function.
Example: RunCMDHidden MyMaintenanceTask.Exe

SetConsoleCaption <IconName>

Overrules the default header text in the console.

SetConsoleIcon <IconName>

Overrules the default header icon in the console. IconName refers to an internal icon name of icons listed in the "Icon Explorer" in the script editor. Further icons can added with the AddCustomIcon command. You also point directly to an image file preferably by in png format.

ShowConsole

Shows the console output window. The window is automatically displayed, when content is added. The following settings commands have effect on the window: SetScreenPos, SetHeaderFont, SetHeaderColor, SetBackgroundImage, ResetBackgroundImage, SetWindowSize, SetWindowScale, SetNextWindowSize, SetNextWindowScale, SetScaling, EnableTopMost/DisableTopMost and the visual effects commands.

WaitForConsoleClose

Displays a close button at the bottom left on the console window and waits for the users to close it.
Example: Run Setup.Exe,/Config Acme.xml
Execution

BlockExecution <ProcessName>
BlockExecution <ProcessName>, <Message>

Blocks execution of a process. BlockExecution will only disable while the current script runs, whereas DisableExecution sets a permanent blocking. The process is a filename without path. Useful for installations to prevent execution of a program during an installation. This command requires local admin rights and UAC elevation (see www.fasttrackscript.com/uac for more information on UAC). Default message is "An installation of the program you are trying to start is in progress. Please try again later". Use the UnblockExecution command to unblock the application. If you forget to do it or the script fails, the unblocking will automatically happen, when the current (or any other) instance FSH.Exe terminates.
Example: BlockExecution WinWord.exe

ClearExecutionDisabling

Clears all blocking set using the DisableExecution command.
Example: EnableExecution WinWord.exe

DisableExecution <ProcessName>
DisableExecution <ProcessName>, <Message>

Disables execution of a process. BlockExecution will only disable while the current script runs, whereas DisableExecution sets a permanent blocking. The process is a filename without path. This command requires local admin rights and UAC elevation (see www.fasttrackscript.com/uac for more information on UAC). Default message is "The application you are trying to start is disabled". Use the EnableExecution command to re-enable the application.
Example: DisableExecution WinWord.exe

EnableExecution <ProcessName>

Enables execution of a process, reversing the DisableExecution command.
Example: EnableExecution WinWord.exe

Launch <File>
Launch <File>, <Arguments>
Launch <File>, <UserName>, <EncryptedPassword>
Launch <File>, <Arguments>, <UserName>, <EncryptedPassword>

Launches a program without waiting for it to finish. Launch uses shell execution, meaning that implicit execution is also possible, like launching a web page or executing files that are associated without specifying the executable file. Specify user as <Domain>\<UserName> for a domain user. Password must be encrypted in the editor using Tools->Encrypt Password or using the EncryptPassword function. If the user specified is under User Account Control (UAC), these restrictions apply.
Example: If UserOnce ShowWelcome Then Launch http://intra.acme.com/Welcome

LaunchElevated <File>
LaunchElevated <File>, <Arguments>

Launches a program without waiting for it to finish. Launch uses shell execution, meaning that implicit execution is also possible, like launching a web page or executing files that are associated without specifying the executable file. If the user is under User Account Control (UAC), the script will temporarily halt to show the UAC pop-up screen to ask for permission to continue. Username cannot be specified because a target user would not have a session, where permission can be asked to elevate. If UAC is not enabled, you can use the Launch command with credentials to run the file as another user.

LaunchHidden <File>
LaunchHidden <File>, <Arguments>

Launches a program hidden, if possible, without waiting for it to finish. LaunchHidden uses shell execution, meaning that implicit execution is also possible, like launching a web page or executing files that are associated without specifying the executable file.
Example: LaunchHidden MyWorkerProgram.Exe

LaunchMax <File>
LaunchMax <File>, <Arguments>

Launches a program maximized without waiting for it to finish. LaunchMax uses shell execution, meaning that implicit execution is also possible, like launching a web page or executing files that are associated without specifying the executable file.
Example: If UserOnce ShowWelcome Then LaunchMax http://intra.acme.com/Welcome

LaunchMin <File>
LaunchMin <File>, <Arguments>

Launches a program minimized without waiting for it to finish. LaunchMin uses shell execution, meaning that implicit execution is also possible, like launching a web page or executing files that are associated without specifying the executable file.

LaunchScript <ScriptFile>
LaunchScript <ScriptFile>, <UserName>, <EncryptedPassword>

Launches another script without waiting for it to finish out of process. Specify user as <Domain>\<UserName> for a domain user. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function. If the user specified is under User Account Control (UAC), these restrictions apply.
Example: LaunchScript Cleanup.fsh

LaunchScriptElevated <ScriptFile>

Launches another script out of process without waiting for it to finish. If the user is under User Account Control (UAC), the script will temporarily halt to show the UAC pop-up screen to ask for permission to continue. Username cannot be specified because a target user would not have a session, where permission can be asked to elevate. If UAC is not enabled, you can use the LaunchScript command with credentials to run the script as another user.
Example: LaunchScriptElevated Cleanup.fsh

Run <File>
Run <File>, <Arguments>
Run <File>, <UserName>, <EncryptedPassword>
Run <File>, <Arguments>, <UserName>, <EncryptedPassword>

Runs a program and waits for it to finish. Exit code can be retrieved with the LastExitCode function. Specify user as <Domain>\<UserName> for a domain user. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function. If the user specified is under User Account Control (UAC), these restrictions apply.
Example: Run Setup.Exe,/Config Acme.xml

RunElevated <File>
RunElevated <File>, <Arguments>

Runs a program and waits for it to finish. Exit code can be retrieved with the LastExitCode function. If the user is under User Account Control (UAC), the script will temporarily halt to show the UAC pop-up screen to ask for permission to continue. Username cannot be specified because a target user would not have a session, where permission can be asked to elevate. If UAC is not enabled, you can use the Run command with credentials to run the file as another user.
Example: RunElevated Setup.Exe,/Config Acme.xml

RunHidden <File>
RunHidden <File>, <Arguments>

Runs a program hidden, if possible, and waits for it to finish. Exit code can be retrieved with the LastExitCode function.
Example: RunHidden MyMaintenanceTask.Exe

RunMax <File>
RunMax <File>, <Arguments>

Runs a program maximized and waits for it to finish. Exit code can be retrieved with the LastExitCode function.
Example: If UserOnce ShowWelcome Then RunMax [ProgramFilesDirx86]\Internet Explorer\IExplore.exe,http://intra.acme.com/Welcome

RunMin <File>
RunMin <File>, <Arguments>

Runs a program minimized and waits for it to finish. Exit code can be retrieved with the LastExitCode function.

RunScript <ScriptFile>
RunScript <ScriptFile>, <UserName>, <EncryptedPassword>

Runs another script out of process and waits for it to finish, not sharing script variables. To share variables between scripts, use the Include command instead. Include is much faster than RunScript, because it will not start another engine instance, but Include cannot be used when specifying username and password. Specify user as <Domain>\<UserName> for a domain user. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function. If the user specified is under User Account Control (UAC), these restrictions apply.
Example: RunScript \\AcmeServer\Installers$\Office2010\Install.fsh,Acme\Installer,<EncryptedPassword>

RunScriptElevated <ScriptFile>

Runs another script out of process and waits for it to finish, not sharing script variables. To share variables between scripts, use the Include command instead. Include is much faster than RunScript, because it will not start another engine instance. If the user is under User Account Control (UAC), the script will temporarily halt to show the UAC pop-up screen to ask for permission to continue. Username cannot be specified because a target user would not have a session, where permission can be asked to elevate. If UAC is not enabled, you can use the RunScript command with credentials to run the script as another user.
Example: RunScriptElevated \\AcmeServer\Installers$\Office2010\Install.fsh,Acme\Installer,<EncryptedPassword>

SetRunTimeout <Seconds>
SetRunTimeout <Seconds>, <ReturnCode>

Sets a timeout in seconds for waiting for Run command (and other commands starting with "Run") to finish. If the timeout occurs, the selected return code is returned. If the return code is not used, an error occurs and the return code will be -1. A second value of 0 returns to default state without a timeout.
Example: SetRunTimeout 3600

UnblockExecution <ProcessName>

Unblocks execution of a process, reversing the BlockExecution command.
Example: UnblockExecution WinWord.exe
FastTrack Engine

EnableOnlineBackup

Placeholder to enable configuration online backup.

InstallSmartConnect

Installs the SmartConnect utility as a Windows Explorer startup item for the current user. SmartConnect does not start, if the session is not a remote session. See www.fasttrackscript.com/smartconnect for details.

InstallSmartDock

Installs the SmartDock utility as a Windows Explorer startup item for the current user. Only installs on portable computers, has no effect on desktop computers. See www.fasttrackscript.com/smartdock for details.

SelfAssociate

Performs a system association of the .fsh extension to the executing instance of fsh.exe. If a user has a user association, this overrules the system association. Same as passing /Associate to fsh.exe. Requires local admin rights.

SelfInstall

Creates machine-wide runtime support for executing fsh files. Will cache the executing engine fsh.exe and create a system association to .fsh files. Same as passing /Install to fsh.exe. Requires local admin rights.

SelfUnassociate

Performs a system un-association of the .fsh extension. Same as passing /Unassociate to fsh.exe. Requires local admin rights.

SelfUninstall

Removes support the system-wide support for executing fsh files. Will remove the system cache and unassociate .fsh files. Same as passing /Uninstall to fsh.exe. Requires local admin rights.

SelfUserAssociate

Performs a user association for the current user of the .fsh extension to the executing instance of fsh.exe. User associations overrule system associations. Same as passing /UserAssociate to fsh.exe.

SelfUserInstall

Creates runtime support for the current user to execute fsh files. Will cache the executing engine fsh.exe and create a user association to .fsh files. Same as passing /UserInstall to fsh.exe.

SelfUserUnassociate

Performs a user un-association of the .fsh extension. Same as passing /UserUnassociate to fsh.exe.

SelfUserUninstall

Removes support for executing fsh files for the current user. Will remove the cache and unassociate .fsh files for the user. Same as passing /UserUninstall to fsh.exe.

ShowInvisibleLogonScriptWarning

Shows a message one time, if a logon script will not be visible and a pop-up is shown, to avoid dead waiting time at logon. See http://www.fasttrackscript.com/UnhidingLogonScripts on how to make it visible.

UninstallSmartConnect

Removes the SmartConnect utility as a Windows Explorer startup item for the current user.

UninstallSmartDock

Removes the SmartDock utility as a Windows Explorer startup item for the current user.
Files - Associations

AssociateExtension <Extension>, <File>
AssociateExtension <Extension>, <File>, <Parameters>

Associates an extension with an exe file. Extension is without dot prefix. A system association requires local admin rights, but association per user can be done with AssociateUserExtension. If parameters are not specified, the opened filename is send to the program as the only parameter. If parameters are specified, use "%1" (with quotes) to include the filename.
Example: AssociateExtension fsh,[FastTrackExe]

AssociateUserExtension <Extension>, <File>
AssociateUserExtension <Extension>, <File>, <Parameters>

Associates an extension with an exe file for the current user only. Extension is without dot prefix and overrules system associations. If parameters are not specified, the opened filename is send to the program as the only parameter. If parameters are specified, use "%1" (with quotes) to include the filename.
Example: AssociateUserExtension fsh,[FastTrackExe]

UnassociateExtension <Extension>

Unassociates an extension. Will ask the user to select an associated program when the extension is used.
Example: UnassociateExtension fsh

UnassociateUserExtension <Extension>

Unassociates an extension for the current user only. Will ask the user to select an associated program when the extension is used, unless a system association is also present for that extension.
Example: UnassociateUserExtension fsh
Files - Attributes

ClearFileArchived <File>

Removes the archive bit on a file.

ClearFileAttributes <File>

Clears the system, hidden, archive and read-only bits on a file.

ClearFileHidden <File>

Clears the hidden attribute on a file.

ClearFileReadOnly <File>

Removes the read-only attribute from a file.

ClearFileSystemAttrib <File>

Clears the system bit on a file.

SetFileArchived <File>

Sets the archive bit on a file.

SetFileHidden <File>

Sets the hidden attribute on a file.

SetFileReadOnly <File>

Marks a file as read-only.

SetFileSystemAttrib <File>

Sets the system bit on a file.
Files - Permissions

AddFilePermissions <File>, <ACL>

Removes inherited permissions and ensures the defined accounts have the defined access to the file. If the accounts already have permissions, they will be changed to the new access right. Any accounts not specified, will keep their existing access rights. ACL (Access Control List) is as a comma separated ACE (Access Control Entry) list in the format [<Domain>\]<AccountName>:<AccessRight>. Account name can be a user or a group. AccessRight is typically 'Read', 'Read And Execute', 'Modify', 'Write' or 'Full Control' (or abbreviated to R, RE, M, W and FC respectively); for a full list of access rights, click the "Show" icon on the "Scripting" tab in the script editor and select "Extended Attributes". To add multiple access rights to the same user, add the user more than once in the list. Use SetFilePermissions to specify a new ACL instead of replacing permissions. Requires admin privileges.
Example: AddFilePermissions [ProgramFilesDir]\Acme\ReadMe.txt,Acme\CRMUsers:Read

AddFilePermissionsDenied <File>, <ACL>

Removes inherited permissions and denies access to the file. ACL (Access Control List) is as a comma separated ACE (Access Control Entry) list in the format [<Domain>\]<AccountName>:<AccessRight>. Account name can be a user or a group. AccessRight is typically 'Read', 'Read And Execute', 'Modify', 'Write' or 'Full Control' (or abbreviated to R, RE, M, W and FC respectively); for a full list of access rights, click the "Show" icon on the "Scripting" tab in the script editor and select "Extended Attributes". To add multiple access rights to the same user, add the user more than once in the list. Use SetFilePermissions to specify a full ACL list. Requires admin privileges.
Example: AddFilePermissionsDenied [ProgramFilesDir]\Acme\ReadMe.txt,Acme\CRMUsers:Read

AddFilePermissionsInherited <File>

Sets the file inherit permissions from its parent file, but preserves added permissions. Requires admin privileges.
Example: SetFilePermissionsInherited [ProgramFilesDir]\Acme\ReadMe.txt

RemoveFilePermissions <File>, <AccountName>

Removes inherited permissions and removes the specified account name from the ACL (Access Control List) on the file. Account name can be a user or a group in the format [<Domain>\]<AccountName>. When specifying a specific user, be aware that the user can still have access, if the user is a member of a group that still has access. Requires admin privileges.
Example: RemoveFilePermissions [ProgramFilesDir]\Acme\ReadMe.txt,Acme\CRMUsers

SetFileOwner <File>, <AccountName>

Sets the owner of to the specified account name.
Example: SetFileOwner [ProgramFilesDir]\Acme\Readme.Txt,[LocalSystemAccount]

SetFilePermissions <File>, <ACL>

Removes inherited permissions and sets the file permissions explicitly. ACL (Access Control List) is as a comma separated ACE (Access Control Entry) list in the format [<Domain>\]<AccountName>:<AccessRight>. Account name can be a user or a group. AccessRight is typically 'Read', 'Read And Execute', 'Modify', 'Write' or 'Full Control' (or abbreviated to R, RE, M, W and FC respectively); for a full list of access rights, click the "Show" icon on the "Scripting" tab in the script editor and select "Extended Attributes". To add multiple access rights to the same user, add the user more than once in the list. Use AddFilePermissions, AddFilePermissionsDenied and RemoveFilePermissions to modify to an existing ACL instead of creating a new one. Requires admin privileges.
Example: SetFilePermissions [ProgramFilesDir]\Acme\ReadMe.txt,Acme\Domain Users:Read,Acme\Domain Admins:Full Control

SetFilePermissionsInherited <File>

Sets the file inherit permissions from its parent file. Requires admin privileges.
Example: SetFilePermissionsInherited [ProgramFilesDir]\Acme\ReadMe.txt
Files

AppendFile <File>, <Content>

Appends the content line to the file creating it if it does not exist. The difference between AppendFile and WriteFile is that AppendFile will also append a carriage return.
Example: AppendFile \\MyServer\MyAdministrativeShare$\NetworkErrors.log,"[Date],[Time],[UserFullName],[LastError]"

ConvertImageFile <ImageFile>, <OutputFile>
ConvertImageFile <ImageFile>, <OutputFile>, <ScaledPixelSize>

Converts an image file from one format to another. Optional ScaledPixelSize will scale the photo to a this maximum width or height in pixels. If ScaledPixelSize is 96 and the original image is 960x640, the image will be 96x64.

CopyFile <SourceFile>, <DestFile>

Copies a file from source to destination. The file is not copied if source and destination files are identical. Destination file can be the target directory only or the full path including target path and file name. To copy an extensionless file, use full path as destination and add a dot to the end (explicit no extension). Directories are created recursively for destfile if missing.
Example: CopyFile [StartMenuDir]\Programs\Microsoft Office\Microsoft Office Word 2007.lnk, [UserDesktopDir]

CopyFiles <SourcePath>, <DestPath>, <ListOfFilePatterns>

Copies files matching the wildcard pattern(s). Files that are identical in source and destination are not copied. Use SyncDir, SyncDirSecure, CopyDir or CopyDirSecure with includes to copy matching files in subdirectories. ListOfFilePatterns simply means a dynamic number of parameters/patterns; there can be any number of parameters from none to an infinite number of parameters.
Example: CopyFiles [UserDocumentsDir],O:\Backup,*.doc,*.xls

DeleteFile <File>

Deletes a single file, if it exists. To delete files with wildcards, use DeleteFiles or DeleteSubFiles.
Example: DeleteFile [WinDir]\WindowsUpdate.log

DeleteFiles <Path>, <ListOfFilePatterns>

Deletes files matching the wildcard pattern. Use DeleteSubFiles to delete matching files in subdirectories. ListOfFilePatterns simply means a dynamic number of parameters/patterns; there can be any number of parameters from none to an infinite number of parameters.
Example: DeleteFiles [WinDir],*.log

DeleteSubFiles <Path>, <ListOfFilePatterns>

Deletes any file that matches the wildcards specified in the directory or in any sub directory. Useful for deleting undesired files from users' profiles. Will by default use 8 threads to execute, use the SetIOThreads command to change number of threads. ListOfFilePatterns simply means a dynamic number of parameters/patterns; there can be any number of parameters from none to an infinite number of parameters.
Example: DeleteSubFiles [UserProfileDir],*.mp3,*.avi,*.mpg

FileContentReplace <File>, <SearchString>, <ReplaceString>

Replaces any occurrence of the search string by the replace string in a file.

FileContentReplaceOrAppend <File>, <SearchString>, <ReplaceString>

Replaces any occurrence of the search string by the replace string in a file. If the file does not contain the search string, the replace string is appended. If the file does not exist, it will be created and appended.

FileContentReplaceRegEx <File>, <RegExSearchString>, <ReplaceString>

Replaces any occurrence of the search string by the replace string in a file. The search string must be in regular expression format and special characters must be escaped with backslash.

MoveFile <File>, <NewFileName>

Moves a file.

RenameFile <File>, <NewFileName>

Renames a file.

ScaleImageFile <ImageFile>, <ScaledPixelSize>

Will resize an image file to a certain maximum size. ScaledPixelSize will scale the photo to a this maximum width or height in pixels. If ScaledPixelSize is 96 and the original image is 960x640, the image will be 96x64.

SetFileEncoding <Format>

Sets the encoding of all file read and writes, such as UTF-8. Default is ISO-8859-1. Refer to https://docs.microsoft.com/en-us/dotnet/api/system.text.encoding or a full list of encoding formats.

WriteFile <File>, <Content>

Writes a new file with the content creating it, if it does not exist.
Folder Redirection - Folder Reassign

RestoreSystemFolderAssign <RedirFolderName>

Restores last folder redirection made with the SetSystemFolderAssign command and copies all files back. Has no effect, if no folder redirection has been done before.
Example: RestoreSystemFolderAssign Documents

RestoreUserFolderAssign <RedirFolderName>

Restores last folder redirection made with the SetUserFolderAssign command and copies all files back. Has no effect, if no folder redirection has been done before.
Example: RestoreUserFolderAssign Documents

SetSystemFolderAssign <RedirFolderName>, <UNCPath>

Sets a folder redirection for the system-wide common folders (also known as "All Users" or "Public"). Use SetSystemFolderRedirection, if the files are not already in the redirection location. If offline folders are enabled, the UNC path will automatically be included in the offline cache and Offline Folders will be automatically be enabled, if possible. Make sure to test properly and avoid setting folder redirection using Group Policies at the same time as using this command. Valid RedirFolderName values are: AppData, Desktop, Documents, Downloads, Templates, Pictures, Music and Videos.
Example: SetSystemFolderAssign Documents,\\AcmeServer\Docs$\[ComputerName]

SetUserFolderAssign <RedirFolderName>, <UNCPath>

Sets a folder redirection for the current user. Use SetUserFolderRedirection, if the files are not already in the redirection location. In a logon script, the command must be set before the Explorer starts, meaning in prelogon.fsh. If offline folders are enabled, the UNC path will automatically be included in the offline cache and Offline Folders will be automatically be enabled, if possible. Make sure to test properly and avoid setting folder redirection using Group Policies at the same time as using this command. Valid RedirFolderName values are: AppData, Desktop, Documents, Pictures, Music, Videos, Favorites, Downloads, History, Cookies, Cache and Templates.
Example: SetUserFolderAssign Documents,[UserHomeDir]\Profile\Documents
Folder Redirection

RestoreSystemFolderRedirection <RedirFolderName>

Restores last folder redirection made with the SetSystemFolderRedirection command and copies all files back. Has no effect, if no folder redirection has been done before.
Example: RestoreSystemFolderRedirection Documents

RestoreUserFolderRedirection <RedirFolderName>

Restores last folder redirection made with the SetUserFolderRedirection command and copies all files back. Has no effect, if no folder redirection has been done before.
Example: RestoreUserFolderRedirection Documents

SetSystemFolderRedirection <RedirFolderName>, <UNCPath>

Sets a folder redirection for the system-wide common folders (also known as "All Users" or "Public"). Use SetSystemFolderReassign, if the files are already in the redirection location, to avoid the file copying. Existing data will be copied from the old folder, when changed. The function [ComputerName] can be used in the path to create a unique directory for each computer. If offline folders are enabled, the UNC path will automatically be included in the offline cache and Offline Folders will be automatically be enabled, if possible. Make sure to test properly and avoid setting folder redirection using Group Policies at the same time as using this command. Valid RedirFolderName values are: AppData, Desktop, Documents, Downloads, Templates, Pictures, Music and Videos.
Example: SetSystemFolderRedirection Documents,\\AcmeServer\Docs$\[ComputerName]

SetUserFolderRedirection <RedirFolderName>, <UNCPath>

Sets a folder redirection for the current user. Use SetUserFolderReassign, if the files are already in the redirection location, to avoid the file copying. Existing data will be copied from the old folder, when changed. It is adviced to use the [UserHomeDir] function to put the data in the user's home folder, for example [UserHomeDir]\Profile\Documents for "Documents" RedirFolderName. Alternatively, use the [UserName] function to include the user's name in the path on a common share (to avoid sharing folders between users), such as \\AcmeServer\UserData$\[UserName]\Documents for "Documents". However, be aware that using a common share, permissions are not changed and directories should therefore be created for users before hand with correct permissions. Using the [UserHomeDir] function in the path is therefore recommended, using the user's home drive to store the files. In a logon script, the command must be set before the Explorer starts, meaning in prelogon.fsh. If offline folders are enabled, the UNC path will automatically be included in the offline cache and Offline Folders will be automatically be enabled, if possible. Make sure to test properly and avoid setting folder redirection using Group Policies at the same time as using this command. Valid RedirFolderName values are: AppData, Desktop, Documents, Pictures, Music, Videos, Favorites, Downloads, History, Cookies, Cache and Templates.
Example: SetUserFolderRedirection Documents,[UserHomeDir]\Profile\Documents
Fonts

InstallFont <FontFile>

Installs a Windows font. The font is copied to the Windows fonts folder using the same file name and registered from there.
Example: InstallFont \\server\files$\Fonts\MyFont.otf

UninstallFont <FontFile>

Removes a font from the Windows font folder, if it exists. Just the file name without path of the fonts file must be specified.
Example: RemoveFont MyFont.otf
FTP - Directories

CopyFTPDir <SourcePath>, <DestPath>
CopyFTPDir <SourcePath>, <DestPath>, <FTPUserName>, <EncryptedPassword>

Copies source directory tree to the destination directory, copying only files that are new or changed. Source or destination must contain the ftp:// prefix to identify direction. Use the LastFTPWasCancelled condition to detect cancellation. The cancel button can be removed using the DisableFTPCancel command. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
Example: CopyFTPDir [UserDocumentsDir],ftp://10.10.10.10/Backups/[ComputerName]

CopyFTPDirHidden <SourcePath>, <DestPath>
CopyFTPDirHidden <SourcePath>, <DestPath>, <FTPUserName>, <EncryptedPassword>

Copies source directory tree to the destination directory, copying only files that are new or changed. No user interface is shown during the process. Source or destination must contain the ftp:// prefix to identify direction. Use the LastFTPWasCancelled condition to detect cancellation. The cancel button can be removed using the DisableFTPCancel command. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
Example: CopyFTPDirHidden [UserDocumentsDir],ftp://10.10.10.10/Backups/[ComputerName]

DeleteFTPDir <FTPAddress>
DeleteFTPDir <FTPAddress>, <FTPUserName>, <EncryptedPassword>

Deletes a directory tree recursively on an FTP server including all subfiles and subfolders, if it exists. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
Example: DeleteFTPDir ftp://10.10.10.10/Backups

MakeFTPDir <FTPAddress>
MakeFTPDir <FTPAddress>, <FTPUserName>, <EncryptedPassword>

Creates a directory recursively on an FTP server, if it does not exist. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
Example: MakeFTPDir ftp://10.10.10.10/Backups

RenameFTPDir <FTPAddress>, <NewName>
RenameFTPDir <FTPAddress>, <NewName>, <FTPUserName>, <EncryptedPassword>

Renames a directory on an FTP server. New name must be the directory name without path and host. To move a directory, include relative or absolute path without host in the new name. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
Example: RenameFTPDir ftp://10.10.10.10/Backups,Archived
FTP - Files

AppendFTPFile <FTPAddress>, <Content>
AppendFTPFile <FTPAddress>, <Content>, <FTPUserName>, <EncryptedPassword>

Appends the content line to the FTP file creating it if it does not exist. The difference between AppendFTPFile and WriteFTPFile is that AppendFTPFile will also append a carriage return. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
Example: AppendFTPFile ftp://10.10.10.10/MyLogFile.txt,[Var LogAppend]

CopyFTPFile <SourcePath>, <DestPath>
CopyFTPFile <SourcePath>, <DestPath>, <FTPUserName>, <EncryptedPassword>

Uploads or downloads a file to or from an FTP server. Source or destination must contain the ftp:// prefix to identify direction. Destination file will be overwritten, if it exists. Both source and destination must contain a file name. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
Example: CopyFTPFile MyBackup.Zip,ftp://10.10.10.10/Backups/[Date].Zip

CopyFTPFileHidden <SourcePath>, <DestPath>
CopyFTPFileHidden <SourcePath>, <DestPath>, <FTPUserName>, <EncryptedPassword>

Uploads or downloads a file to or from an FTP server without showing a user interface. Source or destination must contain the ftp:// prefix to identify direction. Destination file will be overwritten, if it exists. Both source and destination must contain a file name. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
Example: CopyFTPFileHidden MyBackup.Zip,ftp://10.10.10.10/Backups/[Date].Zip

DeleteFTPFile <FTPAddress>
DeleteFTPFile <FTPAddress>, <FTPUserName>, <EncryptedPassword>

Deletes a file on an FTP server, if it exists. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
Example: DeleteFTPFile ftp://10.10.10.10/Backups/Latest.Zip

DisableFTPCancel

Removes the cancel button for commands CopyFTPFile, CopyFTPDir and SyncFTPDir.

EnableFTPCancel <LogFile>

When enabled, a cancel button is displayed in the user interface for operations for the commands CopyFTPFile, CopyFTPDir and SyncFTPDir. By default the user can cancel. Use the LastFTPWasCancelled condition to determine, if the last operation was cancelled by the user. Use the DisableFTPCancel command to remove the cancellation option.

RenameFTPFile <FTPAddress>, <NewName>
RenameFTPFile <FTPAddress>, <NewName>, <FTPUserName>, <EncryptedPassword>

Renames a file on an FTP server. New name must be the file name without path and host. To move a file, include relative or absolute path without host in the new name. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
Example: RenameFTPFile ftp://10.10.10.10/Backups/Today.Zip,Yesterday.Zip

WriteFTPFile <FTPAddress>, <Content>
WriteFTPFile <FTPAddress>, <Content>, <FTPUserName>, <EncryptedPassword>

Appends the content to the FTP file creating it if it does not exist. The difference between AppendFTPFile and WriteFTPFile is that AppendFTPFile will also append a carriage return. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
Example: WriteFTPFile ftp://10.10.10.10/MyLogFile.txt,[Var LogAppend]
FTP - Settings

DisableFTPBinaryMode

Disables binary mode for all FTP operations.

DisableFTPKeepAlive

Disables keep alive for all FTP operations.

DisableFTPPassiveMode

Disables passive mode for all FTP operations.

EnableFTPBinaryMode

Enables binary mode for all FTP operations (default settings).

EnableFTPKeepAlive

Enables keep alive for all FTP operations (default settings).

EnableFTPPassiveMode

Enables passive mode for all FTP operations (default settings).

RegisterFTPCredentials <Host>, <FTPUserName>, <EncryptedPassword>

Registers credentials for FTP operations. Using RegisterFTPCredentials allows you to skip explicit credentials for all operations to the host. Setting explicit credentials overrules the registration. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.

SetFTPAutoRetries <Number>

Sets the number of times all FTP operations are automatically retried. Default is 2. Specifying 1 will in effect disable retrying operations automatically.

UnregisterFTPCredentials <Host>

Removes credential registration for FTP operations.
FTP - Synchronization

SyncFTPDir <SourcePath>, <DestPath>
SyncFTPDir <SourcePath>, <DestPath>, <FTPUserName>, <EncryptedPassword>

Synchronizes source directory tree to the destination directory making them the same, while only copying changed files. Source or destination must contain the ftp:// prefix to identify direction. On the first run, all files will be copied. From the second run with the same parameters, only new or changes files will be copied. Use the LastFTPWasCancelled condition to detect cancellation. The cancel button can be removed using the DisableFTPCancel command. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
Example: SyncFTPDir [UserDocumentsDir],ftp://10.10.10.10/Backups/[ComputerName]

SyncFTPDirHidden <SourcePath>, <DestPath>
SyncFTPDirHidden <SourcePath>, <DestPath>, <FTPUserName>, <EncryptedPassword>

Synchronizes source directory tree to the destination directory making them the same, while only copying changed files. No user interface is shown during the process. Source or destination must contain the ftp:// prefix to identify direction. On the first run, all files will be copied. From the second run with the same parameters, only new or changes files will be copied. Use the LastFTPWasCancelled condition to detect cancellation. The cancel button can be removed using the DisableFTPCancel command. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
Example: SyncFTPDir [UserDocumentsDir],ftp://10.10.10.10/Backups/[ComputerName]
Graphical User Interfaces - General Settings - Appearance

ResetBackgroundImage

Resets the background image of all graphical user interfaces to the default background.

SetBackgroundImage <ImageFile>

Sets the background image of all graphical user interfaces, overruling the default background. The background image will be stretched to fit and should have a border. Recommended size is minimum 600x500 pixels.

SetBodyColor <Color>

Sets the color of all body texts and menu items on graphical user interfaces. Individual menu item colors can be overruled using the SetMenuItemForeColor command. Color must be a known Windows color such as "Red" or a hash sign and the 6 digit hex RGB colors, as used in the html standard, for example #FF0000 for red.

SetBodyFont <Size>
SetBodyFont <Size>, <Font>

Sets the font of all body texts on graphical user interfaces including splash screens and menus.

SetHeaderColor <Color>

Sets the color of all headers on graphical user interfaces. Color must be a known Windows color such as "Red" or a hash sign and the 6 digit hex RGB colors, as used in the html standard, for example #FF0000 for red.

SetHeaderFont <Size>
SetHeaderFont <Size>, <Font>

Sets the font of all header texts on graphical user interfaces.
Graphical User Interfaces - General Settings - Company Logo

SetCompanyLogo <ImageFile>

Overrules the company logo in graphical user interfaces. Logo file should be png format an preferrable at least 128x128 pixels.
Example: SetCompanyLogo Logo.png

SetDefaultCompanyLogo <ImageFile>

Overrules the company logo in graphical user interfaces and will permanently set the default logo on the executing computer. This command requires local admin rights - the same functionality can be achieved by setting the registry key HKEY_LOCAL_MACHINE\Software\FastTrack Software\DefaultCompanyLogo. Set to a blank value to clear the setting.
Example: SetDefaultCompanyLogo Logo.png

SetUserDefaultCompanyLogo <ImageFile>

Overrules the company logo in graphical user interfaces and will permanently set the default logo, but for the current user only. Using SetDefaultCompanyLogo will set the company logo all users on the executing computer, but requires local admin rights to set a per-machine registry key. The same functionality can be achieved by setting the registry key HKEY_CURRENT_USER\Software\FastTrack Software\DefaultCompanyLogo. SetUserDefaultCompanyLogo takes precedence over SetDefaultCompanyLogo. Set to a blank value to clear the setting.
Example: SetUserDefaultCompanyLogo Logo.png
Graphical User Interfaces - General Settings - Company Name

DisableCompanyName

Disables showing company name in graphical user interfaces. To disable showing company name by default, set the machine registry key HKEY_LOCAL_MACHINE\Software\FastTrack Software\ShowCompanyName or the user registry key HKET_CURRENT_USER\Software\FastTrack Software\ShowCompanyName to the value of 'False'.

EnableCompanyName

Enables showing company name in graphical user interfaces. Showing is enabled by default, use the command to get showing enabled again after using DisableCompanyName.

SetCompanyName <Name>

Overrules the company name in graphical user interfaces. Company name is by default the name of the licensed company, but can be overruled. The command has no effect on trial and free editions.
Example: SetCompanyName Acme Corporation America

SetDefaultCompanyName <Name>

Overrules the company name in graphical user interfaces and will permanently set the default name on the executing computer. Company name is by default the name of the licensed company, but can be overruled. This command requires local admin rights - the same functionality can be achieved by setting the registry key HKEY_LOCAL_MACHINE\Software\FastTrack Software\DefaultCompanyName. The command has no effect on trial and free editions. Set to a blank value to clear the setting.
Example: SetDefaultCompanyName Acme Corporation America

SetUserDefaultCompanyName <Name>

Overrules the company name in graphical user interfaces and will permanently set the default name, but for the current user only. Using SetDefaultCompanyName will set the company name for all users on the executing computer, but requires local admin rights to set a per-machine registry key. The same functionality can be achieved by setting the registry key HKEY_CURRENT_USER\Software\FastTrack Software\DefaultCompanyName. SetUserDefaultCompanyName takes precedence over SetDefaultCompanyName. The command has no effect on trial and free editions. Set to a blank value to clear the setting.
Example: SetUserDefaultCompanyName Acme Corporation America
Graphical User Interfaces - General Settings - Custom Icons

AddCustomIcon <Name>, <ImageFile>

Adds a custom icon image for the current script to use in menus, message boxes, progress screen, etc. The name is the logical name that the icon is referenced by. The image must preferably by in png format.
Example: AddCustomIcon AcmeLogo,O:\Acme.png
Graphical User Interfaces - General Settings - Position

RestoreScreenPos <PercentX>, <PercentY>

Restores positions of graphical user interfaces to their default locations.

SetScreenPos <PercentX>, <PercentY>

Sets the position of graphical user interfaces in percent of the screen resolution except for message boxes. For instance a PercentX of 50 and a PercentY of 50 will show all subsequent user interfaces at the middle of the screen. To restore default positions, use the RestoreScreenPos command. If multiple user interfaces are used in the same script, SetScreenPos must be called multiple times to not make them appear on top of each other.
Example: SetScreenPos 50,100
Graphical User Interfaces - General Settings - Scaling

SetDefaultScaling <ScalePercent>

Overrules the scaling of all graphical user interfaces and will permanently set the default scaling on the executing computer. Percent must be between 100 and 300 percent. Default is 100 percent. This command requires local admin rights - the same functionality can be achieved by setting the registry key HKEY_LOCAL_MACHINE\Software\FastTrack Software\DefaultScaling.
Example: SetDefaultScaling 150

SetScaling <ScalePercent>

Set general scaling of all graphical user interfaces. Percent must be between 100 and 300 percent. Default is 100 percent.
Example: SetScaling 150

SetUserDefaultScaling <ScalePercent>

Overrules the scaling of all graphical user interfaces and will permanently set the default scaling, but for the current user only. Using SetDefaultScaling will set the scaling for all users on the executing computer, but requires local admin rights to set a per-machine registry key. The same functionality can be achieved by setting the registry key HKEY_CURRENT_USER\Software\FastTrack Software\DefaultScaling. SetUserDefaultScaling takes precedence over SetDefaultScaling. Percent must be between 100 and 300 percent. Default is 100 percent.
Example: SetUserDefaultScaling 150
Graphical User Interfaces - General Settings - Skin

SetDefaultSkin <Name>

Overrules the general graphical user interfaces default skin on the executing computer. Possible skins are Classic, Black, Grey and Modern. This command requires local admin rights - the same functionality can be achieved by setting the registry key HKEY_LOCAL_MACHINE\Software\FastTrack Software\DefaultCompanyLogo. Set to a blank value to clear the setting.
Example: SetDefaultSkin Classic

SetSkin <Name>

Sets the general graphical user interfaces skin. Possible skins are Classic, Black, Grey and Modern. Default is Modern.
Example: SetSkin Classic

SetUserDefaultSkin <Name>

Permanently overrules the graphical user interfaces skin for the current user. Possible skins are Classic, Black, Grey and Modern. Using SetDefaultSkin will set the skin for all users on the executing computer, but requires local admin rights to set a per-machine registry key. The same functionality can be achieved by setting the registry key HKEY_CURRENT_USER\Software\FastTrack Software\DefaultSkin. SetUserDefaultSkin takes precedence over SetDefaultSkin.
Example: SetUserDefaultSkin Classic
Graphical User Interfaces - General Settings - Timeouts

SetAskTimeout <Duration>

Sets a number of seconds, where the default button is automatically pressed for the Ask condition, if the user does not react. 0 is default and means no timeout.

SetMessageTimeout <Duration>

Sets a number of seconds, where the OK button is automatically pressed for the commands ShowMessage, ShowErrorMessage and ShowWarningMessage, if the user does not react. 0 is default and means no timeout.
Graphical User Interfaces - General Settings - Topmost

DisableTopMost

Disables that all graphical user interfaces are on top of all other windows. Disabled is default, but DisableTopMost must be used to switching back from EnableTopMost.

EnableTopMost

Enables all graphical user interfaces to be on top of all other windows.
Graphical User Interfaces - General Settings - User Interaction

DisableStealthMode

Disables Stealth Mode - see EnableStealthMode for information.

DisableUserInteraction

Suppresses all user interaction, ensuring that scripts do not pause and ask the user for action. The difference between this and stealth mode is that splash and progress screens are still shown. From command-line this mode can be enabled using the /dm (disable messages) switch.

EnableStealthMode

Suppresses all user interfaces, ensuring that scripts do not pause and ask the user for action. From command-line this mode can be enabled using the /q or /quiet switch.

EnableUserInteraction

Re-enables user interaction.
Graphical User Interfaces - General Settings - Visual Effect

RemoveWindowEffect

Removes the hide and show effect for all windows. The visual effect is always disabled in Remote Desktop Services sessions.

SetExpandingWindowEffect
SetExpandingWindowEffect <Duration>

Sets the show and hide effect for all windows to be an exapand and collapse effect. Duration is in milliseconds - default is 200 milliseconds (1/5 of a second). The visual effect is disabled in Remote Desktop Services sessions.

SetFadingWindowEffect
SetFadingWindowEffect <Duration>

Sets the show and hide effect for all windows to be a fading effect (default). Duration is in milliseconds - default is 200 milliseconds (1/5 of a second). The visual effect is disabled in Remote Desktop Services sessions.

SetRollingWindowEffect
SetRollingWindowEffect <Duration>

Sets the show and hide effect for all windows to be a rolling effect. Duration is in milliseconds - default is 200 milliseconds (1/5 of a second). The visual effect is disabled in Remote Desktop Services sessions.

SetSlidingWindowEffect
SetSlidingWindowEffect <Duration>

Sets the show and hide effect for all windows to be a sliding effect. Duration is in milliseconds - default is 200 milliseconds (1/5 of a second). The visual effect is disabled in Remote Desktop Services sessions.
Graphical User Interfaces - General Settings - Wait Text

SetWaitCaption <Text>

Overrules the "Please wait ..." text for graphical user interfaces, such as Splash, SmallSplash, Progress and SyncDir.
Graphical User Interfaces - General Settings - Window Size

RestoreWindowSizes

Restores resizable windows to their default sizes.

SetNextWindowScale <PercentX>, <PercentY>

Sets the default size in percent of the screen resolution the next displayed resizable window such as the Menu, ListMenu, DoubleListMenu, ShowWebPage, ShowRemoteDesktop or Console window. Use the SetWindowScale command to set the size for all resizable windows, the RestoreWindowSizes command to restore window sizes to original sizes and the SetNextWindowSize command to set a fixed pixel size instead of a percentage.

SetNextWindowSize <Width>, <Height>

Sets the default size in pixels for the next displayed resizable window such as the Menu, ListMenu, DoubleListMenu, ShowWebPage, ShowRemoteDesktop or Console window. Use the SetWindowSize command to set the size for all resizable windows, the RestoreWindowSizes command to restore window sizes to original sizes and the SetNextWindowScale command to set a flexible size in percent of the screen resolution instead of a fixed pixel size. If the height or width is larger than the available screen size, the width or height is automatically scaled to fit. Entering -1 as the width and/or height will maximize to the highest possible size.

SetWindowScale <PercentX>, <PercentY>

Sets the default size in percent of the screen resolution for all resizable windows such as the Menu, ListMenu, DoubleListMenu, ShowWebPage, ShowRemoteDesktop or Console window. Use the SetNextWindowScale command to set the size for the next displayed resizable window only, the RestoreWindowSizes command to restore window sizes to original sizes and the SetWindowSize command to set a fixed pixel size instead of a percentage.

SetWindowSize <Width>, <Height>

Sets the default size in pixels for all resizable windows such as the Menu, ListMenu, DoubleListMenu, ShowWebPage, ShowRemoteDesktop or Console window. Use the SetNextWindowSize command to set the size for the next displayed resizable window only, the RestoreWindowSizes command to restore window sizes to original sizes and the SetWindowScale command to set a flexible size in percent of the screen resolution instead of a fixed pixel size. If the height or width is larger than the available screen size, the width or height is automatically scaled to fit. Entering -1 as the width and/or height will maximize to the highest possible size.
Graphical User Interfaces - Menus - Appearance

SetMenuItemBackColor <Color>
SetMenuItemBackColor <Color>, <ListOfItems>

Overrules the default background color for individual menu items (Menu, ListMenu, DoubleListMenu, etc). Color must be a known Windows color such as "Red" or a hash sign and the 6 digit hex RGB colors, as used in the html standard, for example #FF0000 for red.
Example: SetMenuItemBackColor Red,Disk Space

SetMenuItemForeColor <Color>
SetMenuItemForeColor <Color>, <ListOfItems>

Overrules the default foreground color for individual menu items (Menu, ListMenu, DoubleListMenu, etc). The default color can be set using the SetBodyColor command. Color must be a known Windows color such as "Red" or a hash sign and the 6 digit hex RGB colors, as used in the html standard, for example #FF0000 for red.
Example: SetMenuItemForeColor Red,Disk Space
Graphical User Interfaces - Menus - Settings

DisableMenuSorting

Disables sorting of items in all graphical menus.

EnableMenuSorting

Enables sorting of items in all graphical menus. Sorted is disabled by default.

SetDoubleListLeftWidth <Value>

Set the pixel width of the left side in the DoubleListMenu.

SetMenuDefault <DefaultValue>

Set the default selection value for all menus (Menu, ListMenu, DoubleListMenu, etc).

SetMenuDefaultChecked

Sets all items in the collection CheckListMenu to checked by default.

SetMenuDefaultUnchecked <DefaultValue>

Sets all items in the collection CheckListMenu to unchecked by default (default).

SetMenuHeaderIcon <IconName>

Overrules the default header icon in list menus, doublelist menus and the MultiInput command. IconName refers to an internal icon name of icons listed in the "Icon Explorer" in the script editor. Further icons can added with the AddCustomIcon command. You also point directly to an image file preferably by in png format.
Graphical User Interfaces - Menus

DoubleList <HeaderText>, <LeftColumnHeaderText>, <RightColumnHeaderText>, <ListOfValues>

Displays a list in two columns of items like the DoubleListMenu function, but without requiring the user to select an item. The following settings commands have effect on the window: SetScreenPos, SetBodyFont, SetBodyColor, SetHeaderFont, SetHeaderColor, SetBackgroundImage, ResetBackgroundImage, SetWindowSize, SetWindowScale, SetNextWindowSize, SetNextWindowScale, SetScaling, EnableTopMost/DisableTopMost and the visual effects commands. For every two items in the list of values, the first value is the left side and the second is the right side. The left side is returned as the selected choice. If the selected choice must be different than the displayed text, split the value with |, where the variable name is before the split and the display text after the split. The window icon can be changed using the SetMenuHeaderIcon command. ListOfValues simply means a dynamic number of parameters/values; there can be any number of parameters from none to an infinite number of parameters.
Example: List Synced files,[LastSyncChangedFiles]

List <Header>, <ListOfItems>

Displays a list of items like the ListMenu function, but without requiring the user to select an item. Useful for displaying collections. The following settings commands have effect on the window: SetScreenPos, SetBodyFont, SetBodyColor, SetHeaderFont, SetHeaderColor, SetBackgroundImage, ResetBackgroundImage, SetWindowSize, SetWindowScale, SetNextWindowSize, SetNextWindowScale, SetScaling, EnableTopMost/DisableTopMost and the visual effects commands. The window icon can be changed using the SetMenuHeaderIcon command. ListOfItems simply means a dynamic number of parameters/items; there can be any number of parameters from none to an infinite number of parameters.
Example: List Synced files,[LastSyncChangedFiles]
Graphical User Interfaces - Message Boxes

ShowErrorMessage <Message>
ShowErrorMessage <Message>, <Caption>
ShowErrorMessage <Message>, <Caption>, <ButtonText>

Displays an error message to the user. Preferably use quotes around texts to avoid misinterpretation of commas. Use the SetMessageTimeout command to set a timeout, where the OK button is automatically pressed, if the user does not react. The following settings commands have effect on the window: SetBodyFont, SetBodyColor, SetHeaderFont, SetHeaderColor, SetBackgroundImage, ResetBackgroundImage, SetScaling, EnableTopMost/DisableTopMost and the visual effects commands. ShowErrorMessage is that same as ShowMessage, except that the icon 'Stop' is selected by default.
Example: ShowErrorMessage The installation has failed - please contact Help Desk.,Installation failed

ShowMessage <Message>
ShowMessage <Message>, <Caption>
ShowMessage <Message>, <Caption>, <IconName>
ShowMessage <Message>, <Caption>, <IconName>, <ButtonText>

Displays a message to the user. Use the SetMessageTimeout command to set a timeout, where the OK button is automatically pressed, if the user does not react. The following settings commands have effect on the window: SetBodyFont, SetBodyColor, SetHeaderFont, SetHeaderColor, SetBackgroundImage, ResetBackgroundImage, SetScaling, EnableTopMost/DisableTopMost and the visual effects commands. Preferably use quotes around texts to avoid misinterpretation of commas. IconName refers to an internal icon name of icons listed in the "Icon Explorer" in the script editor. Further icons can added with the AddCustomIcon command. You also point directly to an image file preferably by in png format.
Example: ShowMessage The installation has completed

ShowMessageWin <Message>
ShowMessageWin <Message>, <Caption>

Displays a message to the user in regular Windows style. Preferably use quotes around texts to avoid misinterpretation of commas.
Example: ShowMessageWin Installation complete.[Return][Return]Press OK to continue

ShowWarningMessage <Message>
ShowWarningMessage <Message>, <Caption>
ShowWarningMessage <Message>, <Caption>, <ButtonText>

Displays an warning message to the user. Use the SetMessageTimeout command to set a timeout, where the OK button is automatically pressed, if the user does not react. The following settings commands have effect on the window: SetBodyFont, SetBodyColor, SetHeaderFont, SetHeaderColor, SetBackgroundImage, ResetBackgroundImage, SetScaling, EnableTopMost/DisableTopMost and the visual effects commands. Preferably use quotes around texts to avoid misinterpretation of commas. ShowErrorMessage is that same as ShowMessage, except that the icon 'Warning' is selected by default.
Example: ShowWarningMessage The installation has failed - please contact Help Desk.,Installation failed
Graphical User Interfaces - Progress Screens

CloseApplication <ProcessName>, <ApplicationName>
CloseApplication <ProcessName>, <ApplicationName>, <Seconds>
CloseApplication <ProcessName>, <ApplicationName>, <Seconds>, <Message>
CloseApplication <ProcessName>, <ApplicationName>, <Seconds>, <Message>, <HeaderText>
CloseApplication <ProcessName>, <ApplicationName>, <Seconds>, <Message>, <HeaderText>, <IconName>

If the process is running, it displays a window asking the user to close the application within a certain timeframe, forcing it closed, if there is no response. Useful for installations to make sure the application is closed. In the context of installations, you should issue the BlockExecution command afterwards to make sure the application is not started during the installation. The following settings commands have effect on the window: SetScreenPos, SetBodyFont, SetBodyColor, SetHeaderFont, SetHeaderColor, SetBackgroundImage, ResetBackgroundImage, SetScaling, EnableTopMost/DisableTopMost and the visual effects commands. If you do not specify a message, a standard closing message is shown. If you do not specify seconds, 2 minutes is assumed. You can use [Return] function to make the message appear in multiple lines. IconName refers to an internal icon name of icons listed in the "Icon Explorer" in the script editor. Further icons can added with the AddCustomIcon command. You also point directly to an image file preferably by in png format.
Example: CloseApplication WinWord.exe,Microsoft Word

Progress <Percent>
Progress <Percent>, <BodyText>
Progress <Percent>, <BodyText>, <Caption>
Progress <Percent>, <BodyText>, <Caption>, <IconName>

Shows a progress screen at the center of the screen. The following settings commands have effect on the window: SetScreenPos, SetBodyFont, SetBodyColor, SetHeaderFont, SetHeaderColor, SetBackgroundImage, ResetBackgroundImage, SetScaling, EnableTopMost/DisableTopMost and the visual effects commands. Calling progress multiple times during a script execution will update the shown screen. It is expected that Progress is called a number of times during execution, each time increasing the percent and optionally update the caption and body text. Percent must be between 0 and 100 and first time Progress is used, percent should normally be 0. For lengthy operations, consider using the ProgressTo command to create a gradual increase in percent. Remember quotes around the body and caption text, if it contains commas. Use the RemoveProgress command to hide the Progress screen. IconName refers to an internal icon name of icons listed in the "Icon Explorer" in the script editor. Use the SetWaitCaption to change the "Please wait ..." header. Further icons can added with the AddCustomIcon command. You also point directly to an image file preferably by in png format.
Example: Progress 0,The installation can take anywhere from 30 minutes to two hours.[Return][Return]Estimated time remaining: 1 hour.,Installing Windows 7 Service Pack 1

ProgressTo <Percent>, <Seconds>

Sets a progress timer for a window created with the Progress command to create a gradual progress on lengthy operations. The percent is gradually changed from the current percent to the new percent within the specified number of seconds. For example if the current Progress window percent is 0 and ProgressTo is fed with 100 percent and 300 seconds, the value in the Progress window is changed gradually from 0 to 100 percent within 5 minutes. If no Progress window is visible, the operation is cancelled. If a new Progress command is issued, the new percent is enforced.
Example: ProgressTo 100,300

RemoveProgress

Removes the Progress screen, if it is visible.

WaitForAcceptance
WaitForAcceptance <Seconds>
WaitForAcceptance <Seconds>, <Message>
WaitForAcceptance <Seconds>, <Message>, <HeaderText>
WaitForAcceptance <Seconds>, <Message>, <HeaderText>, <IconName>
WaitForAcceptance <Seconds>, <Message>, <HeaderText>, <IconName>, <ButtonText>

Displays a window with a progress screen. Useful for forced reboots. The CountDown function is the same, except that it allows cancellation. The following settings commands have effect on the window: SetScreenPos, SetBodyFont, SetBodyColor, SetHeaderFont, SetHeaderColor, SetBackgroundImage, ResetBackgroundImage, SetScaling, EnableTopMost/DisableTopMost and the visual effects commands. If you do not specify a message, a standard reboot message is assumed and you should issue the RebootForced command afterwards. If you do not specify seconds, 2 minutes is assumed. You can use [Return] function to make the message appear in multiple lines. IconName refers to an internal icon name of icons listed in the "Icon Explorer" in the script editor. Further icons can added with the AddCustomIcon command. You also point directly to an image file preferably by in png format.
Example: WaitForAcceptance 120,A forced system restart is needed.[Return][Return]Save open documents within 2 minutes
Graphical User Interfaces - Splash Screens - Settings

DisableSplashFlash

Disables flashing of text on splash screens (default behavior).

EnableSplashFlash
EnableSplashFlash <Interval>

Enables flashing of text on splash screens. Interval is the interval between flashed in milliseconds.
Graphical User Interfaces - Splash Screens

DisableSplashAutoHide

Disables autohiding of splash screens, when other GUI elements would show on top of it. This is default bahavior.

EnableSplashAutoHide

Enables autohiding of splash screens, when other GUI elements would show on top of it. This is default bahavior.

RemoveSmallSplash

Removes the SmallSplash, if it is visible.

RemoveSplash

Removes the Splash if it is visible.

SmallSplash <Text>
SmallSplash <Text>, <IconName>

Displays a small splash window at the bottom of the screen. Use the RemoveSmallSplash command to hide the splash screen again. Remember to quote the text, if it contains comma. The following settings commands have effect on the splash screen: SetScreenPos, SetBodyFont, SetBodyColor, SetBackgroundImage, ResetBackgroundImage, SetScaling, EnableTopMost/DisableTopMost and the visual effects commands. Use the SetWaitCaption to change the "Please wait ..." header. IconName refers to an internal icon name of icons listed in the "Icon Explorer" in the script editor. Further icons can added with the AddCustomIcon command. You also point directly to an image file preferably by in png format.
Example: SmallSplash Installing Microsoft Office...please wait.,Process

Splash <TextLine1>, <TextLine2>
Splash <TextLine1>, <TextLine2>, <ImageFile>

Displays a splash window at the center of the screen. Use the RemoveSplash command to hide the splash screen again. Remember to quote textlines, if they contain comma. The following settings commands have effect on the splash screen: SetScreenPos, SetBodyFont, SetBodyColor, SetBackgroundImage, ResetBackgroundImage, SetScaling, EnableTopMost/DisableTopMost and the visual effects commands. The optional imagefile is used as the icon. To change the background image, use the SetBackgroundImage command. Use the SetWaitCaption to change the "Please wait ..." header. Using FastTrack Logon, put your image file in fshbin folder and refer to the filename without the path, to use the graphics file from the client location.
Example: Splash Welcome to ACME Corporation,[UserFullName]
Graphical User Interfaces - Textual Input - MultiInput Field Configuration

CreateMultiInputCheckBox <ListOfVariables>

Defines that one or more input fields for the MultiInput command item associated with the variable must be checkboxes. If a variable is used with MultiInput that is defined by CreateInputCheckBox, the field will be a checkbox instead of a text field.

CreateMultiInputDropList <VariableName>, <ListOfValues>

Defines that the input field for the MultiInput command item associated with the variable is a drop down list. If a variable is used with MultiInput that is defined by CreateMultiInputDropList, the field will be a dropdown list of values instead of an input field.

CreateMultiInputLabel <ListOfVariables>

Defines that one or more input fields for the MultiInput command item associated with the variable must be labels (information). Note that the values used must be set before using the MultiInput command to prefill the fields with values. If a variable is used with MultiInput that is defined by CreateMultiInputLabel, the field will be a read-only informational label instead of a text field.

CreateMultiInputMemoField <ListOfVariables>

Defines that one or more input fields for the MultiInput command item associated with the variable must be memo fields (multi-line text fields).

CreateMultiInputPassword <ListOfVariables>

Defines that one or more input fields for the MultiInput command item associated with the variable must be password text fields. If a variable is used with MultiInput that is defined by CreateMultiInputPassword, the field will be a text field without showing the typed text instead of an normal input field.

CreateMultiInputTextField <ListOfVariables>

Defines that one or more input fields for the MultiInput command item associated with the variable must be text boxes (default).

SetMultiInputBackColor <Color>
SetMultiInputBackColor <Color>, <ListOfVariables>

Defines the default background color for input fields. Specifying one or more variable names will set the background color for those input fields only. Color must be a known Windows color such as "Red" or a hash sign and the 6 digit hex RGB colors, as used in the html standard, for example #FF0000 for red.

SetMultiInputForeColor <Color>
SetMultiInputForeColor <Color>, <ListOfVariables>

Defines the default foreground color for input fields. Specifying one or more variable names will set the foreground color for those input fields only. Color must be a known Windows color such as "Red" or a hash sign and the 6 digit hex RGB colors, as used in the html standard, for example #FF0000 for red.

SetMultiInputMandatory <ListOfVariables>

Defines that one or more input fields for the MultiInput command item associated with the variable are mandatory (default).

SetMultiInputOptional <ListOfVariables>

Defines that one or more input fields for the MultiInput command item associated with the variable are optional.
Graphical User Interfaces - Textual Input

MultiInput <HeaderText>, <ListOfFields>

Shows a list of input fields and returns every item in the list as a variable. The following settings commands have effect on the window: SetScreenPos, SetBodyFont, SetBodyColor, SetHeaderFont, SetHeaderColor, SetBackgroundImage, ResetBackgroundImage, SetScaling, EnableTopMost/DisableTopMost and the visual effects commands. The width of the window can be set with the SetWindowSize command. The window icon can be changed using the SetMenuHeaderIcon command. Check boxes, drop lists and password fields are possible by using the CreateMultiInputCheckBox, CreateMultiInputDropList and CreateMultiInputPassword commands. Fields are mandatory unless set otherwise by the SetMultiInputOptional command. Use the MultiInputCancelled condition to test, if the user pressed the cancel button. If the variable name must be different than the displayed text, split a field with | where the variable name is before the split and the display text after the split. ListOfFields simply means a dynamic number of parameters/fields; there can be any number of parameters from none to an infinite number of parameters. Fields can have default values simply by setting variable values before using MultiInput.
Example: MultiInput New User,UserName|User name (Initials),First name,Last name,Password

MultiInputForced <HeaderText>, <ListOfFields>

Shows a list of input fields and returns every item in the list as a variable. The following settings commands have effect on the window: SetScreenPos, SetBodyFont, SetBodyColor, SetHeaderFont, SetHeaderColor, SetBackgroundImage, ResetBackgroundImage, SetScaling, EnableTopMost/DisableTopMost and the visual effects commands. The width of the window can be set with the SetWindowSize command. The window icon can be changed using the SetMenuHeaderIcon command. Check boxes, drop lists and password fields are possible by using the CreateMultiInputCheckBox, CreateMultiInputDropList and CreateMultiInputPassword commands. Fields are mandatory unless set otherwise by the SetMultiInputOptional command. If the variable name must be different than the displayed text, split a field with | where the variable name is before the split and the display text after the split. ListOfFields simply means a dynamic number of parameters/fields; there can be any number of parameters from none to an infinite number of parameters. Fields can have default values simply by setting variable values before using MultiInputForced.
Example: MultiInputForced New User,UserName|User name (Initials),First name,Last name,Password

SetMultiInputCaption <Text>

Sets a caption text above the fields. Used to give the user information about the application.
Graphical User Interfaces - Web Page Viewing

ShowWebPage <Url>, <HeaderText>

Shows an embedded browser inside a window with a header text on top and a window caption. When the user clicks 'OK', the script continuesThe following settings commands have effect on the window: SetScreenPos, SetHeaderFont, SetHeaderColor, SetBackgroundImage, ResetBackgroundImage, SetWindowSize, SetWindowScale, SetNextWindowSize, SetNextWindowScale, SetScaling, EnableTopMost/DisableTopMost and the visual effects commands.
Example: If UserOnce ShowWelcome Then ShowWebPage http://intra.acme.com/Welcome,Welcome to Acme
Ini Files

WriteIni <IniFile>, <Section>, <Key>, <value>

Sets the value in an ini file.
Example: WriteIni \\AcmeServer\AdminShare$\Inventory.ini,[ComputerName],Disk,[DiskSize]
Installations - Internal FastTrack Registration

RegisterInstallation <ApplicationName>, <Version>, <Build>

Registers an installation for later query. RegisterInstallation requires admin rights and is expected to be issued after completing a setup program. Build refers to the current revision of your script, so that new usersettings can be applied when the build is changed, even if the application version is the same. Through the logon script, user settings can be applied to users logging on to machines with registered installations by using the UserSettingsOnce, UserSettingsOnceAVersion or UserSettingsOnceABuild conditions. If there is a file named "PostInstall.fsh" in the FastTrack directory, it is executed when the script issuing RegisterInstallation is finishes. Functions CurrentInstallName and CurrentInstallVersion are available in the PostInstall script.
Example: RegisterInstallation Microsoft Office,2010,1

UnregisterInstallation <ApplicationName>

Unregisters an installation, if it is already registered. If there is a file named "PostUninstall.fsh" in the FastTrack directory, it is executed. Functions CurrentInstallName and CurrentInstallVersion are available in the PostUninstall script.
Example: UnregisterInstallation Microsoft Office
Installations - Software On Demand

AddMSIOnDemand <ProgramName>, <Version>

Adds an item to the Software On Demand user selection menu.

AddProgramOnDemand <ProgramName>, <Version>

Adds an item to the Software On Demand user selection menu.

AddProgramScriptOnDemand <ProgramName>, <Version>, <ScriptFile>

Adds an item to the Software On Demand user selection menu.

InstallMSIOnDemand <ProgramName>, <Version>, <MSIPackage>
InstallMSIOnDemand <ProgramName>, <Version>, <MSIPackage>, <Parameters>

Installs an MSI package unattendedly without a user interface, if the package is not already installed and if the user has selected the application in the Software On Demand Menu; otherwise, nothing happens. Concurrency and logging rules apply. If another installation is currently running, the command will wait 5 minutes for the other installation to finish, because Windows Installer does not support multiple installations at the same time. To determine success, use resume on error mode (for example using "ResumeOnError 1" as the previous line) and use the LastLineFailed condition to check if the installation was successful. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function. If there is a file named "PostInstall.fsh" in the FastTrack engine directory, it is executed. Functions CurrentInstallName and CurrentInstallVersion are available in this script. Parameters can either be a transforms file or extra MSIExec parameters such as "TARGETDIR=C:\Extract".
Example: InstallOnDemandMSI Acrobat Reader,10.0,AcroRead.msi

InstallProgramOnDemand <ProgramName>, <Version>, <File>
InstallProgramOnDemand <ProgramName>, <Version>, <File>, <Arguments>

If the specified version of the program is not installed, it is installed and if the user has selected the application in the Software On Demand Menu. Use the InstallMSI command instead for Windows Installer MSI based files. Concurrency and logging rules apply. Arguments must be passed to make the installation run unattended. Specify user as <Domain>\<UserName> for a domain user. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function. If the user specified is under User Account Control (UAC), these restrictions apply.

InstallProgramScriptOnDemand <ProgramName>, <Version>, <ScriptFile>

If the specified version of the program is not installed, it is installed using a FastTrack installation script. Concurrency and logging rules apply. Specify user as <Domain>\<UserName> for a domain user. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function. If the user specified is under User Account Control (UAC), these restrictions apply.
Installations

InstallProgram <ProgramName>, <Version>, <File>
InstallProgram <ProgramName>, <Version>, <File>, <Arguments>
InstallProgram <ProgramName>, <Version>, <File>, <UserName>, <EncryptedPassword>
InstallProgram <ProgramName>, <Version>, <File>, <Arguments>, <UserName>, <EncryptedPassword>

If the specified version of the program is not installed, it is installed. Use the InstallMSI command instead for Windows Installer MSI based files. Concurrency and logging rules apply. Arguments must be passed to make the installation run unattended. Specify user as <Domain>\<UserName> for a domain user. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function. If the user specified is under User Account Control (UAC), these restrictions apply.

InstallProgramScript <ProgramName>, <Version>, <ScriptFile>
InstallProgramScript <ProgramName>, <Version>, <ScriptFile>, <UserName>, <EncryptedPassword>

If the specified version of the program is not installed, it is installed using a FastTrack installation script. Concurrency and logging rules apply. Specify user as <Domain>\<UserName> for a domain user. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function. If the user specified is under User Account Control (UAC), these restrictions apply.

UninstallProgram <ProgramName>
UninstallProgram <ProgramName>, <Arguments>
UninstallProgram <ProgramName>, <Arguments>, <MinVersion>

If the specified program is installed, it is uninstalled. If MinVersion is specified, the program is uninstalled, if the version is LESS than this version. For example specifing "10.1" as version, anything less than this version gets uninstalled. If the program is an MSI file, the uninstall happens unattended. If the program installer is not in MSI format, the uninstallation can only be unattended, if the program does not ask for confirmation. The program is the name shown in the Windows installed programs list. Program names can be found in the installed programs list in the control panel or on your inventory website, if you use inventory. You can specify the left-most part, but the full name must be preferred. Some programs like Adobe Reader postfixes the version number in the application name, in which case, this can easily be factored in by using "Adobe Reader" as program name. However using for example "Microsoft Office" instead of the full program name to detect an office installation is not a good idea, because you can get a positive unintentional hit on "Microsoft Office Outlook Connector" for example. As a general rule of thumb, use the longest possible left-most part. Arguments can be used in situations where further parameters for the uninstaller must be used. For example adding "/UILevel=Silent /KillProcessIfNeeded /DontRestart" to AVG uninstaller will make the uninstallation completely unattended. If there is a file named "PostUninstall.fsh" in the FastTrack engine directory, it is executed. Functions CurrentInstallName and CurrentInstallVersion are available in this script.
Example: UninstallProgram TeamViewer

UninstallProgramScript <ProgramName>, <ScriptFile>
UninstallProgramScript <ProgramName>, <ScriptFile>, <UserName>, <EncryptedPassword>

If the specified program is installed, it is uninstalled using a FastTrack script. Specify user as <Domain>\<UserName> for a domain user. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function. If the user specified is under User Account Control (UAC), these restrictions apply.
Local Users and Groups - Groups

AddComputerToLocalGroup <ComputerName>, <LocalGroupName>
AddComputerToLocalGroup <ComputerName>, <LocalGroupName>, <RemoteComputerName>

Adds a domain computer to a local group, if not already member. If domain is different than the current users' domain, specify group as <Domain>\<DomainGroupName>.
Example: AddComputerToLocalGroup AcmeServer,Administrators

AddGroupToLocalGroup <DomainGroupName>, <LocalGroupName>
AddGroupToLocalGroup <DomainGroupName>, <LocalGroupName>, <RemoteComputerName>

Adds a domain group to a local group, if not already member. If domain is different than the current users' domain, specify group as <Domain>\<DomainGroupName>.
Example: AddGroupToLocalGroup [DomainAdminsGroup],Administrators

AddLocalUserToLocalGroup <LocalUserName>, <LocalGroupName>
AddLocalUserToLocalGroup <LocalUserName>, <LocalGroupName>, <RemoteComputerName>

Adds a local user to a local group, if not already member.
Example: AddLocalUserToLocalGroup AcmeUser,AcmeGroup

AddUserToLocalGroup <DomainUserName>, <LocalGroupName>
AddUserToLocalGroup <DomainUserName>, <LocalGroupName>, <RemoteComputerName>

Adds an Active Directory user to a local group, if not already member. If domain is different than the current users' domain, specify user as <Domain>\<UserName>.
Example: AddUserToLocalGroup AcmeADUser,Administrators

CreateLocalGroup <LocalGroupName>
CreateLocalGroup <LocalGroupName>, <RemoteComputerName>

Creates a local group.
Example: CreateLocalGroup AcmeGroup

DeleteLocalGroup <LocalGroupName>
DeleteLocalGroup <LocalGroupName>, <RemoteComputerName>

Deletes a local group, if it exists.
Example: DeleteLocalGroup AcmeGroup

RemoveComputerFromLocalGroup <ComputerName>, <LocalGroupName>
RemoveComputerFromLocalGroup <ComputerName>, <LocalGroupName>, <RemoteComputerName>

Removes a domain computer from a local group, if already member. If domain is different than the current users' domain, specify group as <Domain>\<DomainGroupName>.
Example: RemoveComputerFromLocalGroup AcmeServer,Administrators

RemoveGroupFromLocalGroup <DomainGroupName>, <LocalGroupName>
RemoveGroupFromLocalGroup <DomainGroupName>, <LocalGroupName>, <RemoteComputerName>

Removes a domain group from a local group, if already member. If domain is different than the current users' domain, specify group as <Domain>\<DomainGroupName>.
Example: RemoveGroupFromLocalGroup [DomainAdminsGroup],Administrators

RemoveLocalUserFromLocalGroup <LocalUserName>, <LocalGroupName>
RemoveLocalUserFromLocalGroup <LocalUserName>, <LocalGroupName>, <RemoteComputerName>

Removes a local user from a local group, if already member.
Example: RemoveLocalUserFromLocalGroup AcmeUser,AcmeGroup

RemoveUserFromLocalGroup <DomainUserName>, <LocalGroupName>
RemoveUserFromLocalGroup <DomainUserName>, <LocalGroupName>, <RemoteComputerName>

Removes a Active Directory user from a local group, if already member. If domain is different than the current users' domain, specify user as <Domain>\<UserName>.
Example: RemoveUserFromLocalGroup AcmeADUser,Administrators

RenameLocalGroup <LocalGroupName>, <NewLocalGroupName>
RenameLocalGroup <LocalGroupName>, <NewLocalGroupName>, <RemoteComputerName>

Renames a local group.
Example: RenameLocalGroup AcmeGroup,AcmeNewGroup

SetLocalGroupDescription <LocalGroupName>, <Description>
SetLocalGroupDescription <LocalGroupName>, <Description>, <RemoteComputerName>

Changes the description of a local group.
Example: SetLocalGroupDescription AcmeGroup,Group for ACME test users
Local Users and Groups - Users

AllowLocalUserPasswordChange <LocalUserName>
AllowLocalUserPasswordChange <LocalUserName>, <RemoteComputerName>

Enables the ability to change password for a local user.
Example: AllowLocalUserPasswordChange AcmeUser

CreateLocalUser <LocalUserName>, <EncryptedPassword>
CreateLocalUser <LocalUserName>, <EncryptedPassword>, <FullName>
CreateLocalUser <LocalUserName>, <EncryptedPassword>, <FullName>, <RemoteComputerName>

Adds a local user account. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function. Use CreateUser to create an Active Directory user.
Example: CreateLocalUser AcmeUser, Akut3sRS6e3kJHztyeqg9w==, Test acme user

CreateLocalUserPlain <LocalUserName>, <PlainTextPassword>
CreateLocalUserPlain <LocalUserName>, <PlainTextPassword>, <FullName>
CreateLocalUserPlain <LocalUserName>, <PlainTextPassword>, <FullName>, <RemoteComputerName>

Adds a local user account. Password is entered as plain text. CreateLocalUser is recommended, unless the password is retrieved from user input. Use CreateUserPlain to create an Active Directory user.
Example: CreateLocalUserPlain AcmeUser, AcmePassword, Test acme user

DeleteLocalUser <LocalUserName>
DeleteLocalUser <LocalUserName>, <RemoteComputerName>

Deletes a local user account, if it exists.
Example: DeleteLocalUser AcmeUser

DisableLocalUser <LocalUserName>
DisableLocalUser <LocalUserName>, <RemoteComputerName>

Disables a local user, if it is currently enabled.
Example: DisableLocalUser AcmeUser

DisableLocalUserMustChangePassword <LocalUserName>
DisableLocalUserMustChangePassword <LocalUserName>, <RemoteComputerName>

Sets the user to not be forced to change password at next logon.
Example: DisableLocalUserMustChangePassword AcmeUser

DisableLocalUserPasswordExpiry <LocalUserName>
DisableLocalUserPasswordExpiry <LocalUserName>, <RemoteComputerName>

Disables expiration of password for a local user.
Example: DisableLocalUserPasswordExpiry AcmeUser

DisallowLocalUserPasswordChange <LocalUserName>
DisallowLocalUserPasswordChange <LocalUserName>, <RemoteComputerName>

Disables the ability to change password for a local user.
Example: DisallowLocalUserPasswordChange AcmeUser

EnableLocalUser <LocalUserName>
EnableLocalUser <LocalUserName>, <RemoteComputerName>

Enables a local user, if it is currently disabled.
Example: EnableLocalUser AcmeUser

EnableLocalUserMustChangePassword <LocalUserName>
EnableLocalUserMustChangePassword <LocalUserName>, <RemoteComputerName>

Sets the user to must change password at next logon.
Example: EnableLocalUserMustChangePassword AcmeUser

EnableLocalUserPasswordExpiry <LocalUserName>
EnableLocalUserPasswordExpiry <LocalUserName>, <RemoteComputerName>

Enables expiration of password for a local user.
Example: EnableLocalUserPasswordExpiry AcmeUser

RenameLocalUser <LocalUserName>, <NewLocalUserName>
RenameLocalUser <LocalUserName>, <NewLocalUserName>, <RemoteComputerName>

Renames a local user.
Example: RenameLocalUser AcmeUser, AcmeRenamedUser

SetLocalUserDescription <LocalUserName>, <Description>
SetLocalUserDescription <LocalUserName>, <Description>, <RemoteComputerName>

Changes the description of a local user.
Example: SetLocalUserDescription AcmeUser, Acme test user for demonstration purposes

SetLocalUserFullName <LocalUserName>, <Description>
SetLocalUserFullName <LocalUserName>, <Description>, <RemoteComputerName>

Changes the full name of a local user.
Example: SetLocalUserFullName AcmeUser, Acme test user

SetLocalUserHomeDir <LocalUserName>, <Path>
SetLocalUserHomeDir <LocalUserName>, <Path>, <RemoteComputerName>

Changes the home path of a local user. Enter blank path to clear the home path.

SetLocalUserHomeDrive <LocalUserName>, <Drive>
SetLocalUserHomeDrive <LocalUserName>, <Drive>, <RemoteComputerName>

Changes the home drive of a local user (e.g. H:). Enter blank path to clear the home drive.