Backup vCenter Server Roles details

Backup vCenter Server Roles details

The below script will export the details of existing vCenter Server Roles details.

Copy the below piece of code and paste it onto a text file and save it as .PS1 file. Then run it in PowerCLI:

#requires -Version 3   
[CmdletBinding(SupportsShouldProcess)]  
  Param(  
   [Parameter(Mandatory=$true, Position=1,  
    ValueFromPipeline=$true)]  
   [AllowNull()]  
   [alias("LiteralPath")]  
   [string]$Path = "c:\temp"   
  ) #Param  
Begin { 
   $DefaultRoles = "NoAccess", "Anonymous", "View", "ReadOnly", "Admin", "VirtualMachinePowerUser", "VirtualMachineUser", "ResourcePoolAdministrator", "VMwareConsolidatedBackupUser", "DatastoreConsumer", "NetworkConsumer" 
   $DefaultRolescount = $defaultRoles.Count 
   $CustomRoles = @() 
} #Begin 
  
Process { 
   $AllVIRoles = Get-VIRole 
  
   0..($DefaultRolescount) | ForEach-Object { 
     if ($(Get-Variable "role$_" -ErrorAction SilentlyContinue)) { 
       Remove-Variable "role$_" -Force -Confirm:$false 
     } #if ($(Get-Variable "role$_" -ErrorAction SilentlyContinue)) 
   } #0..($DefaultRolescount) | Foreach-Object 
  
   0..$DefaultRolescount | ForEach-Object { 
     $DefaultRolesnumber = $DefaultRoles[$_] 
     if ($_ -eq 0) { 
       New-Variable "role$_" -Option AllScope -Value ($AllVIRoles | Where-Object {$_.Name -ne $DefaultRolesnumber}) 
     } #if ($_ -eq 0) 
     else { 
       $vartxt = $_ - 1 
       $lastrole = 'role'+"$vartxt" 
       #Get-Variable $lastrole 
       New-Variable "role$_" -Option AllScope -Value (Get-Variable "$lastrole" | select -ExpandProperty value | Where-Object {$_.Name -ne $DefaultRolesnumber}) 
     } #else ($_ -eq 0) 
   } #0..$DefaultRolescount | ForEach-Object 
   $filteredRoles = Get-Variable "role$($DefaultRolescount-1)" | select -ExpandProperty value 
} #Process 
End { 
   $filteredRoles | ForEach-Object { 
     $completePath = Join-Path -Path $Path -ChildPath "$_.role" 
     Write-Host "Exporting Role `"$($_.Name)`" to `"$completePath`"" -ForegroundColor Yellow 
     $_ | Get-VIPrivilege | select-object -ExpandProperty Id | Out-File -FilePath $completePath 
   } #$filteredRoles | ForEach-Object 
} #End   #To Export Permissions:Get-VIPermission | export-csv c:\temp\rights.csv

Version history
Revision #:
1 of 1
Last update:
‎11-07-2018 05:22 PM
Updated by: