ref: https://code.vmware.com/docs/11794/cmdlet-reference/doc/Get-VIPrivilege.html
ref: https://code.vmware.com/docs/11794/cmdlet-reference/doc/New-VIRole.html
ref: https://code.vmware.com/docs/11794/cmdlet-reference/doc/Set-VIRole.html
$VIRoleName = "View Manager Role" $VIRolePrivileges = @(` # Folder 'Create Folder', 'Delete Folder',` # Datastore 'Allocate space',` # Virtual Machine - Configuration 'Add or remove device', 'Advanced configuration', 'Modify device settings',` # Virtual Machine - Interaction 'Power off', 'Power on', 'Reset', 'Suspend', 'Perform wipe or shrink operations',` # Virtual Machine - Inventory 'Create new', 'Create from existing', 'Remove',` # Virtual Machine - Provisioning 'Customize guest', 'Deploy template', 'Read customization specifications', 'Clone template', 'Clone Virtual Machine',` # Resource 'Assign virtual machine to resource pool',` # Global 'Act as vCenter Server',` # Host 'Advanced settings',` # Profile-driven Storage 'Profile-driven storage view', 'Profile-driven storage update' ) try { # Get list of current Roles $VIRoles = Get-VIRole # Check if Role exists foreach($VIRole in $VIRoles) { if ($VIRole.Name -like $VIRoleName) { # Role exists exit } } # Assume the Role does not exist # Create the new Role New-VIRole -Name $VIRoleName # Add the Privileges to the Role foreach($VIRolePrivilege in $VIRolePrivileges) { Set-VIRole -Role $VIRoleName -AddPrivilege $VIRolePrivilege } } catch { }
Copy and paste the contents above to a new PowerShell file. This script will check if the given Role exists and exit or it will create the Role and add the Privileges. This script will not check the current assigned Privileges if the Role exists.
Leave a Reply