Deployment Guide for Veza Windows Server Integration
Debug level, logs may consume up to 1GB of disk space# Basic silent install
msiexec /i Veza.msi /qn
# Install with specific log file
msiexec /i Veza.msi /qn /l*v install.log
# Install to custom directory
msiexec /i Veza.msi /qn INSTALLDIR="D:\Applications\Veza"
# Install with an existing configuration file
msiexec /i Veza.msi /qn CONFIG="\\deployment-share\Veza\Veza.config"
# Install with an existing API key (recommended for automated deployment)
msiexec /i Veza.msi /qn APIKEY="<api_key>"
# Install with existing configuration file and API key
msiexec /i Veza.msi /qn CONFIG="\\deployment-share\Veza\Veza.config" APIKEY="<api_key>"msiexec /i Veza.msi /qn CONFIG="\\deployment-share\Veza\Veza.config" APIKEY="<api_key>"# Install without API key (use full path for CONFIG)
msiexec /i Veza.msi /qn CONFIG="C:\path\to\Veza.config" /l*v install.log
# Configure API key post-installation
Start-Process -FilePath "C:\Program Files\Veza\VezaWindowsTray.exe" -ArgumentList "--api_key=<api_key>" -NoNewWindow -Wait<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="PathConfigurationSection" type="Veza.Integrations.PathConfigurationDataSection, PathConfiguration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</configSections>
<PathConfigurationSection>
<PathConfigurations>
</clear>
<add path=”\\fileserver01.example.com\Finance” depth=”1” />
<add path=”\\fileserver02.example.com\Human Resources\Benefits” depth=”1” />
</PathConfigurations>
</PathConfigurationSection>
<appSettings>
<!-- Local Account Collection Settings -->
<add key="windows_local_accounts-enabled" value="true" />
<add key="windows_local_accounts-interval" value="60" />
<add key="windows_local_accounts-services_enabled" value="true" />
<add key="windows_local_accounts-tasks_enabled" value="true" />
<add key="windows_local_accounts-save_json" value="false"/>
<!-- Veza API Connection Settings -->
<!-- WARNING: Do not set veza-api_key here - use MSI APIKEY parameter or post-install command -->
<add key="veza-url" value="https://YOUR_TENANT.vezacloud.com" />
<add key="veza-insight_point_proxy" value="http://INSIGHT_POINT_IP:8080">
<add key="veza-loglevel" value="Info" />
<!-- File Share Discovery Settings -->
<add key="windows_files-enabled" value="true" />
<add key="windows_files-interval" value="120" />
<add key="windows_files-threads" value="1" />
<add key="windows_files-save_json" value="false"/>
</appSettings>
</configuration># Single command deployment with API key encryption during installation
msiexec /i Veza.msi /qn CONFIG="\\deployment-share\Veza\Veza.config" APIKEY="<team_api_key>"# Store API key (this encrypts the key using Windows Data Protection API)
Start-Process -FilePath "C:\Program Files\Veza\VezaWindowsTray.exe" -ArgumentList "--api_key=<team_api_key>" -NoNewWindow -Wait# Set Veza tenant URL and API key
$vezaUrl = "https://<yourtenant>.vezacloud.com"
$vezaAPIKey = "your-personal-api-key"
$body = @{
"name"="Windows Server"
"custom_template"="application"
} | ConvertTo-Json
$header = @{
"Accept"="application/json"
"Authorization"="Bearer $vezaAPIKey"
"Content-Type"="application/json"
}
Invoke-RestMethod -Uri "https://$vezaUrl/api/v1/providers/custom" -Method 'Post' -Body $body -Headers $header
$body = @{
"name"="Windows Files"
"custom_template"="application"
} | ConvertTo-Json
Invoke-RestMethod -Uri "https://$vezaUrl/api/v1/providers/custom" -Method 'Post' -Body $body -Headers $header{
"team_id": "<team_id>",
"name": "<key_name>"
}{
"team_id": "613df02b-9a40-4331-947c-5c327b54b228",
"name": "server01.example.com"
}{
"value": {
"id": "01968c1b-85b7-71eb-8876-843ef2463a8e",
"access_key": "k1TzyiA…NiBuwP0Wzw",
"name": "server01.example.com",
"created_at": "2025-01-01T15:35:58.647121782Z",
"last_access_at": "2025-01-01T15:35:58.647121782Z",
"status": "ACTIVE",
"team_id": "613df02b-9a40-4331-947c-5c327b54b228",
"team_name": ""
}
}# Set Veza tenant URL and API key
$vezaUrl = "https://<yourtenant>.vezacloud.com"
$vezaAPIKey = "your-personal-api-key"
# Set the Team ID from the previous step
$teamId = "your-team-id"
$body = @{
"team_id"=$teamId
"name"="server01.example.com"
} | ConvertTo-Json
$header = @{
"Accept"="application/json"
"Authorization"="Bearer $vezaAPIKey"
"Content-Type"="application/json"
}
$resp = Invoke-RestMethod -Uri "https://$vezaUrl/api/preview/teamkeys" -Method 'Post' -Body $body -Headers $header
$resp.value.access_key$vezaUrl="https://<yourtenant>.vezacloud.com"
$vezaAPIKey="<veza-personal-api-key>"
$teamId="<veza-team-id>"
$fqdn=(Get-WmiObject win32_computersystem).DNSHostName+"."+(Get-WmiObject win32_computersystem).Domain
$vezaRequestHeader = @{
"Accept"="application/json"
"Authorization"="Bearer $vezaAPIKey"
"Content-Type"="application/json"
}
$keyRequestBody = @{
"team_id"=$teamId
"name"=$fqdn
} | ConvertTo-Json
$keyResponse = Invoke-RestMethod -Uri "$vezaUrl/api/preview/teamkeys" -Method 'Post' -Body $keyRequestBody -Headers $vezaRequestHeader
$apiKey = $keyResponse.value.access_key
msiexec /i Veza.msi /qn CONFIG="\\deployment-share\Veza\Veza.config" APIKEY=$apiKey