Now you’re less likely to miss what’s been brewing in our knowledge base with this weekly digest
Please, try again later.
There are several possible causes for this issue:
Below are four screenshots where the Install agent option is greyed out. Each has unique characteristics that can be used to identify the underlying issue. Review each scenario closely, and identify which one matches the situation you are facing.
Note: These scenarios are roughly ordered from most common to least common.
In each screenshot four things are highlighted:
Veeam ONE Agent version: Correct version shown
Backup Server: Green Checkmark
Agent Status: Connected (Green Checkmark)
Available Options: [Remove Agents...] and [Agent settings...]
In this scenario, the Veeam ONE Agent is already deployed and cannot be installed on this Backup Server again.
Solution
This state is the expected sucessful state.
Veeam ONE Agent version: Correct version shown
Backup Server: Red X
Agent Status: No Installed
Available Options: None
In this scenario, the Veeam ONE Agent cannot be installed because the Veeam ONE server cannot reach the Veeam Backup Server.
Solution
To resolve this, ensure network connectivity between the Veeam ONE server and the Veeam Backup Server, and that the Veeam ONE server has the correct credentials to communicate with the Backup Server. If a Firewall is involved, review the required ports for Veeam ONE.
Veeam ONE Agent version: Correct version shown
Backup Server: Green Checkmark
Agent Status: Not responding (Red X)
Available Options: [Remove Agents...], [Reapir agent], and [Agent settings...]
In this scenario, the Veeam ONE Agent was deployed successfully and cannot be deployed on this Backup Server again. However, the "Not responding" status for the Agent indicates that the Veeam ONE Server cannot communicate with the Veeam ONE Agent deployed on the Backup Server.
Solution
If the "Repair agent" function does not resolve the issue, review the connection between the Veeam ONE Server and the Backup Server and ensure connectivity over port 2805.
Veeam ONE Agent version: displayed as "N/A"
Backup Server: Green Checkmark
Agent Status: Not installed
Available Options: None
In this scenario the Veeam ONE Monitor service is unable to communicate with the Veeam ONE Agent service. At this time, there are two known possible causes of this issue:
Solution
Review the steps after the screenshot for information about resolving this scenario.
The following is an extensive script that will:
Note: This script must be run on the Veeam ONE Server using an Administrative PowerShell Console.
#Check if script is being run on Veeam ONE Server by detecting Veeam ONE Monitoring Service
$onePresent = Get-Service -Name "Veeam ONE Monitoring Service" -ErrorAction SilentlyContinue
if ($onePresent) {
Write-Host "Veeam ONE detected. Proceeding with checks."
} else {
Throw "Veeam ONE not detected. This script must be run on the Veeam ONE server."
}
#Check if Veeam ONE Agent service is present.
function Check-VeeamONEAgentStatus {
$agentPresent = Get-Service -Name "Veeam ONE Agent" -ErrorAction SilentlyContinue
if (-not $agentPresent) {
Write-Host "Veeam ONE Agent not detected. Installing..."
Install-OneAgent
}
}
#Install Veeam ONE Agent in Master mode.
function Install-OneAgent {
Write-Host "Installing Veeam ONE Agent in Master mode."
#Path To VeeamONE.Agent.x64.msi (assuming default C: drive install)
$msiPath = "C:\Program Files\Veeam\Veeam ONE\Veeam ONE Monitor Server\AgentPackage\VeeamONE.Agent.x64.msi"
if (Test-Path -Path $msiPath) { } else { Throw "MSI file does not exist at $msiPath" }
#Get Veeam ONE Monitoring service's log on as account to show user which account credentials should be provided.
$serviceUsername = (Get-WmiObject -Class Win32_Service -Filter "Name='VeeamDCS'").StartName
#Prompt user to Specify Veeam ONE Service Account Credentials
$credentials = Get-Credential -Message "Please enter the credentials for $serviceUsername"
#Execute Installer and capture exit code
$installExit = (Start-Process -FilePath "C:\Windows\System32\msiexec.exe" -ArgumentList "/qn", "/i `"$msiPath`"", "ACCEPT_THIRDPARTY_LICENSES=1", "ACCEPT_EULA=1", "ACCEPT_REQUIRED_SOFTWARE=1", "ACCEPT_LICENSING_POLICY=1", "VO_AGENT_TYPE=1", "VO_BUNDLE_INSTALLATION=1", "VO_AGENT_SERVICE_ACCOUNT_NAME=`"$($credentials.UserName)`"", "VO_AGENT_SERVICE_ACCOUNT_PASSWORD=`"$($credentials.GetNetworkCredential().Password)`"" -Wait -Passthru).ExitCode
#Evaluate Exit Code
if ($installExit -ne 0) {
Throw "Veeam ONE Agent Install failed. Check event logs. (Invalid credentials provided?)"
} else {
Write-Host "Veeam ONE Agent Installed"
}
}
#Check which mode Veeam ONE Agent service is running in based on parsing the service log.
function Check-AgentMode {
$serviceID = Get-AgentServiceID
# Check OneAgent.log to determine whether service is running in Master or Worker mode
$logFilePath = "C:\ProgramData\Veeam\OneAgent\Log\" + $serviceID + "\OneAgent.log"
$logFileContent = Get-Content $logFilePath | Where-Object { $_ -match "Start actual agent settings:Id=\w+-\w+-\w+-\w+-\w+ AgentType=(Worker|Master) Port=\d+" }
$agentType = ($logFileContent | Select-Object -Last 1) -replace '.*AgentType=(Worker|Master).*', '$1'
#Evaluate mode and reinstall Veeam ONE Agent if operating in Worker mode.
Write-Host "Veeam ONE Agent Mode:" $agentType
if ([string]::IsNullOrEmpty($agentType)) {
Write-Host "Agent Mode not detected, restarting Veeam ONE Agent service and trying again."
Restart-Service VeeamOneAgentSvc
Check-AgentMode
} elseif ($agentType -eq "Worker") {
Reinstall-ONEAgent
} else {
Write-Host "Veeam ONE Agent operating in correct mode. Proceeding with checks."
}
}
#Extract Veeam ONE Agent service ID from file path specified in service settings.
function Get-AgentServiceID {
Check-VeeamONEAgentStatus
#Get Veeam ONE Agent Service ID#
$serviceID = ([regex]::Match((Get-WmiObject -Class Win32_Service | Where-Object { $_.Name -eq 'VeeamOneAgentSvc' }).PathName, '-id=([a-fA-F0-9-]+)').Groups[1]).Value
if ([string]::IsNullOrEmpty($serviceID)) {
Throw "Veeam ONE Agent Service ID Empty."
}
return $serviceID
}
#Get PrimaryOneAgentID value from registry. This is set by the Veeam ONE Agent installer and use by Veeam ONE Monitoring service to communicate with Veeam ONE Agent.
function Get-PrimaryOneAgentID {
$regValue = (Get-ItemProperty -Path 'HKLM:\SOFTWARE\Veeam\Veeam ONE Monitor\Service' -Name "PrimaryOneAgentId").PrimaryOneAgentId
return $regValue
}
function Reinstall-ONEAgent {
Write-Host "Veeam ONE Agent wrong mode. Reinstalling..."
Uninstall-ONEAgent
Install-OneAgent
Check-AgentMode
}
#Uninstalls Veeam ONE Agent by pulling the UninstallString from the registry and passing it to msiexec
function Uninstall-ONEAgent {
Write-Host "Uninstalling Veeam ONE Agent"
$programName = "Veeam ONE Agent"
$program = Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Where-Object {$_.DisplayName -eq $programName}
if ($program) {
$uninstallCommand = $program.UninstallString
$start = $uninstallCommand.IndexOf('{')
$end = $uninstallCommand.IndexOf('}')
$uninstalGuid = $uninstallCommand.Substring($start, $end - $start + 1)
$uninstallExit = (Start-Process -FilePath "C:\Windows\System32\msiexec.exe" -ArgumentList "/x `"$uninstalGuid`"" -Wait -Passthru).ExitCode
if ($uninstallExit -ne 0) {
Throw "Veeam ONE Agent uninstall failed. Check event logs."
} else {
Write-Host "Veeam ONE Agent Uninstalled"
}
} else {
Throw "Veeam ONE Agent uninstall entry in registry not found. Manually uninstall Veeam ONE Agent and rerun script"
}
}
#Compare the ID value from the Veeam ONE Agent service with the one set in the registry.
function Check-AgentIDs {
Write-Host "Checking for Agent ID Conflict"
$serviceID = Get-AgentServiceID
$regValue = Get-PrimaryOneAgentID
#Display current values for visual verification.
Write-Host "Agent Service ID:" $serviceID
Write-Host "Agent Registry ID:" $regValue
if ($serviceID -ne $regValue) {
Set-PrimaryOneAgentID
} else {
Write-Host "No Agent ID mismatch detected." -ForegroundColor Green
}
}
#Set the PrimaryOneAgentID value in the registry to match the local Veeam ONE Agent service ID.
function Set-PrimaryOneAgentID {
$serviceID = Get-AgentServiceID
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Veeam\Veeam ONE Monitor\Service' -Name "PrimaryOneAgentId" -Value $serviceID
$regValue = Get-PrimaryOneAgentID
if ($regvalue -eq $serviceID) {
Write-Host "A value mismatch was detected and has been corrected." -ForegroundColor Green
Write-Host "PrimaryOneAgentID value set to:" $regValue
} else {
Throw "Registry value could not be updated. Check permissions."
}
}
#Is Veeam ONE Agent installed?
Check-VeeamONEAgentStatus
#Is Veeam ONE Agent running in the correct mode, Master mode?
Check-AgentMode
#Is there a mismatch between the Veeam ONE Agent service ID and the PrimaryONEAgentID in the registry?
Check-AgentIDs
AgentManager.Start actual agent settings:Example:
OneAgent.AgentManager: AgentManager.Start actual agent settings:Id=<guid> AgentType=Master Port=2805
If the Veeam ONE Agent service on the Veeam ONE Server is operating in Worker mode (as discovered using the steps in the previous section). Perform the following:
$msiPath = "C:\Program Files\Veeam\Veeam ONE\Veeam ONE Monitor Server\AgentPackage\VeeamONE.Agent.x64.msi"
#Prompt user to Specify Veeam ONE Service Account Credentials
$credentials = Get-Credential -Message "Please enter the Veeam ONE Service Account credentials:"
#Execute Installer
Start-Process -FilePath "C:\Windows\System32\msiexec.exe" -ArgumentList "/i `"$msiPath`"", "ACCEPT_THIRDPARTY_LICENSES=1", "ACCEPT_EULA=1", "ACCEPT_REQUIRED_SOFTWARE=1", "ACCEPT_LICENSING_POLICY=1", "VO_AGENT_TYPE=1", "VO_BUNDLE_INSTALLATION=1", "VO_AGENT_SERVICE_ACCOUNT_NAME=`"$($credentials.UserName)`"", "VO_AGENT_SERVICE_ACCOUNT_PASSWORD=`"$($credentials.GetNetworkCredential().Password)`"" -Wait
The PrimaryOneAgentId value is used by the Veeam ONE Monitoring Service to identify which Veeam ONE Agent it should use as the Master control agent. If the PrimaryOneAgentId registry value's ID# does not match that of the active Veeam ONE Agent service, Veeam ONE will fail to communicate with the Veeam ONE Agent.
With the Veeam ONE Agent service now operating in Master mode and the PrimaryOneAgentId value confirmed to be matching the Veeam ONE Agent service ID value, proceed to the Relaunch and Reattempt Install Agent.
Your feedback has been received and will be reviewed.
Please, try again later.
Please try select less.
This form is only for KB Feedback/Suggestions, if you need help with the software open a support case
Your feedback has been received and will be reviewed.
Please, try again later.