How to Use The JAMS File Transfer PowerShell Cmdlets


In addition to using the "File Transfer" execution method, file transfers can also be performed using the JAMS PowerShell module. The module supports transfers in the following forms: FTP, FTPS, and SFTP. Before a connection can be made, users must first define the credentials for the user account that will be connecting to the file server.

[Import the JAMS Module]

Import-Module JAMS

[Getting Credentials from a JAMS User]

$userCredentials = Get-JAMSCredential -UserName JAMSUserName -Server JAMSServerName

Once the credentials have been established a connection can then be made. The following example demonstrates the format for establishing an FTP connection:

[Establishing a Connection]

Connect-JFTP -Credential $userCredentials -Name YourFileServerName

The other two transfer methods follow the same format except that "Connect-JFTP" would be replaced with "Connect-JFTPS" or "Connect-JSFTP". Besides that difference, the following examples are the same for any of the three transfer methods. Once a connection is made, users can then retrieve or send files to the server.

[Sending & Retrieving Files]

The format for sending a file is as follows:

Send-JFSItem -Name C:\MyFile.txt  -Destination C:\ServerDirectory\MyFile.txt

The format for retrieving a file is very similar:

Receive-JFSItem -Name C:\ServerDirectory\MyFile.txt -Destination C:\MyFile.txt

To view files in a directory the cmdlet "Get-JFSChildItem" can be used:

Get-JFSChildItem -Path C:\Logs\

Another option is to view details about a specific item using "Get-JFSItem":

Get-JFSItem -Path C:\Logs\Audit.log

The "Get-JFSChildItem" cmdlet is similar to the PowerShell "Get-ChildItem" cmdlet, they both return a collection of objects.

The "Get-JFSChildItem" returns a collection of JAMSFileServerItems. Each JAMSFileServerItems describes a single file or directory that is on the file server. You can process these items using all the standard PowerShell commands, for example:

$fileList = Get-JFSChildItem *.txt
foreach($file in $fileList)
  if (($file.IsFile) -and ($file.Modified -gt $checkDate))
  Receive-JFSItem $file

[Directory Movement]

The "Get-JFSLocation" cmdlet enables users to determine the current path on the file server. An example of using this cmdlet might be to store the current directory in a PowerShell variable:

$CurrentDirectory = Get-JFSLocation

The "Set-JFSLocation" cmdlet allows users to change the directory on the file server and uses the format:

Set-JFSLocation -Location C:\NewDirectory

[Renaming & Removing Files]

Renaming and Removing files is also very simple. An example of renaming a file would be:

Rename-JFSItem -Name OriginalName.txt -NewName NewName.txt

While the format for removing a file is:

Remove-JFSItem -Path "C:\FTPNewName.txt" -Confirm:$false

In the example above, setting the "-Confirm" switch to false means that there should not be a verification prompt before deleting the file.


Once the actions of the file transfer has completed users will then need to disconnect from the FTP Server to close the connection:


Any of these cmdlets could be issued from a PowerShell console or from a Job within JAMS that uses PowerShell as it is an execution method. Below is a simple example of how to use these cmdlets to perform a FTP transfer:

# Get the credentials for our FTP user
$userCredentials = Get-JAMSCredential JAMSFTPUser

# Connect to the FTP Server
Connect-JFTP -Credential $userCredentials -Name FTPServer7

# Send a file
Send-JFSItem -Name C:\Logs\Audit_Data.txt -Destination C:\Common\Audit_Data.txt

# Retrieve a file
Receive-JFSItem -Name C:\Common\Audit_Data.txt -Destination C:\Logs\Audit_Data.txt

# Disconnect from the server


Have more questions? Submit a request


  • Avatar
    Pei Wang

    Is there a way for a FTP job to overwrite and replace the file if it already exists?

  • Avatar
    Jonathan Brune

    This command seems to be case-sensitive. How can we change that?