--- title: "Publish-VBRBackupContent" description: "Publishes disks from a backup or replica using the iSCSI or FUSE protocol. Product Edition: Standard, Enterprise, Enterprise Plus, Veeam Universal License This cmdlet uses the iSCSI protocol when publishing the content to the Microsoft Windows-based " canonical: "https://helpcenter.veeam.com/docs/vbr/powershell/publish-vbrbackupcontent.html" breadcrumb: "Veeam PowerShell Reference > Veeam PowerShell Reference > Data Recovery > Disk Publishing (Data Integration API) > Publish-VBRBackupContent" dateModified: "2026-08-19" --- # Publish-VBRBackupContent ## Short Description Publishes disks from a backup or replica using the iSCSI or FUSE protocol. **Product Edition**: Standard, Enterprise, Enterprise Plus, Veeam Universal License ## Syntax ``` Publish-VBRBackupContent [-RestorePoint] [-AllowedIps ] [-DiskNames ] [-RunAsync] [-TargetServerName ] [-TargetServerCredentials ] [-MountHostId ] [-Reason ] [-EnableFUSEProtocol] [-StorageHost ] [-ResourcePool ] [-Folder ] [] ``` ## Detailed Description This cmdlet uses the iSCSI protocol when publishing the content to the Microsoft Windows-based host and FUSE protocol when publishing content to the Linux-based or Unix-based server. You can publish disks from backups and replicas. For the list of supported backup types, see the [Publishing Disks (Data Integration API)](https://helpcenter.veeam.com/docs/vbr/userguide/data_integration_api.html?ver=13) section in the Veeam Backup & Replication User Guide. [For Microsoft Windows-based file systems] Depending on how you want to configure an iSCSI session, you can use one of the following mount modes: - **Automatic** — use this mode if you want Veeam Backup & Replication to automatically configure the iSCSI initiator, start iSCSI session and allow the specified target server to access disk content. To use this option, you must specify a name (the `TargetServerName` parameter) and credentials (the `TargetServerCredentials` parameter) of the target server. For more information, see [Example 2](#example-2-publishing-disks-automatic-mode). ::: note If you want to automatically mount data to Unix-based machines, you must use the FUSE protocol (the `EnableFUSEProtocol` parameter). For more details, see Example 3. ::: - **Manual** — use this mode if you want to manually start an iSCSI session from any server that has access to the iSCSI Target Server (mount server). In this case, you must specify an array of IP addresses of servers that are allowed to access the iSCSI Target Server (the `AllowedIps` parameter). For more information, see [Example 1](#example-1-publishing-disks-and-giving-access-for-specific-target-server-manual-mode). After you started the publishing session, you can check details on this session and stop it from the PowerShell console or the Veeam Backup & Replication UI. ## Parameters

Parameter

Description

Type

Required

Position

Accept Pipeline Input

AllowedIps

For Microsoft Windows-based file systems and the manual mount mode.

Specifies an array of IP addresses of target servers (iSCSI initiators) that are allowed to access the iSCSI Target Server (mount server).

Note: This parameter is required if you do not specify the TargetServerName parameter. After the cmdlet finishes its work, you need to manually start the iSCSI session from any server specified in this parameter to the iSCSI Target Server.

String[]

False

Named

False

DiskNames

Specifies disk names. The cmdlet will publish disks with the specified names. If you do not specify this parameter, the cmdlet will publish all disks from the backup or replica.

String[]

False

Named

False

EnableFUSEProtocol

Enables the FUSE protocol.

Note: This parameter is required if you want to publish disks to a Linux-based or Unix-based server.

SwitchParameter

False

Named

False

Folder

For restore from storage snapshots.

Specifies the folder where the temporary VM will be mounted.

If you do not specify this parameter, the cmdlet will use the default VM folder of the StorageHost.

Accepts the CViFolderItem object. To create this object, run the Find-VBRViEntity cmdlet.

CViFolderItem

False

Named

False

MountHostId

Specifies the ID of a server that has the mount server role. The mount server acts as an intermediary between the backup repository and the target server.

If you specify the ID, the cmdlet will use the specified server as the mount server. If you do not specify the ID, the cmdlet will use the mount server associated with the backup repository where backups are stored.

Note: You must add the server with this ID as the mount server to any backup repository in your backup infrastructure. For more information, see the Specify Mount Server Settings section in the Veeam Backup & Replication User Guide.

Guid

False

Named

False

Reason

Specifies the reason for disk publishing.

String

False

Named

False

ResourcePool

For restore from storage snapshots.

Specifies the resource pool where the temporary VM will be mounted.

If you do not specify this parameter, the cmdlet will use the default resource pool of the StorageHost.

Accepts the CViResourcePoolItem object. To create this object, run the Find-VBRViEntity cmdlet.

CViResourcePoolItem

False

Named

False

RestorePoint

Specifies a restore point. The cmdlet will publish disks in the state stored in the specified restore point.

Accepts the COib object. To get this object, run the Get-VBRRestorePoint cmdlet.

COib

True

0

True (ByPropertyName, ByValue)

RunAsync

Defines that the command returns immediately without waiting for the task to complete.

SwitchParameter

False

Named

False

StorageHost

For restore from storage snapshots.

Specifies the ESXi host to which the storage snapshot clone will be mounted as a temporary datastore. Veeam Backup & Replication registers a temporary VM on this host and attaches the source disks to it.

Note: This parameter applies only when the storage snapshot is accessed using the Direct SAN access transport mode. For other transport modes, Veeam Backup & Replicationmounts the snapshot clone to the source storage.

Accepts the CHost object. To create this object, run the Get-VBRServer cmdlet.

CHost

False

Named

False

TargetServerCredentials

Specifies credentials that the cmdlet will use to authenticate against the target server.

Accepts the CCredentials object. To create this object, run theAdd-VBRCredentials cmdlet.

CCredentials

False

Named

False

TargetServerName

For the automatic mount mode.

Specifies the name of the target server. The cmdlet will give the specified server access to the disk content.

Note: You must specify the TargetServerCredentials parameter to provide credentials that Veeam Backup & Replication will use to authenticate against the target server.

String

False

Named

False

`` This cmdlet supports Microsoft PowerShell common parameters. For more information on common parameters, see [ Microsoft Docs](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_commonparameters?view=powershell-7). ## Output Object The cmdlet returns the `VBRBackupContent` object that contains settings of published backed-up files. ## Examples ::: example ### Example 1. Publishing Disks and Giving Access for Specific Target Server (Manual Mode) This example shows how to allow the `198.51.100.0` server to access the content of the published disks. ``` $backup = Get-VBRBackup -Name "Webservers Backup Job" $point = Get-VBRRestorePoint -Backup $backup -Name "Webserver03" | Sort-Object -Property CreationTime | Select -Last 1 Publish-VBRBackupContent -RestorePoint $point -AllowedIps "198.51.100.0" -RunAsync ``` Perform the following steps: 1. Run the [`Get-VBRBackup`](get-vbrbackup.md) cmdlet. Specify the `Name` parameter value. Save the result to the `$backup` variable. 2. Run the [`Get-VBRRestorePoint`](get-vbrrestorepoint.md) cmdlet. Set the `$backup` variable as the `Backup` parameter value. Specify the `Name` parameter value. Pipe the cmdlet output to the `Sort-Object` cmdlet and set the `CreationTime` value as the `Property` parameter value. Pipe the output to the `Select` cmdlet to select the last restore point. Save the result to the `$point` variable. 3. Run the `Publish-VBRBackupContent` cmdlet. Specify the following settings: - Set the `$point` variable as the `RestorePoint` parameter value. - Specify the `AllowedIps` parameter value. - Provide the `RunAsync` parameter. ::: ::: example ### Example 2. Publishing Disks (Automatic Mode) This example shows how to publish disks to the `WinSrv2049` iSCSI target server. ``` $backup = Get-VBRBackup -Name "Webservers Backup Job" $point = Get-VBRRestorePoint -Backup $backup -Name "Webserver03" | Sort-Object -Property CreationTime | Select -Last 1 $creds = Add-VBRCredentials -User "WinSrv2049\Administrator" -Password "Pa$$w0rd" Publish-VBRBackupContent -RestorePoint $point -TargetServerName "WinSrv2049" -TargetServerCredentials $creds ``` Perform the following steps: 1. Run the [`Get-VBRBackup`](get-vbrbackup.md) cmdlet. Specify the `Name` parameter value. Save the result to the `$backup` variable. 2. Run the [`Get-VBRRestorePoint`](get-vbrrestorepoint.md) cmdlet. Set the `$backup` variable as the `Backup` parameter value. Specify the `Name` parameter value. Pipe the cmdlet output to the `Sort-Object` cmdlet and set the `CreationTime` value as the `Property` parameter value. Pipe the output to the `Select` cmdlet to select the last restore point. Save the result to the `$point` variable. 3. Run the [`Add-VBRCredentials`](add-vbrcredentials.md) cmdlet. Specify the `User` and the `Password` parameter values. Save the result to the `$creds` variable. 4. Run the `Publish-VBRBackupContent` cmdlet. Specify the following settings: - Set the `$point` variable as the `RestorePoint` parameter value. - Specify the `TargetServerName` parameter value. - Set the `$creds` variable as the `TargetServerCredentials` parameter value. ::: ::: example ### Example 3. Publishing Disks to Linux Server This example shows how to publish disks to the `192.0.8.1` Linux server. ``` $backup = Get-VBRBackup -Name "LinSrv2049" $restorepoint = Get-VBRRestorePoint -Backup $backup | Sort-Object -Property CreationTime | Select -Last 1 $creds = Get-VBRCredentials -Name "LinAdministrator" $session = Publish-VBRBackupContent -RestorePoint $restorepoint -TargetServerName 192.0.8.1 -TargetServerCredentials $creds -EnableFUSEProtocol ``` Perform the following steps: 1. Run the [`Get-VBRBackup`](get-vbrbackup.md) cmdlet. Specify the `Name` parameter value. Save the result to the `$backup` variable. 2. Run the [`Get-VBRRestorePoint`](get-vbrrestorepoint.md) cmdlet. Set the `$backup` variable as the `Backup` parameter value. Pipe the cmdlet output to the `Sort-Object` cmdlet and set the `CreationTime` value as the `Property` parameter value. Pipe the output to the `Select` cmdlet to select the last restore point. Save the result to the `$restorepoint` variable. 3. Run the [`Get-VBRCredentials`](get-vbrcredentials.md) cmdlet. Specify the `Name` parameter value. Save the result to the `$creds` variable. 4. Run the `Publish-VBRBackupContent` cmdlet. Specify the following settings: - Set the `$restorepoint` variable as the `RestorePoint` parameter value. - Specify the `TargetServerName` parameter value. - Set the `$creds` variable as the `TargetServerCredentials` parameter value. - Provide the `EnableFUSEProtocol` parameter. ::: ::: example ### Example 4. Publishing Disks and Specifying Mount Server ID This example shows how to publish disks to the `WinSrv2049` target server and specify the mount server ID. ``` $backup = Get-VBRBackup -Name "Webservers Backup Job" $point = Get-VBRRestorePoint -Backup $backup -Name "Webserver03" | Sort-Object -Property CreationTime | Select -Last 1 $creds = Add-VBRCredentials -User "WinSrv2049\Administrator" -Password "Pa$$w0rd" Publish-VBRBackupContent -RestorePoint $point -TargetServerName "WinSrv2049" -TargetServerCredentials $creds -MountHostId "c3498ba3eefd4576bc0kaeb38b4e9qs5" ``` Perform the following steps: 1. Run the [`Get-VBRBackup`](get-vbrbackup.md) cmdlet. Specify the `Name` parameter value. Save the result to the `$backup` variable. 2. Run the [`Get-VBRRestorePoint`](get-vbrrestorepoint.md) cmdlet. Set the `$backup` variable as the `Backup` parameter value. Specify the `Name` parameter value. Pipe the cmdlet output to the `Sort-Object` cmdlet and set the `CreationTime` value as the `Property` parameter value. Pipe the output to the `Select` cmdlet to select the last restore point. Save the result to the `$point` variable. 3. Run the [`Add-VBRCredentials`](add-vbrcredentials.md) cmdlet. Specify the `User` parameter value. Specify the `Password` parameter value. Save the result to the `$creds` variable. 4. Run the `Publish-VBRBackupContent` cmdlet. Specify the following settings: - Set the `$point` variable as the `RestorePoint` parameter value. - Specify the `TargetServerName` parameter. - Set the `$creds` variable as the `TargetServerCredentials` parameter value. - Specify the `MountHostId` parameter. ::: ## Related Commands - [`Get-VBRBackup`](get-vbrbackup.md) - [`Get-VBRRestorePoint`](get-vbrrestorepoint.md) - [`Add-VBRCredentials`](add-vbrcredentials.md)