Script Examples - Windows
The following examples show how to create an Agent object (HOST), download and extract an agent and /or TLS Gateway pack, and optionally install and start the ServiceManager for SQL, REST, and Windows Agents, as well as for the TLS Gateway.
Important! If you want to install and start the ServiceManager you must use RunAsAdministrator. Also, the ServiceManager installation is not secured. For more information, see CAPKI - Securing the ServiceManager.
This page includes the following:
REST Agent
The following parameters are used for the REST examples:
$AgentName = "REST13" $SmgrPort = 8873 $SmgrName = "Automic" $InstallFolder = "C:\temp\testrest" $RestEndpoint = "https://hostname:8088" $Client = 100 $Cred = Get-Credential
With ServiceManager
# Create HOST object Write-Host "Create Agent $($AgentName)" $ProgressPreference = "SilentlyContinue"; $AgentsUrl = $RestEndpoint + "/ae/api/v1/" + $Client + "/system/agents" $Body = @{ "name" = $AgentName "template" = "AGENT.WEBSERVICEREST" } $result = Invoke-WebRequest -Method 'Post' -Uri $AgentsUrl -Credential $Cred -Body ($Body|ConvertTo-Json) -ContentType "application/json" if ($result.StatusCode -ne 200) { throw "Failed to create agent object, status code was " + $result.StatusCode } # Download and extract agent package Write-Host "Create Agent package" $Body = @{ "platform" = "RA" "name" = $AgentName "config_update" = "[GLOBAL]`nname=" + $AgentName "service_manager" = @{ "operating_system" = "Windows" "operating_system_architecture" = "x64" "config_update" = "[GLOBAL]`nport=" + $SmgrPort + "`n[Destination " + $SmgrName + "]`ncmdfile=*OWN\uc4.smc`ndeffile=*OWN\uc4.smd" } } $AgentPackUrl = $RestEndpoint + "/ae/api/v1/" + $Client + "/system/agentpacks/" $result = Invoke-WebRequest -Method 'Post' -Uri $AgentPackUrl -Credential $Cred -Body ($Body|ConvertTo-Json) -ContentType "application/json" if ($result.StatusCode -ne 201) { throw "Agent package has not been created, status code was " + $result.StatusCode } $AgentZip = $result.Headers['Location'] Write-Host "Download $($AgentZip)" Invoke-WebRequest -Uri $AgentZip -Credential $Cred -OutFile "tmp.zip" Expand-Archive -Path "tmp.zip" -DestinationPath $InstallFolder Remove-Item -Path "tmp.zip" #Install and start service manager Write-Host "Install Service Manager" $smgrExe = Join-Path -Path $InstallFolder -ChildPath "smgr\bin\ucybsmgr.exe" -Resolve $SmgrWorkdir = Join-Path -Path $InstallFolder -ChildPath "smgr\bin" -Resolve $SmgrArguments = "-install " + $SmgrName Start-Process -FilePath $smgrExe -ArgumentList $SmgrArguments -WorkingDirectory $SmgrWorkdir -Wait -Verb RunAs $ServiceName = "UC4.ServiceManager." + $SmgrName Write-Host "Start Service Manager" Start-Service -Name $ServiceName
Without ServiceManager
# Create HOST object Write-Host "Create Agent $($AgentName)" $ProgressPreference = "SilentlyContinue"; $AgentsUrl = $RestEndpoint + "/ae/api/v1/" + $Client + "/system/agents" $Body = @{ "name" = $AgentName "template" = "AGENT.WEBSERVICEREST" } $result = Invoke-WebRequest -Method 'Post' -Uri $AgentsUrl -Credential $Cred -Body ($Body|ConvertTo-Json) -ContentType "application/json" if ($result.StatusCode -ne 200) { throw "Failed to create agent object, status code was " + $result.StatusCode } # Download and extract agent package Write-Host "Create Agent package" $Body = @{ "platform" = "RA" "name" = $AgentName "config_update" = "[GLOBAL]`nname=" + $AgentName } $AgentPackUrl = $RestEndpoint + "/ae/api/v1/" + $Client + "/system/agentpacks/" $result = Invoke-WebRequest -Method 'Post' -Uri $AgentPackUrl -Credential $Cred -Body ($Body|ConvertTo-Json) -ContentType "application/json" if ($result.StatusCode -ne 201) { throw "Agent package has not been created, status code was " + $result.StatusCode } $AgentZip = $result.Headers['Location'] Write-Host "Download $($AgentZip)" Invoke-WebRequest -Uri $AgentZip -Credential $Cred -OutFile "tmp.zip" Expand-Archive -Path "tmp.zip" -DestinationPath $InstallFolder Remove-Item -Path "tmp.zip" #Start agent without service manager Write-Host "Start agent $($AgentName)" $AgentWorkdir = Join-Path -Path $InstallFolder -ChildPath "agent/bin" -Resolve Start-Process -FilePath "java" -ArgumentList "-Xmx1024M -jar ucxjcitx.jar" -WorkingDirectory $AgentWorkdir
SQL Agent
The following parameters are used for the SQL examples:
$AgentName = "SQL13" $SmgrPort = 8873 $SmgrName = "Automic" $JdbcDrivers = "C:\temp\*jdbc*.jar" $InstallFolder = "C:\temp\test" $RestEndpoint = "https://hostname:8088" $Client = 100 $Cred = Get-Credential
With ServiceManager
# Create HOST object $ProgressPreference = "SilentlyContinue"; $AgentsUrl = $RestEndpoint + "/ae/api/v1/" + $Client + "/system/agents" $Body = @{ "name" = $AgentName "template" = "<SQL>" } $result = Invoke-WebRequest -Method 'Post' -Uri $AgentsUrl -Credential $Cred -Body ($Body|ConvertTo-Json) -ContentType "application/json" if ($result.StatusCode -ne 200) { throw "Failed to create agent object, status code was " + $result.StatusCode } # Download and extract agent package $Body = @{ "platform" = "SQL" "name" = $AgentName "config_update" = "[GLOBAL]`nname=" + $AgentName "service_manager" = @{ "operating_system" = "Windows" "operating_system_architecture" = "x64" "config_update" = "[GLOBAL]`nport=" + $SmgrPort + "`n[Destination " + $SmgrName + "]`ncmdfile=*OWN\uc4.smc`ndeffile=*OWN\uc4.smd" } } $AgentPackUrl = $RestEndpoint + "/ae/api/v1/" + $Client + "/system/agentpacks/" $result = Invoke-WebRequest -Method 'Post' -Uri $AgentPackUrl -Credential $Cred -Body ($Body|ConvertTo-Json) -ContentType "application/json" if ($result.StatusCode -ne 201) { throw "Agent package has not been created, status code was " + $result.StatusCode } $AgentZip = $result.Headers['Location'] Write-Host "Download " + $AgentZip Invoke-WebRequest -Uri $AgentZip -Credential $Cred -OutFile "tmp.zip" Expand-Archive -Path "tmp.zip" -DestinationPath $InstallFolder Remove-Item -Path "tmp.zip" #Copy JDBC drivers to agent directory $AgentJdbc = Join-Path -Path $InstallFolder -ChildPath "agent\bin\jdbc" -Resolve Copy-Item -Path $JdbcDrivers -Destination $AgentJdbc #Install and start service manager $smgrExe = Join-Path -Path $InstallFolder -ChildPath "smgr\bin\ucybsmgr.exe" -Resolve $SmgrWorkdir = Join-Path -Path $InstallFolder -ChildPath "smgr\bin" -Resolve $SmgrArguments = "-install " + $SmgrName Start-Process -FilePath $smgrExe -ArgumentList $SmgrArguments -WorkingDirectory $SmgrWorkdir -Wait -Verb RunAs $ServiceName = "UC4.ServiceManager." + $SmgrName Start-Service -Name $ServiceName
Without ServiceManager
# Create HOST object $ProgressPreference = "SilentlyContinue"; $AgentsUrl = $RestEndpoint + "/ae/api/v1/" + $Client + "/system/agents" $Body = @{ "name" = $AgentName "template" = "<SQL>" } $result = Invoke-WebRequest -Method 'Post' -Uri $AgentsUrl -Credential $Cred -Body ($Body|ConvertTo-Json) -ContentType "application/json" if ($result.StatusCode -ne 200) { throw "Failed to create agent object, status code was " + $result.StatusCode } # Download and extract agent package $Body = @{ "platform" = "SQL" "name" = $AgentName "config_update" = "[GLOBAL]`nname=" + $AgentName } $AgentPackUrl = $RestEndpoint + "/ae/api/v1/" + $Client + "/system/agentpacks/" $result = Invoke-WebRequest -Method 'Post' -Uri $AgentPackUrl -Credential $Cred -Body ($Body|ConvertTo-Json) -ContentType "application/json" if ($result.StatusCode -ne 201) { throw "Agent package has not been created, status code was " + $result.StatusCode } $AgentZip = $result.Headers['Location'] Write-Host "Download " + $AgentZip Invoke-WebRequest -Uri $AgentZip -Credential $Cred -OutFile "tmp.zip" Expand-Archive -Path "tmp.zip" -DestinationPath $InstallFolder Remove-Item -Path "tmp.zip" #Copy JDBC drivers to agent directory $AgentJdbc = Join-Path -Path $InstallFolder -ChildPath "agent/bin/jdbc" -Resolve Copy-Item -Path $JdbcDrivers -Destination $AgentJdbc #Start agent without service manager $AgentWorkdir = Join-Path -Path $InstallFolder -ChildPath "agent/bin" -Resolve Start-Process -FilePath "java" -ArgumentList "-jar ucxjsqlx.jar" -WorkingDirectory $AgentWorkdir
Windows Agent
The following parameters are used for the Windows examples:
$AgentName = "WIN13" $SmgrPort = 8873 $SmgrName = "Automic" $InstallFolder = "C:\temp\testwin" $RestEndpoint = "https://hostname:8088" $Client = 100 $Cred = Get-Credential
With ServiceManager
# Create HOST object $ProgressPreference = "SilentlyContinue"; $AgentsUrl = $RestEndpoint + "/ae/api/v1/" + $Client + "/system/agents" $Body = @{ "name" = $AgentName "template" = "<WIN>" } $result = Invoke-WebRequest -Method 'Post' -Uri $AgentsUrl -Credential $Cred -Body ($Body|ConvertTo-Json) -ContentType "application/json" if ($result.StatusCode -ne 200) { throw "Failed to create agent object, status code was " + $result.StatusCode } # Download and extract agent package $Body = @{ "platform" = "Windows" "name" = $AgentName "operating_system_architecture" = "x64" "config_update" = "[GLOBAL]`nname=" + $AgentName "service_manager" = @{ "operating_system" = "Windows" "operating_system_architecture" = "x64" "config_update" = "[GLOBAL]`nport=" + $SmgrPort + "`n[Destination " + $SmgrName + "]`ncmdfile=*OWN\uc4.smc`ndeffile=*OWN\uc4.smd" } } $AgentPackUrl = $RestEndpoint + "/ae/api/v1/" + $Client + "/system/agentpacks/" $result = Invoke-WebRequest -Method 'Post' -Uri $AgentPackUrl -Credential $Cred -Body ($Body|ConvertTo-Json) -ContentType "application/json" if ($result.StatusCode -ne 201) { throw "Agent package has not been created, status code was " + $result.StatusCode } $AgentZip = $result.Headers['Location'] Write-Host "Download " + $AgentZip Invoke-WebRequest -Uri $AgentZip -Credential $Cred -OutFile "tmp.zip" Expand-Archive -Path "tmp.zip" -DestinationPath $InstallFolder Remove-Item -Path "tmp.zip" #Install and start service manager $smgrExe = Join-Path -Path $InstallFolder -ChildPath "smgr\bin\ucybsmgr.exe" -Resolve $SmgrWorkdir = Join-Path -Path $InstallFolder -ChildPath "smgr\bin" -Resolve $SmgrArguments = "-install " + $SmgrName Start-Process -FilePath $smgrExe -ArgumentList $SmgrArguments -WorkingDirectory $SmgrWorkdir -Wait -Verb RunAs $ServiceName = "UC4.ServiceManager." + $SmgrName Start-Service -Name $ServiceName
Without ServiceManager
# Create HOST object $ProgressPreference = "SilentlyContinue"; $AgentsUrl = $RestEndpoint + "/ae/api/v1/" + $Client + "/system/agents" $Body = @{ "name" = $AgentName "template" = "<WIN>" } $result = Invoke-WebRequest -Method 'Post' -Uri $AgentsUrl -Credential $Cred -Body ($Body|ConvertTo-Json) -ContentType "application/json" if ($result.StatusCode -ne 200) { throw "Failed to create agent object, status code was " + $result.StatusCode } # Download and extract agent package $Body = @{ "platform" = "Windows" "name" = $AgentName "operating_system_architecture" = "x64" "config_update" = "[GLOBAL]`nname=" + $AgentName + "`nlogon=0" } $AgentPackUrl = $RestEndpoint + "/ae/api/v1/" + $Client + "/system/agentpacks/" $result = Invoke-WebRequest -Method 'Post' -Uri $AgentPackUrl -Credential $Cred -Body ($Body|ConvertTo-Json) -ContentType "application/json" if ($result.StatusCode -ne 201) { throw "Agent package has not been created, status code was " + $result.StatusCode } $AgentZip = $result.Headers['Location'] Write-Host "Download " + $AgentZip Invoke-WebRequest -Uri $AgentZip -Credential $Cred -OutFile "tmp.zip" Expand-Archive -Path "tmp.zip" -DestinationPath $InstallFolder Remove-Item -Path "tmp.zip" #Start agent without service manager $AgentWorkdir = Join-Path -Path $InstallFolder -ChildPath "agent/bin" -Resolve Start-Process -FilePath "ucxjwx6.exe" -WorkingDirectory $AgentWorkdir
TLS Gateway
The following parameters are used for the TLS Gateway examples:
$AgentName = "TLS_GATEWAY1" $SmgrPort = 8873 $SmgrName = "Automic" $InstallFolder = "C:\temp\testtlsgtw" $RestEndpoint = "https://hostname:8088" $Client = 100 $Cred = Get-Credential
With ServiceManager
# Create HOST object Write-Host "Create Agent $($AgentName)" $ProgressPreference = "SilentlyContinue"; $AgentsUrl = $RestEndpoint + "/ae/api/v1/" + $Client + "/system/agents" $Body = @{ "name" = $AgentName "template" = "AGENT.TLS-GATEWAY" } $result = Invoke-WebRequest -Method 'Post' -Uri $AgentsUrl -Credential $Cred -Body ($Body|ConvertTo-Json) -ContentType "application/json" if ($result.StatusCode -ne 200) { throw "Failed to create agent object, status code was " + $result.StatusCode } # Download and extract agent package Write-Host "Create Agent package" $Body = @{ "platform" = "TLS_GTW" "name" = $AgentName "config_update" = "[GLOBAL]`nname=" + $AgentName "service_manager" = @{ "operating_system" = "Windows" "operating_system_architecture" = "x64" "config_update" = "[GLOBAL]`nport=" + $SmgrPort + "`n[Destination " + $SmgrName + "]`ncmdfile=*OWN\uc4.smc`ndeffile=*OWN\uc4.smd" } } $AgentPackUrl = $RestEndpoint + "/ae/api/v1/" + $Client + "/system/agentpacks/" $result = Invoke-WebRequest -Method 'Post' -Uri $AgentPackUrl -Credential $Cred -Body ($Body|ConvertTo-Json) -ContentType "application/json" if ($result.StatusCode -ne 201) { throw "Agent package has not been created, status code was " + $result.StatusCode } $AgentZip = $result.Headers['Location'] Write-Host "Download $($AgentZip)" Invoke-WebRequest -Uri $AgentZip -Credential $Cred -OutFile "tmp.zip" Expand-Archive -Path "tmp.zip" -DestinationPath $InstallFolder Remove-Item -Path "tmp.zip" #Install and start service manager Write-Host "Install Service Manager" $smgrExe = Join-Path -Path $InstallFolder -ChildPath "smgr\bin\ucybsmgr.exe" -Resolve $SmgrWorkdir = Join-Path -Path $InstallFolder -ChildPath "smgr\bin" -Resolve $SmgrArguments = "-install " + $SmgrName Start-Process -FilePath $smgrExe -ArgumentList $SmgrArguments -WorkingDirectory $SmgrWorkdir -Wait -Verb RunAs $ServiceName = "UC4.ServiceManager." + $SmgrName Write-Host "Start Service Manager" Start-Service -Name $ServiceName
Without ServiceManager
# Create HOST object Write-Host "Create Agent $($AgentName)" $ProgressPreference = "SilentlyContinue"; $AgentsUrl = $RestEndpoint + "/ae/api/v1/" + $Client + "/system/agents" $Body = @{ "name" = $AgentName "template" = "AGENT.TLS-GATEWAY" } $result = Invoke-WebRequest -Method 'Post' -Uri $AgentsUrl -Credential $Cred -Body ($Body|ConvertTo-Json) -ContentType "application/json" if ($result.StatusCode -ne 200) { throw "Failed to create agent object, status code was " + $result.StatusCode } # Download and extract agent package Write-Host "Create Agent package" $Body = @{ "platform" = "TLS_GTW" "name" = $AgentName "config_update" = "[GLOBAL]`nname=" + $AgentName } $AgentPackUrl = $RestEndpoint + "/ae/api/v1/" + $Client + "/system/agentpacks/" $result = Invoke-WebRequest -Method 'Post' -Uri $AgentPackUrl -Credential $Cred -Body ($Body|ConvertTo-Json) -ContentType "application/json" if ($result.StatusCode -ne 201) { throw "Agent package has not been created, status code was " + $result.StatusCode } $AgentZip = $result.Headers['Location'] Write-Host "Download $($AgentZip)" Invoke-WebRequest -Uri $AgentZip -Credential $Cred -OutFile "tmp.zip" Expand-Archive -Path "tmp.zip" -DestinationPath $InstallFolder Remove-Item -Path "tmp.zip" #Start agent without service manager Write-Host "Start agent $($AgentName)" $AgentWorkdir = Join-Path -Path $InstallFolder -ChildPath "agent/bin" -Resolve Start-Process -FilePath "java" -ArgumentList "-Xmx1024M -jar uctlsgtw.jar" -WorkingDirectory $AgentWorkdir
See also: