We have been using VMware Unified Access Gateway (UAG) for quite a few years. To monitor the appliance using vROPS or other monitoring tools or API calls scripts you need a read-only monitoring account created in the console under “Account Settings”.

In our deployment we have 14 UAG appliances (Internal/External) – Yes we tunnel internal connections too. Post the upgrade we had to re-create the read-only account for the API call monitoring on all 14 appliances. The following script I wrote to create the read-only account per UAG server. Just change the IP and point to another UAG to create accounts.
#################################################################### # Create ready-only account in the VMware Unified Access Gateway Appliance # for monitoring purposes using vROPS or API etc. # Author - Aresh Sarkari (@askaresh) # Version - V5.0 #################################################################### # Ignore UAG cert errors (self signed or add-type @" using System.Net; using System.Security.Cryptography.X509Certificates; public class TrustAllCertsPolicy : ICertificatePolicy { public bool CheckValidationResult( ServicePoint srvPoint, X509Certificate certificate, WebRequest request, int certificateProblem) { return true; } } "@ [System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]'Ssl3,Tls,Tls11,Tls12' ##API Call to make the intial connection to the UAG Appliance## $Uri = "https://10.0.0.1:9443/rest/v1/config/adminusers/logAdminUserAction/LOGIN" $Username = "admin" $Password = "adminpassword" $Headers = @{ Authorization = "Basic {0}" -f [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $Username,$Password))) } Invoke-RestMethod -SessionVariable DaLogin -Uri $Uri -Headers $Headers ###API Call to create the user account with read-only access under VMware Unified Access Gateway## $body = @{ name = "UAG_vRops" password= "typeyourpassword" enabled=$true roles = @("ROLE_MONITORING") noOfDaysRemainingForPwdExpiry=0 } | ConvertTo-Json $output = Invoke-RestMethod -WebSession $DaLogin -Method Put -Uri "https://10.0.0.1:9443/rest/v1/config/adminusers" -Body $body -ContentType "application/json" Write-Output $output
GitHub – https://github.com/askaresh/scripts/blob/master/uagreadonlyacct
I hope you will find this script useful to create the UAG read only accounts and would not have to create them manually on multiple appliances. My request if you further enhance the script or make it more creative, I hope you can share it back with me?
Thanks,
Aresh Sarkari
Recent Comments