VMware vCenter Server поставляется с рядом системных и пользовательских ролей, которые можно использовать, а также пользователи могут создавать собственные роли с необходимыми привилегиями. Если вам нужно понять, какие роли активно используются, следующий фрагмент кода PowerCLI, который сделал Дункан Эппинг, поможет получить информацию о назначенных ролях. Кроме того, скрипт также создаст файл, содержащий все привилегии, определенные для активно используемых ролей vCenter.
$roles = Get-VIRole
$permissions = Get-VIPermission
$results = @{}
foreach ($permission in $permissions) {
$role = $permission.Role
if($results.ContainsKey($role)) {
$results[$role]+=1
} else {
$results[$role]=1
}
}
Write-Host "`nTotal Roles: $($roles.count)"
Write-Host "Total Roles Used: $($results.count)"
Write-Host "Role Usage:"
$results.GetEnumerator() | Sort-Object -Property Value -Descending
$outfile = "used-roles.txt"
foreach ($key in $results.keys) {
$role = Get-VIRole $key
if(!$role.IsSystem) {
$key | Out-File -Append -LiteralPath $outfile
"=========================================================" | Out-File -Append -FilePath $outfile
$role.ExtensionData.Privilege | Out-File -Append -LiteralPath $outfile
"" | Out-File -Append -LiteralPath $outfile
}
}
Вот пример выполнения сценария:
А вот пример вывода из файла used-roles.txt, который генерируется и содержит список привилегий для каждой используемой роли:



