Functions Reference
Refer to Getting Started Guide for information on how to use functions.
Active Directory Computers

LogonServer

Returns the current logon server of the executing computer.
Example: If [LogonServer]=AcmeSrv01 Then

ComputerDomain
ComputerDomain <Computer>

Returns the domain of the computer.

ComputerFullName
ComputerFullName <Computer>

Returns the full dns name of the computer.

ComputerName

Returns the name of the executing computer.
Example: AppendFile \\MyServer\MyAdministrativeShare$\NetworkErrors.log,"[Date],[Time],[UserFullName],[LastError]"

ComputerCustomProperty <PropertyName>
ComputerCustomProperty <PropertyName>, <ComputerName>

Returns a custom property from the Active Directory of a computer or an empty string if it is not set. Property name must be an LDAP property name like 'description'. If no computername is specified, executing computer is assumed. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<ComputerName>.
Example: If [ComputerCustomProperty managedBy,AcmePC0010]="[UserDistinguishedName]" Then

ComputerDistinguishedName
ComputerDistinguishedName <ComputerName>

Returns the distinguised name of the computer from the Active Directory. Remember that distinguished names contains commas, so quotation around the function is needed. If no computername is specified, executing computer is assumed. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<ComputerName>.
Active Directory Groups

DomainAdminsGroup

Returns the name of the domain admins group.
Example: AddDirPermissions [ProgramFilesDir]\Acme,[DomainAdminsGroup]:Change

DomainUsersGroup

Returns the name of the domain users group.
Example: AddDirPermissions [ProgramFilesDir]\Acme,[DomainUsersGroup]:Change

GroupCustomProperty <GroupName>, <PropertyName>

Returns a custom property from the Active Directory of a group or an empty string if it is not set. Property name must be an LDAP property name like 'managedBy'. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<GroupName>.
Example: If [GroupCustomProperty AcmeGroup,managedBy]="[UserDistinguishedName]" Then
Active Directory OU

ComputerFirstOU
ComputerFirstOU <ComputerName>

Returns the top-most OU name in the OU tree, of which the computer is a member of in the Active Directory. If no computername is specified, executing computer is assumed. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<ComputerName>.
Example: If [ComputerFirstOU]=Acme Sales Global Then ConnectShare J:,\\AcmeServer\Sales

ComputerLastOU
ComputerLastOU <ComputerName>

Returns the bottom-most OU name in the OU tree, of which the computer is a member of in the Active Directory. If no computername is specified, executing computer is assumed. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<ComputerName>.
Example: If [ComputerLastOU]=Acme Sales Denver Then ConnectShare J:,\\AcmeServer\SalesDenver

GroupFirstOU <GroupName>

Returns the top-most OU name in the OU tree, of which the group is a member of in the Active Directory. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<GroupName>.

GroupLastOU <GroupName>

Returns the bottom-most OU name in the OU tree, of which the group is a member of in the Active Directory. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<GroupName>.

OUCustomProperty <OUName>, <PropertyName>

Returns a custom property from the Active Directory of a organizational unit or an empty string if it is not set. Property name must be an LDAP property name like 'managedBy'. Domain is by default the domain of the logged on user, to specify another domain, use <Domain>\<OUName>.
Example: If [OUCustomProperty Acme Sales Global,managedBy]="[UserDistinguishedName]" Then

UserFirstOU
UserFirstOU <UserName>

Returns the top-most OU name in the OU tree, of which the currently logged on user is a member of in the Active Directory. 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>.
Example: If [UserFirstOU]=Acme Sales Global Then ConnectShare J:,\\AcmeServer\Sales

UserLastOU
UserLastOU <UserName>

Returns the bottom-most OU name in the OU tree, of which the currently logged on user is a member of in the Active Directory. 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>.
Example: If [UserLastOU]=Acme Sales Denver Then ConnectShare J:,\\AcmeServer\SalesDenver
Active Directory Users

UserCompany
UserCompany <UserName>

Returns the "Company" property from the Active Directory of a user or an empty string if it is not set. Optional username is the name of a user in the Active Directory. 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>.

UserCustomProperty <PropertyName>
UserCustomProperty <PropertyName>, <UserName>

Returns a custom property from the Active Directory of a user or an empty string if it is not set. Property name must be an LDAP property name like 'streetAddress'. 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>.
Example: If [UserCustomProperty AcmeUser,managedBy]="[UserDistinguishedName]" Then

UserDepartment
UserDepartment <UserName>

Returns the "Department" property from the Active Directory of a user or an empty string if it is not set. Optional username is the name of a user in the Active Directory. 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>.

UserDescription
UserDescription <UserName>

Returns the "Description" property from the Active Directory of a user or an empty string if it is not set. 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>.

UserDistinguishedName
UserDistinguishedName <UserName>

Returns the distinguised name of the currently logged on user from Active Directory. Remember that distinguished names contains commas, so quotation around the function is needed. 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>.

UserDomain

Returns the domain of the currently logged on user.

UserEMailAddress
UserEMailAddress <UserName>

Returns the "EMail" property from the Active Directory of a user or an empty string if it is not set. Optional username is the name of a user in the Active Directory. 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>.

UserFirstName
UserFirstName <UserName>

Returns the "First Name" property from the Active Directory of a user or an empty string if it is not set. 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>.

UserFullName
UserFullName <UserName>

Returns the user's full name ("Display Name" property in the Active Directory). 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>.
Example: Splash Welcome to Acme,[UserFullName]

UserHomeDir
UserHomeDir <UserName>

Returns the user's home directory. 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>.
Example: SyncDir [UserDocumentsDir],[UserHomeDir]\DocumentBackup

UserHomeDrive
UserHomeDrive <UserName>

Returns the user's home drive. 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>.
Example: ConnectShare [UserHomeDrive],[UserHomeDir]

UserInitials
UserInitials <UserName>

Returns the "Initials" property from the Active Directory of a user or an empty string if it is not set. 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>.

UserLastName
UserLastName <UserName>

Returns the "Last Name" property from the Active Directory of a user or an empty string if it is not set. 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>.

UserLogonScript
UserLogonScript <UserName>

Returns the user's logon script. 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>.

UserName

Returns the name of the currently logged on user.
Example: Splash Welcome to ACME Corporation,[UserName]

UserOffice
UserOffice <UserName>

Returns the "Office" property from the Active Directory of a user or an empty string if it is not set. 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>.

UserPhoneNo
UserPhoneNo <UserName>

Returns the "Telephone number" property from the Active Directory of a user or an empty string if it is not set. Optional username is the name of a user in the Active Directory. 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>.

UserPrincipalName
UserPrincipalName <UserName>

Returns the principal name of the currently logged on user from Active Directory. 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>.

UserProfilePath
UserProfilePath <UserName>

Returns the user's roaming profile path, if any. 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>.
Clipboard

Clipboard

Returns the text on the clipboard.
Date And Time

AddDays <Days>
AddDays <Days>, <DateTime>

Adds the number of days to the date and time. If date and time is not specified, current date and time is assumed. DateTime parameter can be date and time or just date or just time (assuming current date).
Example: If [FileCreationDate [Var File]]<[AddDays 2] Then DeleteFile [Var File]

AddHours <Hours>
AddHours <Hours>, <DateTime>

Adds the number of hours to the date and time. If date and time is not specified, current date and time is assumed. DateTime parameter can be date and time or just date or just time (assuming current date).

AddMinutes <Minutes>
AddMinutes <Minutes>, <DateTime>

Adds the number of minutes to the date and time. If date and time is not specified, current date and time is assumed. DateTime parameter can be date and time or just date or just time (assuming current date).

AddMonths <Months>
AddMonths <Months>, <DateTime>

Adds the number of months to the date and time. If date and time is not specified, current date and time is assumed. DateTime parameter can be date and time or just date or just time (assuming current date).
Example: If [FileCreationDate [Var File]]<[AddMonths 2] Then DeleteFile [Var File]

AddSeconds <Seconds>
AddSeconds <Seconds>, <DateTime>

Adds the number of seconds to the date and time. If date and time is not specified, current date and time is assumed. DateTime parameter can be date and time or just date or just time (assuming current date).

AddYears <Years>
AddYears <Years>, <DateTime>

Adds the number of years to the date and time. If date and time is not specified, current date and time is assumed. DateTime parameter can be date and time or just date or just time (assuming current date).
Example: If [FileCreationDate [Var File]]<[AddYears 2] Then DeleteFile [Var File]

Date

Returns current date.
Example: AppendFile \\MyServer\MyAdministrativeShare$\NetworkErrors.log,"[Date],[Time],[UserFullName],[LastError]"

DateOnly <DateTime>

Returns the date portion of the date and time. DateTime parameter can be date and time or just date or just time (assuming current date).

DateSerial
DateSerial <DateTime>

Returns the date as the serialized date. If no date is specified, current date and time is assumed. DateTime parameter can be date and time or just date or just time (assuming current date).

DateTime

Returns current date and time.

Day

Returns current day of the month.

DayDiff <DateTime>
DayDiff <DateTime>, <DateTime>

Returns the amount of days between the two dates. If the seconds date is larger then the first date, number is a negative number of days. DateTime parameters can be date and time or just date or just time (assuming current date).

Hour

Returns current hour in two digits.

Minute

Returns current minute in two digits.

Month

Returns current month in two digits.

Second

Returns current second in two digits.

SubtractDays <Days>
SubtractDays <Days>, <DateTime>

Subtracts the number of days to the date and time. If date and time is not specified, current date and time is assumed. DateTime parameter can be date and time or just date or just time (assuming current date).

SubtractHours <Hours>
SubtractHours <Hours>, <DateTime>

Subtracts the number of hours to the date and time. If date and time is not specified, current date and time is assumed. DateTime parameter can be date and time or just date or just time (assuming current date).

SubtractMinutes <Minutes>
SubtractMinutes <Minutes>, <DateTime>

Subtracts the number of minutes to the date and time. If date and time is not specified, current date and time is assumed. DateTime parameter can be date and time or just date or just time (assuming current date).

SubtractMonths <Months>
SubtractMonths <Months>, <DateTime>

Subtracts the number of months to the date and time. If date and time is not specified, current date and time is assumed. DateTime parameter can be date and time or just date or just time (assuming current date).

SubtractSeconds <Seconds>
SubtractSeconds <Seconds>, <DateTime>

Subtracts the number of seconds to the date and time. If date and time is not specified, current date and time is assumed. DateTime parameter can be date and time or just date or just time (assuming current date).

SubtractYears <Years>
SubtractYears <Years>, <DateTime>

Subtracts the number of years to the date and time. If date and time is not specified, current date and time is assumed. DateTime parameter can be date and time or just date or just time (assuming current date).

Time

Returns current time.
Example: AppendFile \\MyServer\MyAdministrativeShare$\NetworkErrors.log,"[Date],[Time],[UserFullName],[LastError]"

TimeOnly <DateTime>

Returns the time portion of the date and time. DateTime parameter can be date and time or just date.

WeekDay

Returns current week day's name.
Example: AppendFile \\MyServer\MyAdministrativeShare$\NetworkErrors.log,"[WeekDay] [Date],[Time],[UserFullName],[LastError]"

Year

Returns current year.
Directories

CurrentDir

Returns the current directory.

DirCreationDate <Path>

Returns the creation date of a directory.

DirCreationTime <Path>

Returns the creation date and time of a directory.

DirCreationTimeSerial <Path>

Returns the serialized creation date and time of a directory for comparison.

DirFileCount <Path>

Returns the number of files in the directory and subdirectories.

DirLastAccessDate <Path>

Returns the last access date of a directory.

DirLastAccessTime <Path>

Returns the last access date and time of a directory.

DirLastAccessTimeSerial <Path>

Returns the serialized last access date and time of a directory for comparison.

DirLastWriteDate <Path>

Returns the last write date of a directory.

DirLastWriteTime <Path>

Returns the last write date and time of a directory.

DirLastWriteTimeSerial <Path>

Returns the serialized last write date and time of a directory for comparison.

DirPath <File>

Gets the directory part of a full file path.

DirSize <Path>

Returns the complete size of all files in the directory and subdirectories in bytes.

DirSizeGB <Path>

Returns the complete size of all files in the directory and subdirectories in giga bytes, rounded to nearest giga byte.

DirSizeKB <Path>

Returns the complete size of all files in the directory and subdirectories in kilo bytes, rounded to nearest kilo byte.

DirSizeMB <Path>

Returns the complete size of all files in the directory and subdirectories in mega bytes, rounded to nearest mega byte.

DirSubDirCount <Path>

Returns the number of total sub directories under the directory.
Directory Paths

AppDataDir

Returns the application data folder for all users.

CommonFilesDir

Returns the common files directory.

CommonFilesDirx86

Returns the common files directory for x86 (32-bit) applications on 64-bit operating systems. On a 32-bit operating systems, the regular common files directory is returned.

DesktopDir

Returns the common desktop folder for all users.
Example: CopyFile [StartMenuDir]\Programs\Microsoft Office\Microsoft Office Word 2007.lnk, [DesktopDir]\Word 2007.lnk

DocumentsDir

Returns the common documents folder for all users.

FavoritesDir

Returns the common favorites folder for all users.

FontsDir

Returns the fonts path.

ProgramFilesDir

Returns the program Files directory. On a 64-bit machine, the 64-bit program files directory is returned.

ProgramFilesDirx86

Returns the program Files directory for x86 (32-bit) applications on 64-bit operating systems. On a 32-bit operating systems, the regular program files directory is returned.

ProgramsDir

Returns the common program icons folder for all users.
Example: CreateShortcut [ProgramsDir],Notepad,[WinDir]\Notepad.exe

StartMenuDir

Returns the common Start Menu folder for all users.
Example: CopyFile [StartMenuDir]\Programs\Microsoft Office\Microsoft Office Word 2007.lnk, [UserDesktopDir]\Word 2007.lnk

StartUpDir

Returns the common StartUp folder for all users.

SystemDir

Returns the system directory.
Example: CopyFile MyDll.dll,[SystemDir]\MyDll.dll

SystemDirx86

Returns the system directory for x86 (32-bit) applications on 64-bit operating systems. On a 32-bit operating systems, the regular system directory is returned.
Example: CopyFile MyDll.dll,[SystemDirx86]\MyDll.dll

TempDir

Temp directory.
Example: If UserOnceAWeek Then DeleteDirPreserved [TempDir]

TempFile

Gets a unique temporary filename.
Example: SetVar TempFile,[TempFile]

TemplateDir

Returns the common template folder for all users.

UserAppDataDir

Returns the application data folder for current user.
Example: Splash Welcome to Rock America,[UserFullName],[UserAppDataDir]\FastTrack\Logo.png

UserCookiesDir

Returns the cookies folder for the current user.

UserDesktopDir

Returns the desktop folder for the current user.
Example: CopyFile [StartMenuDir]\Programs\Microsoft Office\Microsoft Office Word 2007.lnk, [UserDesktopDir]\Word 2007.lnk

UserDocumentsDir

Returns the documents folder for current user.
Example: SyncDir [UserDocumentsDir],[UserHomeDir]\DocumentsBackup

UserFavoritesDir

Returns the favorites folder for the current user.
Example: SyncDir [UserFavoritesDir],[UserHomeDir]\Backup\Favorites

UserHistoryDir

Returns the history folder for the current user.

UserInternetCacheDir

Returns the internet cache folder for the current user.
Example: If UserOnceAMonth Then DeleteDirPreserved [UserInternetCacheDir]

UserPersonalDir

Returns the personal folder for the current user.

UserProfileDir

Returns the root of current user's profile.

UserProgramsDir

Returns the program icons folder for the current user.
Example: CreateShortcut [UserProgramsDir],Notepad,[WinDir]\Notepad.exe

UserRecentDir

Returns the recent files folder for the current user.

UserRoamingAppDataDir

Returns the application data folder when user is roaming. Returns a blank string for non-roaming users.

UserSendToDir

Returns the SendTo folder for the current user.

UserStartMenuDir

Returns the start Menu folder for the current user.

UserStartUpDir

Returns the startUp folder for the current user.

UserTemplateDir

Returns the template folder for the current user.

WinDir

Returns the windows directory.
Example: Launch [WinDir]\Notepad.Exe,MyTextFile.txt
Environment Variables

Env <Name>

Returns the value of an environment variable, or an empty string, if it does not exist.
Execution

LastError

Returns the last execution error, useful for logging in ErrorHandler.fsh.
Example: AppendFile \\MyServer\MyAdministrativeShare$\NetworkErrors.log,"[Date],[Time],[UserFullName],[LastError]"

LastExitCode

Returns the exit code from the run command.
Example: If [LastExitCode]=200 Then
Files

FileContent <File>

Gets the content of a file. Useful for long messages with ShowMessage. The file content gets parsed for functions, so you can use a file as a template message with [FullUserName] and other functions.

FileCreationDate <File>

Returns the creation date of a file.

FileCreationTime <File>

Returns the creation date and time of a file.

FileCreationTimeSerial <File>

Returns the serialized creation date and time of a file for comparison.

FileExtension <File>

Gets the extension of a a file.

FileLastAccessDate <File>

Returns the last access date of a file.

FileLastAccessTime <File>

Returns the last access date and time of a file.

FileLastAccessTimeSerial <File>

Returns the serialized last access date and time of a file for comparison.

FileLastWriteDate <File>

Returns the last write date of a file.

FileLastWriteTime <File>

Returns the last write date and time of a file.

FileLastWriteTimeSerial <File>

Returns the serialized last write date and time of a file for comparison.

FileName <File>

Gets the filename part of a full file path.

FileNameCombine <Path>, <FileName>

Combines a path and a filename to the full path.

FileNameLong <File>

Gets the full file name from a 8.3 file name.

FileNameShort <File>

Gets the 8.3 version of the file name.

FileSize <File>

Returns the size of the file in bytes.

FileSizeGB <File>

Returns the size of the file in giga bytes, rounded to nearest giga byte.

FileSizeKB <File>

Returns the size of the file in kilo bytes, rounded to nearest kilo byte.

FileSizeMB <File>

Returns the size of the file in mega bytes, rounded to nearest mega byte.

FullPath <FileOrDirectory>

Gets the full path from a relative path or filename.
Graphical User Interfaces

Input <Question>
Input <Question>, <ImageFile>

Asks the user the enter a string. The question must be quoted, if there is a comma. The optional imagefile must be either a skin or an icon file. If the image is exactly 537x165 pixels, it will be used as the background and removes the icon. If it is 128x128 or less, it will be used as the icon. Png format is generally best, because it supports 24 bit colors and transparency.
Example: SetVar Username,[Input "Please enter your name"]

InputPassword <Question>
InputPassword <Question>, <ImageFile>

Asks the user the enter a password. The question must be quoted, if there is a comma. The optional imagefile must be either a skin or an icon file. If the image is exactly 537x165 pixels, it will be used as the background and removes the icon. If it is 128x128 or less, it will be used as the icon. Png format is generally best, because it supports 24 bit colors and transparency.
Example: SetVar Password,[InputPassword "Please enter your password"]

ListMenu <HeaderText>, <ListOfValues>

Shows a menu of choices in a list with no icons. If cancelled, blank is returned. The list of values must be comma-separated; remember to use quotes, if any of your choices contain comma.
Example: SetVar Choice,[ListMenu Select Printer,Printer 1,Printer 2,Printer 3,Printer 4]

ListMenuForced <HeaderText>, <ListOfValues>

Shows a menu of choices in a list with no icons. User is forced to select an item and cannot cancel. The list of values must be comma-separated; remember to use quotes, if any of your choices contain comma.
Example: SetVar Choice,[ListMenuWithoutCancel Select Printer,Printer 1,Printer 2,Printer 3,Printer 4]

Menu <HeaderText>, <ListOfValues>

Shows a menu with choices and returns the selected item. If cancelled, blank is returned. The list of values must be comma-separated; remember to use quotes, if any of your choices contain comma. Values can start with "<IconName>|" for another icon than the default, see the menu icon explorer in the editor.
Example: SetVar Choice,[Menu Toolbox,Network|Connect to VPN,Download|Surf the Internet,Recycle|Reconnect network drives]

MenuForced <HeaderText>, <ListOfValues>

Shows a menu with choices and returns the selected item. User is forced to select an item and cannot cancel. The list of values must be comma-separated; remember to use quotes, if any of your choices contain comma. Values can start with "<IconName>|" for another icon than the default, see the menu icon explorer in the editor.
Example: SetVar Choice,[MenuWithoutCancel Toolbox,Network|Connect to VPN,Download|Surf the Internet,Recycle|Reconnect network drives]
Ini Files

IniValue <IniFile>, <Section>, <Key>

Gets the setting in an ini file. Returns a blank string if value or file is not found.
Installations

CurrentInstallName

Returns the application name in the current script context from RegisterInstallation or UnregisterInstallation, useful for PostInstall.fsh and PostUninstall.fsh.
Example: AppendFile \\MyServer\MyAdministrativeShare$\Install.log,"[Date],[Time],[ComputerName],[CurrentInstallName] v[CurrentInstallVersion]"

CurrentInstallVersion

Returns the application name version in the current script context from RegisterInstallation, useful for PostInstall.fsh.
Example: AppendFile \\MyServer\MyAdministrativeShare$\Install.log,"[Date],[Time],[ComputerName],[CurrentInstallName] v[CurrentInstallVersion]"
Local Groups

LocalAdminsGroup

Returns the name of the local administrators group.
Example: AddDirPermissions [ProgramFilesDir]\Acme,[LocalAdminsGroup]:Full Control

LocalGroupDescription <GroupName>
LocalGroupDescription <GroupName>, <RemoteComputerName>

Returns the description of a local group.

LocalPowerUsersGroup

Returns the name of the local power users group.
Example: AddDirPermissions [ProgramFilesDir]\Acme,[LocalPowerUsersGroup]:Change

LocalUsersGroup

Returns the name of the local users group.
Example: AddDirPermissions [ProgramFilesDir]\Acme,[LocalUsersGroup]:Change
Local Users

LocalEveryoneAccount

Returns the name of the local everyone account.
Example: AddDirPermissions [ProgramFilesDir]\Acme,[LocalEveryoneAccount]:Change

LocalNetworkServiceAccount

Returns the name of the local network service account.
Example: AddDirPermissions [ProgramFilesDir]\Acme,[LocalNetworkServiceAccount]:Change

LocalServiceAccount

Returns the name of the local service account.
Example: AddDirPermissions [ProgramFilesDir]\Acme,[LocalServiceAccount]:Change

LocalSystemAccount

Returns the name of the local system account.
Example: AddDirPermissions [ProgramFilesDir]\Acme,[LocalSystemAccount]:Change

LocalUserDescription
LocalUserDescription <Username>
LocalUserDescription <Username>, <RemoteComputerName>

Returns the description of a local user. If no user is specified, locally logged on user is assumed.

LocalUserFullName
LocalUserFullName <Username>
LocalUserFullName <Username>, <RemoteComputerName>

Returns the full name of a local user. If no user is specified, locally logged on user is assumed.
Example: Splash Performing backup for,[LocalUserFullName]

LocalUserHomeDir
LocalUserHomeDir <Username>
LocalUserHomeDir <Username>, <RemoteComputerName>

Returns the home path of a local user. If no user is specified, locally logged on user is assumed.

LocalUserHomeDrive
LocalUserHomeDrive <Username>
LocalUserHomeDrive <Username>, <RemoteComputerName>

Returns the home drive of a local user. If no user is specified, locally logged on user is assumed.

LocalUserLogonScript
LocalUserLogonScript <Username>
LocalUserLogonScript <Username>, <RemoteComputerName>

Returns the logon script path of a local user. If no user is specified, locally logged on user is assumed.

LocalUserName

Returns the name of the currently logged on user.
Example: Splash Performing backup for,[LocalUserName]

LocalUserProfilePath
LocalUserProfilePath <Username>
LocalUserProfilePath <Username>, <RemoteComputerName>

Returns the profile path of a local user. If no user is specified, locally logged on user is assumed.
Math

Calc <Expression>

Calculates the result of a mathematical expression, returning the result with decimals. Expression can contain parenthesises, common operators (+ - / * ^), artimetic operators (% (Mod) || (Or) && (And) ! (Not)) and comparison operators (< > == != <= =>).
Example: Sleep [Calc 60*60]

CalcRounded <Expression>

Calculates the result of a mathematical expression, returning a result rounded to nearest number without digits. Expression can contain parenthesises, common operators (+ - / * ^), artimetic operators (% (Mod) || (Or) && (And) ! (Not)) and comparison operators (< > == != <= =>).
Network

IPAddress
IPAddress <Host>

Returns the IP address of the executing computer, unless Host is specified. Host can be a hostname or an IP address. If the host has multiple IP addresses, the first obtained IP is returned.

IPAddressPart <Index>
IPAddressPart <Index>, <Host>

Returns the specified first number of digits in the ip address, for instance the 'IPAddressPart 2' of 127.0.0.1 is 127.0. Useful for indexing xml files for a specific location.
Example: If [IPAddressPart 2]=127.0 Then

MacAddress

Gets the mac adress of the fastest network adapter.

NetworkSpeed

Get the speed in mbit of the fastest network adapter.
Registry

RegistryValue <RegistryValue>

Returns the value of the given registry value or blank if it does not exist. HKey_Local_Machine, HKey_Current_User and HKey_Classes_Root can be abbreviated to HKLM, HKCU and HKCR.
Example: If Not [RegistryValue HKCU\Control Panel\Desktop\WallPaper]=[WinDir]\Acme.png Then ShowMessage You are not allowed to overrule the corporate wallpaper!

RegistryValuex86 <RegistryValue>

Returns the value of the given registry value or blank if it does not exist. Value is read from the redirected registry for 32-bit applications on a 64-bit operating system. Works the same as RegistryValue on a 32-bit operating system and for non-redirected keys. HKey_Local_Machine, HKey_Current_User and HKey_Classes_Root can be abbreviated to HKLM, HKCU and HKCR.
Screen

ScreenDepth

Returns number of bits per pixel.
Example: If [ScreenDepth]<16 Then SetScreenRes [ScreenWidth],[ScreenHeight],32

ScreenDevice

Returns screen device name.

ScreenHeight

Returns screen height in pixels.
Example: If [ScreenHeight]<768 Then SetScreenRes 1024,768

ScreenRefreshRate

Returns screen refresh rate in mhz, defaults to 0 if it cannot be determined.

ScreenWidth

Returns number screen width in pixels.
Example: If [ScreenWidth]<1024 Then SetScreenRes 1024,768
Statics

Blank

Returns an empty string - just for readability in scripts with empty strings.
Example: If [Var MyVar]=[Blank] Then

FastTrackExe

Returns the full path including the executable name of the executing FastTrack engine.
Example: AssociateUserExtension fsh,[FastTrackExe]

FastTrackPath

Returns the path to the executing FastTrack engine.
Example: AssociateUserExtension fsh,[FastTrackPath]\Fsh.exe

FastTrackVersion

Returns the current FastTrack engine version.

Return

Replaced by by carriage return.
Example: ShowMessage Installation complete.[Return][Return]Press OK to continue.
Strings

Char <Value>

Returns the character of the specified value. Can be used to encode [ and ], like [Char 91] and [Char 93].

CreateGUID

Generates a Global Unique Identifier (GUID).
Example: SetVar MyNewGuid,[CreateGUID]

IndexOf <String>, <SearchString>

Gets the position of the searchstring inside the string, can be use to for instance mask ip adresses. Index is zero based, no match will result in -1.
Example: If [IndexOf [Var MyVar],FindMe]>-1 Then

LastIndexOf <String>, <SearchString>

Gets the last position of the searchstring inside the string, can be use to for instance mask ip adresses. Index is zero based, no match will result in -1.
Example: If [LastIndexOf [Var MyVar],FindMe]>-1 Then

Left <String>, <Count>

Returns the leftmost "Count" number of chars from the string.
Example: if [Left [IPAddress],7]=192.168 Then

Length <String>

Gets the length of a string.
Example: If [Length [Var MyVar]]>0 Then

LowerCase <String>

Returns the string in lower case.
Example: SetVar MyVar,[LowerCase [Var MyVar]]

Mid <String>, <Start>, <End>

Gets a middle part of a string.

PrettyPrint <String>

Corrects case of a string and returns the result. First letter in every sentence is made upper case, everything else lower case.

PrettyPrintUpper <String>

Corrects case of a string and returns the result. Every first letter is made upper case, everything else lower case.

Random <MaxNumber>

Returns a random number between 0 and the MaxNumber parameter. Useful in logon scripts to randomize when large installations happen to avoid network congestion.
Example: If [Random 10]=0 Then

Replace <String>, <SearchString>, <ReplaceString>

Replaces 'SearchString' with 'ReplaceString' in the given string, returning the result. Regular expressions are supported.
Example: SetVar MyVar,[Replace [Var MyVar],Foo,Bar]

Right <String>, <Count>

Gets up to the rightmost "Count" chars of the string.

Trim <String>

Trims the string of leading and trailing white spaces.

UpperCase <String>

Returns the string in upper case.
Example: SetVar MyVar,[UpperCase [Var MyVar]]
System Information

BootMode

Boot mode.

CpuSpeed

CPU speed in MHz.
Example: WriteIni \\AcmeServer\AdminShare$\Inventory.ini,[ComputerName],CPU,[CpuSpeed]

DiskSize
DiskSize <Drive>:

Gets disksize in GB.
Example: WriteIni \\AcmeServer\AdminShare$\Inventory.ini,[ComputerName],Disk,[DiskSize]

FreeDiskSpace
FreeDiskSpace <Drive>:

Gets free diskspace in GB. You can use this in loginscript to display a warning when below a certain threshold. Defaults to the root of the drive windows resides on, if no drive is specified.
Example: If [FreeDiskSpace]<5 Then ShowMessage "Please contact HelpDesk, you are running out of disk space"

Manufacturer

System manufacturer, e.g. 'HP', 'Lenovo' or 'Dell inc'.
Example: If [Manufacturer]=Lenovo Then

NoMonitors

Number of monitors.
Example: WriteIni \\AcmeServer\AdminShare$\Inventory.ini,[ComputerName],NoMonitors,[NoMonitors]

NoProcessors

Number of processors.
Example: WriteIni \\AcmeServer\AdminShare$\Inventory.ini,[ComputerName],NoProcessors,[NoProcessors]

OperatingSystem

Returns full name of the Operating System.

OperatingSystemLanguage

Returns the ISO 639-2 language code of the operating system (e.g. ENG for English).

OperatingSystemServicePack

Returns Operating System Service Pack.

OperatingSystemVersion

Returns Operating System version.

TotalMemory

Total memory in megabytes.
Example: WriteIni \\AcmeServer\AdminShare$\Inventory.ini,[ComputerName],RAM,[TotalMemory]

UserLanguage

The ISO 639-2 language code of the regional settings of the currently logged on user (e.g. ENG for English).
Terminal Services

TSApplication

The name of the published application (blank if not available).

TSClientIP

The ip address of the client running terminal services, can be used to detect the clients location (blank if not available).

TSClientIPPart <1-4>

Returns the specified first number of digits in the ip address of the client running terminal services (blank if not available).

TSClientName

The name of the client running terminal services (blank if not available).
Variables

CmdParam <ParameterName>

Gets a command the line parameter value (specified with /P "ParameterName=Value"), returns blank if it is not specified.
Example: If [CmdParam Action]=Uninstall Then

Var <VariableName>

Value of the specified variable.
Example: AppendFile \\MyServer\MyAdministrativeShare$\NetworkErrors.log,"[Date],[Time],[UserFullName],[Var MyLogText]"
Web

HtmlDecode <String>

Returns the string html decoded.

HtmlEncode <String>

Returns the string html encoded.

HttpRequest <Url>
HttpRequest <Url>, <FormData>
HttpRequest <Url>, <UserName>, <EncryptedPassword>
HttpRequest <Url>, <FormData>, <UserName>, <EncryptedPassword>

Makes a http request returning the content returned from the http request. Use the command SendHttpData, if the returned data are not needed. FormData is optional POST (form) data for the request in url format like param1=value1&param2=value2. If optional password is used, it must be encrypted in the editor using Tools->Encrypt Password.

UrlDecode <String>

Returns the string url decoded.

UrlEncode <String>

Returns the string url encoded.
WMI

WMIQuery <Query statement>

Executes a WMI query. Query must explicitly return one attribute.
Example: SetVar DiskModel,[WMIQuery SELECT Model FROM Win32_DiskDrive]
XML

XMLAttribute <File>, <Path>, <Attribute>

Gets the attribute of the value of the first xml node that fits the path or blank if file or value does not exist.

XMLPairAttribute <File>, <Path>, <PairKey>, <PairValue>, <Attribute>

Gets the first xml node attribute that fits the path and has an attribute that fits the pairs key and value. Returns a blank string if file or attribute is not found.

XMLValue <File>, <Path>

Gets the value of the first xml node that fits the path or blank if file or value does not exist.
Example: SetVar MsdnIEPath,[XMLValue [UserAppDataDir]\Microsoft\MSDN\9.0\Browsers.xml,BrowserInfo/Browser/Path]