Hello
@Eric_Cartman !
As I recall, we disabled this ExecutionLocation parameter to help customers avoid errors in configuration - we knew that the In-Guest option was not how the step was supposed to work; and we made the assumption that the Veeam Backup server would be able to communicate with the guest OS (for example, for app-aware backups) whereas the Orchestrator server might not have direct network access to guests.
As with many assumptions, it seemed this was incorrect

as you require this exact functionality.
In a future release we may enable both options on our built-in port checking steps; however you can work around this very easily with a simple custom script.
It may be useful to you in other ways too, as the port to be checked is customisable. So you can test any network connection you want on the VM being processed.
Below is the script for port checking, and instructions -
Code: Select all
[CmdletBinding()]
Param(
[Parameter(Mandatory=$true)]
[string]$Server,
[Parameter(Mandatory=$true)]
[int]$Port
)
if ($Server.Contains(',')) {
$Servers = $Server.Split(',')
Write-Host "Several IP addresses found, script will check them all"
}
else {
$Servers = $Server
}
[bool] $testResult = $false
foreach ($s in $Servers) {
if (-not $testResult) {
$tcpClient = New-Object System.Net.Sockets.TcpClient
try
{
Write-Host("Trying connect to server '{0}' and port '{1}'" -f $s, $Port)
$tcpClient.Connect($s, $Port)
$testResult = $true
}
catch [System.Net.Sockets.SocketException]
{
Write-Warning("Could not connect to server '{0}' and port '{1}'. Details: {2}" -f $s, $Port, $_.Exception.Message)
}
finally
{
if ($tcpClient.Connected)
{
Write-Host("Successfully established a connection with the server '{0}' via the port '{1}'" -f $s, $Port)
$tcpClient.Close()
}
}
}
}
if (-not $testResult) {
Write-Error "Failed to verify port number"
}
To create your custom script step in Orchestrator -
- Navigate to Administration in the VRO UI and Plan Steps page
- Click Add
- Name your step
- Browse to the script above (save locally as a PowerShell script .ps1)
- Click next, confirm if you want to add step to all scopes, click next and finish
Now select the step you just created, and click Edit
Click next-next to parameters page.
You will see that Execute Location parameter is unlocked, so you can choose 'Orchestrator server'
Click Add and configure these custom parameters:
Server
- Name = Server (this must match the name in the script Param block)
- Type = Text
- Click Edit
- Choose a macro, for example %target_vm_name% or %target_vm_ip% (use current_vm options if you are using replica VMs, then it will work for both failover and failback)
- Save
Port
- Name = Port (this must match the name in the script Param block)
- Type = Signed Integer
- Set a default value (I used 22 for SSH but you can change it when using in a plan anyway)
- Save
Now you can add this step to required VMs (use multi-select to do it in one move

) and customize to check any port number.
Hope that helps!