跳转到主要内容
按照本指南安装 SentinelOne、Cove、DNSFilter 等。 自定义客户字段可在脚本中使用,以便用客户端特定的信息(密钥、令牌等)安装软件。 此示例安装:
  • Cove
  • SentinelOne
  • BitDefender
  • Webroot
1

创建客户自定义字段。

  1. 导航到 Settings > CRM > Custom Fields
  2. 添加自定义字段,详细信息如下:
    • Name:Cove Customer UID
    • Variable:CoverCustomerUID
2

为每个客户填写 Cove Customer UID。

  1. 导航到特定客户。
  2. 点击 Custom Fields。
  3. 编辑 Cove Customer UID。
  4. 输入从 Cove 检索到的 Customer UID。
3

编写脚本。

  1. 导航到 Scripts
  2. 创建一个脚本,详细信息如下:
    • Name:Install-Cove
    • Content
# ===== Configuration Variables =====
$CUSTOMERUID = $gorelo:client.CoveCustomerUID
$PROFILEID = "All-in" # Default retention policy
$PRODUCT = "0" # Profile ID (use "0" for no profile or a specific profile ID)
$DOWNLOADPATH = "C:\Windows\Temp"
# ===================================

$startTime = Get-Date
$INSTALL = "$DOWNLOADPATH\bm#$CUSTOMERUID#$PROFILEID#.exe"

# Download installer
try {
    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    (New-Object System.Net.WebClient).DownloadFile("https://cdn.cloudbackup.management/maxdownloads/mxb-windows-x86_x64.exe", "$INSTALL")
} catch {
    Write-Output "ERROR: Failed to download installer - $_"
    exit 1
}

# Run installer
try {
    Start-Process -FilePath $INSTALL -ArgumentList "-product-name `"$PRODUCT`"" -Wait -NoNewWindow
    Start-Sleep -Seconds 5
} catch {
    Write-Output "ERROR: Installation failed - $_"
    exit 1
}

# Verify installation
$service = Get-Service -Name "Backup Service Controller" -ErrorAction SilentlyContinue
$process = Get-Process -Name "BackupFP" -ErrorAction SilentlyContinue

if ($service.Status -eq 'Running' -and $process) {
    Write-Output "SUCCESS: Backup Service Controller is running and BackupFP process is active."
    Write-Output "Installed for Customer UID: $CUSTOMERUID"
    $exitCode = 0
} else {
    Write-Output "WARNING: Backup Service Controller or BackupFP process is not running as expected."
    Write-Output "Customer UID: $CUSTOMERUID"
    
    # Check log for errors
    $logDirectory = "C:\ProgramData\mxb\Backup Manager\logs\ClientTool"
    if (Test-Path $logDirectory) {
        $latestLog = Get-ChildItem -Path $logDirectory -Filter "*.log" | Sort-Object LastWriteTime -Descending | Select-Object -First 1
        if ($latestLog) {
            $errorLines = Get-Content -Path $latestLog.FullName | Where-Object { $_ -match '\[E\]' } | Select-Object -Last 3
            if ($errorLines) {
                Write-Output "Recent errors from log:"
                $errorLines | ForEach-Object { Write-Output $_ }
            }
        }
    }
    $exitCode = 1
}

$endTime = Get-Date
Write-Output "Installation completed in $([math]::Round(($endTime - $startTime).TotalSeconds, 2)) seconds."
exit $exitCode