Export
Get-VIRole |
Select @{N='vCenter';E={$_.Uid.Split('@:')[1]}},
Name,
@{N='PrivilegeList';E={[string]::Join([char]10,$_.PrivilegeList)}} |
Export-Csv -Path .\roles.csv -NoTypeInformation -UseCulture
Import
Import-Csv -Path .\roles.csv -PipelineVariable row |
ForEach-Object -Process {
$Role = @{
Name = $row.Name
Privilege = $row.PrivilegeList.Split("`n") | ForEach-Object { Get-VIPrivilege -Id $_ }
Server = $row.vCenter
Confirm = $false
WhatIf = $true
}
New-VIRole
}
Note that you will have to exclude the system-defined Roles.
They are created automatically, and a user can not create those