Collections

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

Collections syntax

Collections Reference
Active Directory - Computers

AllComputers
AllComputers <DomainName>

Returns all Active Directory computers. If no domain name is specified, current domain is assumed.
Example: ForEach Computer in [AllComputers]

DomainControllers
DomainControllers <DomainName>

Returns all domain controllers. If no domain name is specified, current domain is assumed.
Example: ForEach DC in [DomainControllers]
Active Directory - Groups - Computers

ComputerGroups
ComputerGroups <ComputerName>

Returns all Active Directory groups of which the computer is a member (directly or through nested groups). An example of a nested group: A computer is a member of 'Sales Florida Computers', which is, in turn, a member of 'Sales America Computers'. In this scenario, the computer is implicitly a member of 'Sales America Computers', so both are included. If no computername is specified, the executing computer is assumed. The domain is, by default, the domain of the logged-on user. To specify another domain, use: <Domain>\<ComputerName>.
Example: ForEach Group in [ComputerGroups]

GroupComputers <GroupName>

Returns all Active Directory computers that are members of the group (directly or through nested groups). An example of a nested group member: When retrieving members of a group named 'Sales America Computers' and a group named 'Sales Florida Computers' is a also member of 'Sales America Computers', then all 'Sales Florida Computers' computers are also included as members of 'Sales America Computers'. The domain is, by default, the domain of the logged-on user. To specify a different domain, use <Domain>\<GroupName>. Returned computers are not prefixed with domain names unless they are from a different domain than the group, in which case they are returned as AcmeDomain2\Computer. Groups from the same domain are never prefixed.
Example: ForEach Computer in [GroupComputers]
Active Directory - Groups - Users

GroupUsers <GroupName>

Returns all Active Directory users that are members of the group (directly or through nested groups). An example of a nested group member: When retrieving members of a group named 'Sales America Users' and a group named 'Sales Florida Users' is a also member of 'Sales America Users', then all users of 'Sales Florida Users' are included as members of 'Sales America Users'. By default, the domain is that of the logged-on user. To specify a different domain, use <Domain>\<GroupName>. Returned users are not prefixed with domain names unless they are from a different domain than the group, in which case they are returned as AcmeDomain2\User. Groups from the same domain are never prefixed.
Example: ForEach User in [GroupUsers Sales America Users]

UserGroups
UserGroups <UserName>

Returns all Active Directory groups of which the user is a member (directly or through nested groups). An example of a nested group is: When a user is a member of 'Sales Florida Users' and 'Sales Florida Users' is a member of 'Sales America Users', then the user is implicitly a member of 'Sales America Users' and both are included. If no user is specified, the currently logged-on user is assumed. If the domain is different than the current users' domain, specify the user as: <Domain>\<UserName>.
Example: ForEach Group in [UserGroups]
Active Directory - Groups

AllGroups
AllGroups <DomainName>

Returns all Active Directory groups. If no domain name is specified, the current domain is assumed.
Example: ForEach Group in [AllGroups]

GroupGroups <GroupName>

Returns all Active Directory groups of which the group is a member (directly or through nested groups). The domain is, by default, that of the logged-on user. To specify another domain, use: <Domain>\<GroupName>.
Example: ForEach Group in [GroupGroups Domain Users]

GroupSubGroups <GroupName>

Returns all Active Directory groups that are members of the group directly or groups that are nested groups. An example of a nested group member: When retrieving members of a group named 'Sales America Computers' and a group named 'Sales Florida Computers' is a also member of 'Sales America Computers', then all 'Sales Florida Computers' computers are also included as members of 'Sales America Computers'. By default, the domain is that of the logged-on user. To specify a different domain, use <Domain>\<GroupName>. Returned subgroups are not prefixed with domain names unless they are from a different domain than the group, in which case they are returned as AcmeDomain2\Group. Groups from the same domain are never prefixed.
Example: ForEach Group in [GroupGroups]
Active Directory - Organizational Units - Computers

ComputersInOU <OUName>

Returns all computers in an Organizational Unit or a container in the Active Directory. OUs in sub-OUs are included unless the DisableOURecursion is issued. 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: ForEach Computer in [ComputersInOU AcmeSales]
Active Directory - Organizational Units - Groups

GroupsInOU <OUName>

Returns all groups in an Organizational Unit or a container in the Active Directory. OUs in sub-OUs are included unless the DisableOURecursion is issued. 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: ForEach Group in [GroupsInOU AcmeSales]
Active Directory - Organizational Units - Users

UsersInOU <OUName>

Returns all users in an Organizational Unit or a container in the Active Directory. OUs in sub-OUs are included unless the DisableOURecursion is issued. 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: ForEach user in [UsersInOU AcmeSales]
Active Directory - Organizational Units

AllOUs
AllOUs <DomainName>

Returns all Active Directory Organizational Units. If no domain name is specified, the current domain is assumed.
Example: ForEach OU in [AllOUs]

OUsInOU <OUName>

Returns all sub-Organizational Units in an Organizational Unit or a container in the Active Directory. OUs in sub-OUs are included unless the DisableOURecursion is issued. 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: ForEach OU in [OUsInOU]
Active Directory - Users

AllUsers
AllUsers <DomainName>

Returns all Active Directory users. If no domain name is specified, the current domain is assumed.
Example: ForEach User in [AllUsers]
Azure Active Directory

AllAzureDevices

Returns all Azure Active Directory devices.
Example: ForEach Device in [AzureAllDevices]

AllAzureGroups

Returns all Azure Active Directory groups.
Example: ForEach Group in [AzureAllGroups]

AllAzureUsers

Returns all Azure Active Directory users.
Example: ForEach User in [AzureAllUsers]

AzureComputerGroups
AzureComputerGroups <DeviceName>

Returns all groups an Azure Active device is member of. If no device name is specified, executing computer is assumed.
Example: ForEach Group in [AzureComputerGroups]

AzureGroupMembers <GroupName>

Returns all members of an Azure Active Directory group.
Example: ForEach Member in [AzureGroupMembers AcmeSales]

AzureUserGroups
AzureUserGroups <UserName>

Returns all groups an Azure Active Directory user is member of. If no username is specified, current user is assumed.
Example: ForEach Group in [AzureUserGroups]
Backup And Replication - Statistics

LastSyncChangedFiles

Returns a collection of all new or changed source files from the last SyncDir, SyncDirSecure, CopyDir or CopyDirSecure operation. If the operations was cancelled, the collection is empty. Use the LastSyncWasCancelled condition to detect cancellation. The cancel button can be removed using the DisableSyncCancel command.
Example: ForEach File in [LastSyncChangedFiles]

LastSyncFailedDirectories

Returns a collection of directories that could not be indexed from the last SyncDir, SyncDirSecure, CopyDir or CopyDirSecure operation. Can be used with the LastLineFailed condition. Observe that the list can be empty, if a general error occurs. The script must be in error-resume mode to be executing at all after an error occurs, either by using the /IE command-line switch or the ResumeOnError command. If the operations was cancelled, the collection is empty. Use the LastSyncWasCancelled condition to detect cancellation. The cancel button can be removed using the DisableSyncCancel command.
Example: If LastLineFailed And [Length "[LastSyncFailedDirectories]"]>0 Then List Unable to index these directories:,[LastSyncFailedDirectories]

LastSyncFailedFiles

Returns a collection of files that could not be copied from the last SyncDir, SyncDirSecure, CopyDir or CopyDirSecure operation. Can be used with the LastLineFailed condition. Observe that the list can be empty, if a general error occurs. The script must be in error-resume mode to be executing at all after an error occurs, either by using the /IE command-line switch or the ResumeOnError command. If the operations was cancelled, the collection is empty. Use the LastSyncWasCancelled condition to detect cancellation. The cancel button can be removed using the DisableSyncCancel command.
Example: If LastLineFailed And [Length "[LastSyncFailedFiles]"]>0 Then List Unable to backup these files:,[LastSyncFailedFiles]

LastSyncFiles

Returns a collection of all source files from the last SyncDir, SyncDirSecure, CopyDir or CopyDirSecure operation. If the operations was cancelled, the collection is empty. Use the LastSyncWasCancelled condition to detect cancellation. The cancel button can be removed using the DisableSyncCancel command.
Example: ForEach File in [LastSyncFiles]
Citrix - Client

IcaApplications <XMLBroker>
IcaApplications <XMLBroker>, <UserName>, <EncryptedPassword>

Returns a list of available applications. To specify a another port than 80 for the Citrix XML Broker port, use <XMLBroker>:<Port> instead of just <XMLBroker>. 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. Citrix receiver must be installed.
Example: Set App = [ListMenu Select app,[IcaApplications xmlbroker.acme.com]]

IcaFarms <XMLBroker>
IcaFarms <XMLBroker>, <UserName>, <EncryptedPassword>

Returns a list of available farms. To specify a another port than 80 for the Citrix XML Broker port, use <XMLBroker>:<Port> instead of just <XMLBroker>. 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. Citrix receiver must be installed.
Example: Set Farm = [ListMenu Select farm,[IcaFarms xmlbroker.acme.com]]

IcaServers <XMLBroker>
IcaServers <XMLBroker>, <UserName>, <EncryptedPassword>

Returns a list of available servers. To specify a another port than 80 for the Citrix XML Broker port, use <XMLBroker>:<Port> instead of just <XMLBroker>. 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. Citrix receiver must be installed.
Example: Set Server = [ListMenu Select server,[IcaServers xmlbroker.acme.com]]
Custom Collections

Collection <Name>

Returns the elements of a custom collection.
Example: ForEach item in [Collection MyCollection]
Directories

SubDirectories <Path>

Returns a collection of sub directories, if they exist.
Example: ForEach Dir in [SubDirectories [WinDir]]

SubDirectoryReadableTree <Path>
SubDirectoryReadableTree <Path>, <Pattern>

Returns a collection of all sub directories recursively including their full path, if they exist. Only directories that are readable for the current user are returned. If the user has no access to a directory, the directory is ignored.
Example: ForEach Dir in [SubDirectoryReadableTree [WinDir]]

SubDirectoryTree <Path>
SubDirectoryTree <Path>, <Pattern>

Returns a collection of all sub directories recursively including their full path, if they exist. If the user cannot read a sub directory, an error occurs. Use the SubDirectoryReadableTree condition, if this behavior is not desirable.
Example: ForEach Dir in [SubDirectoryTree [WinDir]]
Execution - Console

ConsoleLines

Returns the lines currently displayed in the console.
Example: ForEach line in [ConsoleLines]
Files

FileLines <File>

Returns a collection of lines in a text file. Empty lines are skipped.
Example: ForEach Line in [FileLines]

Files <Path>
Files <Path>, <Pattern>

Returns a collection of files in the directory - use SubFileTree to get files in ALL subdirectories.
Example: List [Files [WinDir],*.log]

SubFileReadableTree <Path>
SubFileReadableTree <Path>, <Pattern>

Returns a collection of all sub files recursively including their full path. Only files in directories that are readable for the current user are returned. If the user has no access to a directory, the directory is ignored.
Example: ForEach TxtFile in [SubFileReadableTree [WinDir],*.txt]

SubFileTree <Path>
SubFileTree <Path>, <Pattern>

Returns a collection of all sub files recursively including their full path. If the user cannot read a sub directory, an error occurs. Use the SubFileReadableTree condition, if this behavior is not desirable.
Example: ForEach TxtFile in [SubFileTree [WinDir],*.txt]
FTP - Directories

FTPSubDirectories <FTPAddress>
FTPSubDirectories <FTPAddress>, <FTPUserName>, <EncryptedPassword>

Returns a collection of subdirectories on an FTP server. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
Example: ForEach Dir in [FTPSubDirectories ftp://10.10.10.10]

FTPSubDirectoryTree <FTPAddress>
FTPSubDirectoryTree <FTPAddress>, <FTPUserName>, <EncryptedPassword>

Returns a collection of all FTP SubDirectories recursively including their full path, but excluding the host name. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
Example: ForEach File in [FTPSubDirectoryTree ftp://10.10.10.10]
FTP - Files

FTPFileLines <FTPAddress>
FTPFileLines <FTPAddress>, <FTPUserName>, <EncryptedPassword>

Returns a collection of lines in an FTP text file. Empty lines are skipped. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
Example: ForEach Line in [FTPFileLines ftp://10.10.10.10/LogFile.txt]

FTPFiles <FTPAddress>
FTPFiles <FTPAddress>, <FTPUserName>, <EncryptedPassword>

Returns a collection of files in the directory on an FTP server. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
Example: ForEach File in [FTPFiles ftp://10.10.10.10/Backups]

FTPSubFileTree <FTPAddress>
FTPSubFileTree <FTPAddress>, <FTPUserName>, <EncryptedPassword>

Returns a collection of all FTP SubFiles recursively including their full path, but excluding the host name. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
Example: ForEach File in [FTPSubFileTree ftp://10.10.10.10]
FTP - Synchronization

LastFTPSyncChangedFiles

Returns a collection of all new or changed source files from the last SyncFTPDir or CopyFTPDir operation. If the operations was cancelled, the collection is empty. 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: ForEach File in [LastFTPSyncChangedFiles]

LastFTPSyncFiles

Returns a collection of all source files from the last SyncFTPDir or CopyFTPDir operation. If the operations was cancelled, the collection is empty. 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: ForEach File in [LastFTPSyncFiles]
Graphical User Interfaces - Menus

CheckListMenu <HeaderText>, <ListOfValues>

Shows a list menu of choices with checkmarks and returns the checked values. The following settings commands have effect on the window: SetScreenPos, SetBodyFont, SetBodyColor, SetBackgroundImage, ResetBackgroundImage, SetHeaderFont, SetHeaderColor, SetBackgroundImage, ResetBackgroundImage, SetWindowSize, SetWindowScale, SetNextWindowSize, SetNextWindowScale, SetScaling, EnableTopMost/DisableTopMost and the visual effects commands. If returned values 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. To pre-check an item, set an output variable using the Set command to "true" or "1" before using the CheckListMenu function. If the user cancels, the returned list is empty. 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: ForEach Choice in [CheckListMenu Select Printer,Printer 1,Printer 2,Printer 3,Printer 4]
Ini Files

IniSection <File>, <Section>

Returns all keys in an ini file section, if it exists. Combine in a loop with GetIniValue to get both key and value.
Example: ForEach Section in [IniSection Acme.Ini,General]

IniSections <File>

Returns all section names in an ini file section, if it exists. Combine with the IniSection collection and a a loop with GetIniValue to get keys and values.
Example: ForEach Section in [IniSections Acme.Ini]
Installations - Internal FastTrack Registration

ApplicationsInstalled

Returns all installed FastTrack scripted applications (using RegisterInstallation command).
Example: ForEach App in [ApplicationsInstalled]
Installations - Windows Program List

InstalledPrograms

Returns all installed Windows programs.
Example: ForEach App in [InstalledPrograms]
Intervals

Range <From>, <To>

Creates a range collection, from and to must be numbers. Can be used to loop a fixed number of times.
Example: ForEach Counter in [Range 0,10]
Local Users and Groups - Groups

AllLocalGroups
AllLocalGroups <RemoteComputerName>

Returns all local groups.
Example: ForEach Group in [AllLocalGroups]

GroupLocalGroups <DomainGroupname>

Returns all local groups of which the domain group is a member (directly or through nested domain groups) inside the local group. If the domain is different than the current users' domain, specify the group as: <Domain>\<GroupName>.
Example: ForEach Group in [GroupLocalGroups Domain Admins]

LocalGroupMembers <LocalGroupName>
LocalGroupMembers <LocalGroupName>, <RemoteComputerName>

Returns all members of a local group.
Example: ForEach User in [LocalGroupMembers]

LocalUserLocalGroups
LocalUserLocalGroups <LocalUserName>

Returns all local groups of which the local user is a member. If no username is specified, the logged on local user is assumed.
Example: ForEach Group in [LocalUserLocalGroups]

UserLocalGroups
UserLocalGroups <DomainUserName>

Returns all local groups of which the domain user is a member (directly or through nested domain groups) inside the local group. If no user is specified, the currently logged-on user is assumed. If the domain is different than the current users' domain, specify user as: <Domain>\<UserName>.
Example: ForEach Group in [UserLocalGroups]
Local Users and Groups - Users

AllLocalUsers
AllLocalUsers <ComputerName>

Returns all local users.
Example: ForEach user in [AllLocalUsers]
Microsoft Outlook - Profiles

OutlookAccounts

Returns a collection of email addresses currently mapped in Outlook for the current user. Useful for checking if the user has mapped non-authorized accounts. Notice that users will get a pop-up message asking to allow the extraction of account information, if group policies for programmatic security is set to ask the user for permission.
Example: ForEach Account in [OutlookAccounts]
Microsoft Outlook - Signatures

Signatures

Returns a list of installed signatures for the current user.
Microsoft Outlook - Storage Files

OSTFiles

Returns a collection of ost files (Off-line Storage Table) for the current user.
Example: ForEach OSTFile in [OSTFiles]

PSTFiles

Returns a collection of pst files (Personal Storage Table) for the current user.
Example: ForEach PSTFile in [PSTFiles]
Network - Adapters

AllNetworkAdapters

Returns a complete list of all network adapters in the executing computer including virtual adapters. Use the NetworkAdapters collection to only get physical adapters. The returned values are the connection names that represent the adapters, which can be used as input to network adapter functions.
Example: ForEach adapter in [AllNetworkAdapters]

NetworkAdapters

Returns a list of physical network adapters in the executing computer. The returned values are the connection names that represent the adapters, which can be used as input to network adapter functions.
Example: ForEach adapter in [NetworkAdapters]

VirtualNetworkAdapters

Returns a list of virtual network adapters in the executing computer. The returned values are the connection names that represent the adapters, which can be used as input to network adapter functions.
Example: ForEach adapter in [VirtualNetworkAdapters]
Network

Domains

Returns all domains in the current forest.
Example: ForEach Domain in [Domains]

IP6Addresses
IP6Addresses <HostOrConnectionName>

Returns all IP v6 addresses of the executing computer, unless Host is specified. Host can be a hostname or an IP address.
Example: ForEach ip in [IP6Addresses]

IPAddresses
IPAddresses <Host>

Returns all IP v4 addresses of the executing computer, unless Host is specified. Host can be a hostname or an IP address.
Example: ForEach ip in [IPAddresses]
Printers

LocalPrinters

Returns the names of all local printers.
Example: ForEach Printer in [LocalPrinters]

NetworkPrinterNames

Returns all locally mapped network printers in friendly format as shown in the control panel.
Example: ForEach Printer in [NetworkPrinterNames]

NetworkPrinters

Returns all locally mapped network printers in UNC format.
Example: ForEach Printer in [NetworkPrinters]

PrinterShares
PrinterShares <ServerName>

Returns the UNC path of all printer shares on a computer. For disk shares, use the Shares collection.
Processes - User Processes

RunningUserProcesses

Returns running processes for the current user. Processes running under other accounts are ignored, which is useful for Remote Desktop Services user scripts.
Example: ForEach Process in [RunningUserProcesses]
Processes - Windows

OpenWindows

Returns the caption of all open windows for the current user.
Example: List Windows,[OpenWindows]
Processes

RunningProcesses
RunningProcesses <RemoteComputerName>

Returns all running processes for all users.
Example: ForEach Process in [RunningProcesses]
Registry - 32 Bit

RegistryKeysx86 <RegistryKey>

Returns all keys under the specified key. Keys are returned from the redirected registry for 32-bit applications on a 64-bit operating system. Works the same as RegistryKeys on a 32-bit operating system or non-redirected keys. Returns an empty list, if the key does not exist. HKey_Local_Machine, HKey_Current_User and HKey_Classes_Root can be abbreviated to HKLM, HKCU and HKCR.
Example: ForEach Key in [RegistryKeysx86 HKCU\Software\Acme]

RegistryValueDatax86 <RegistryKey>

Returns all value data under the specified key. Value data is returned from the redirected registry for 32-bit applications on a 64-bit operating system. Works the same as RegistryValueData on a 32-bit operating system or non-redirected keys. HKey_Local_Machine, HKey_Current_User and HKey_Classes_Root can be abbreviated to HKLM, HKCU and HKCR.
Example: ForEach ValueData in [RegistryValueDatax86 HKCU\Software\Acme]

RegistryValueMultilinex86 <RegistryKey>

Returns all lines as a collection for type REG_MULTI value data. You can also extract the value data with the registry function RegistryValue, which will produce a carriage return separated string of hex values. Using this collection with other types than REG_MULTI will return one value. The value is returned from the redirected registry for 32-bit applications on a 64-bit operating system. Works the same as RegistryValueMultiline on a 32-bit operating system or non-redirected values. HKey_Local_Machine, HKey_Current_User and HKey_Classes_Root can be abbreviated to HKLM, HKCU and HKCR.
Example: ForEach byte in [RegistryValueMultiline86 HKCU\Software\Acme\BinStr]

RegistryValuesx86 <RegistryKey>

Returns all values under the specified key. Values are returned from the redirected registry for 32-bit applications on a 64-bit operating system. Works the same as RegistryValues on a 32-bit operating system or non-redirected values. HKey_Local_Machine, HKey_Current_User and HKey_Classes_Root can be abbreviated to HKLM, HKCU and HKCR.
Example: ForEach Value in [RegistryValuesx86 HKCU\Software\Acme]
Registry

RegistryKeys <RegistryKey>

Returns all keys under the specified key. Returns an empty list if the key does not exist. HKey_Local_Machine, HKey_Current_User and HKey_Classes_Root can be abbreviated to HKLM, HKCU and HKCR.
Example: ForEach Key in [RegistryKeys HKCU\Software\Acme]

RegistryValueData <RegistryKey>

Returns all value data under the specified key. HKey_Local_Machine, HKey_Current_User and HKey_Classes_Root can be abbreviated to HKLM, HKCU and HKCR.
Example: ForEach ValueData in [RegistryValueData HKCU\Software\Acme]

RegistryValueMultiline <RegistryKey>

Returns all lines as a collection for type REG_MULTI value data. You can also extract the value data with the registry function RegistryValue, which will produce a carriage return separated string of hex values. Using this collection with other types than REG_MULTI will return one value. HKey_Local_Machine, HKey_Current_User and HKey_Classes_Root can be abbreviated to HKLM, HKCU and HKCR.
Example: ForEach byte in [RegistryValueMultiline HKCU\Software\Acme\BinStr]

RegistryValues <RegistryKey>

Returns all values under the specified key. HKey_Local_Machine, HKey_Current_User and HKey_Classes_Root can be abbreviated to HKLM, HKCU and HKCR.
Example: ForEach Value in [RegistryValues HKCU\Software\Acme]
Remote Desktop Services - Server

LoggedOnUsers
LoggedOnUsers <RemoteComputerName>

Returns currently logged on users, which is useful for Remote Desktop Services.
Example: ForEach User in [LoggedOnUsers]
SCCM

AllTaskVars

Returns a collection of all Task Sequence variable names. Use the TaskVar function to get the value of a variable inside a loop.
Example: ForEach sequence in [AllTaskVars]
Shares

Shares
Shares <ServerName>

Returns the UNC path of all disk shares on a computer. For printer shares, use the PrinterShares collection.
SQL Server

SQLValues <SQLStatement>, <Server>
SQLValues <SQLStatement>, <Server>, <DefaultDatabase>
SQLValues <SQLStatement>, <Server>, <UserName>, <EncryptedPassword>
SQLValues <SQLStatement>, <Server>, <DefaultDatabase>, <UserName>, <EncryptedPassword>

Executes an SQL query against a SQL Server database, returning all values of the first field. Query should explicitly return one field, otherwise the first one is used. Your SQL statement must be quoted, as it will most likely contain commas. Also remember that when you construct your SQL statements, values must be in apostrophes (') according to the T-SQL language; for example "SELECT LogonTime FROM Logons WHERE UserName='[UserName]' ORDER BY LogonTime Desc". Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
Example: List Logons for [UserName]:,[SQLValues "SELECT LogonTime FROM Logons WHERE UserName='[UserName]' ORDER BY LogonTime Desc",AcmeServer\SQL,LogonAudit]
Strings

CharSplit <String>

Splits a string into a collection of characters.
Example: ForEach char in [CharSplit [Var MyVar]]

Split <String>
Split <String>, <Splitter>
Split <String>, <Splitter1>, <Splitter2>

Splits a string into a collection. The string is, by default, split with comma and dot. If you need to split by a special character like carriage return, you must use "[Return]" including quotes as splitter.
Example: ForEach value in [Split [Var MyVar]]
WMI

WMIValues <Query statement>
WMIValues <Query statement>, <RemoteComputerName>
WMIValues <Query statement>, <RemoteComputerName>, <UserName>, <EncryptedPassword>

Executes a WMI query and returns a collection of results. Remote computer queries require you to open the firewall rule "WMI" on the remote computer. Use <Domain>\<UserName> to specify domain for the remote connection user. Password must be encrypted in the editor using Tools->Encrypt Password or by using the EncryptPassword function.
Example: ForEach DiskModel in [WMIValues SELECT Model FROM Win32_DiskDrive]
XML

XMLAttributes <XML>, <XmlPath>
XMLAttributes <File>, <XmlPath>

Gets a collection of attributes of the first xml node that fits the path. Returns an empty collection if file or attributes are not found.
Example: ForEach Attribute in [XMLAttributes PrinterList.xml,Settings/Printers/Houston]

XMLMultiAttributes <XML>, <XmlPath>, <Attribute>
XMLMultiAttributes <File>, <XmlPath>, <Attribute>

This is the same a the XMLAttribute function, except that it will return a collection of all nodes and attributes that match.
Example: ForEach Attribute in [XMLMultiAttributes Locations.xml,Acme/Printers/Houston/PrinterSite,Name]

XMLSubNodes <XML>, <XmlPath>
XMLSubNodes <File>, <XmlPath>

Gets a collection of names of subnodes of the first xml node that fits the x-path. Returns an empty collection if the file or path is not found.
Example: ForEach Node in[XMLSubNodes PrinterList.xml,Settings/Printers]

XMLSubNodesXML <XML>, <XmlPath>
XMLSubNodesXML <File>, <XmlPath>

Gets a collection of the XML of subnodes of the first xml node that fits the x-path. This collection is useful over the XMLSubNodes when multiples nodes have the same names. Returns an empty collection if the file or path is not found.
Example: ForEach Node in [XMLSubNodesXML PrinterList.xml,Settings/Printers]


Rating: 5 out of 5

"Use this as a replacement for VBScript and PowerShell"

"It's easy to include attractive GUI elements in FastTrack scripts, beyond the basic dialog boxes and text input that VBScript offers ... Another powerful feature is the ability to distribute scripts as Windows Installer (.msi) or standard .exe files. Although interesting in its own right, this ability results in a much more intriguing capability: to repackage -- or wrap -- software installers as .msi files without using snapshots. If you've ever created an .msi installer file from before-and-after system snapshots, for use with a software distribution system such as Group Policy or SCCM, then you know how hit-and-miss the results can be."

Read full review


Rating: 8 out of 10

"Faster than the rest"

"We found the FastTrack syntax to be more transparent and easier to learn than Microsoft's PowerShell – the editor in particular provided good support in this regard. the Script Editor offers a large number of options from the command set through to simple output of graphical elements, which cannot be achieved at all with PowerShell or other solutions or only with a significantly greater level of effort."

"Anyone wanting to tackle the many hurdles in everyday admin and especially anyone for whom logon scripts and client automation is a priority will benefit from the variety of functions offered by FastTrack."

Review in English      Review in German