Set-SCUserRole

Modifies the settings for an existing VMM user role.

Syntax

Set-SCUserRole
   [-UserRole <UserRole>]
   [-VMMServer <ServerConnection>]
   [-Name <String>]
   [-JobGroup <Guid>]
   [-AddMember <String[]>]
   [-RemoveMember <String[]>]
   [-Permission <SelfServicePermission[]>]
   [-UserRoleDataPath <String>]
   [-RemoveLibraryStoreSharePath]
   [-ShowPROTips <Boolean>]
   [-AddScope <ClientObject[]>]
   [-RemoveScope <ClientObject[]>]
   [-Description <String>]
   [-VMNetworkMaximum <UInt16>]
   [-VMNetworkMaximumPerUser <UInt16>]
   [-RemoveVMNetworkMaximum]
   [-RemoveVMNetworkMaximumPerUser]
   [-VPNConnectionMaximum <UInt16>]
   [-VPNConnectionMaximumPerUser <UInt16>]
   [-RemoveVPNConnectionMaximum]
   [-RemoveVPNConnectionMaximumPerUser]
   [-NATConnectionMaximum <UInt16>]
   [-NATConnectionMaximumPerUser <UInt16>]
   [-RemoveNATConnectionMaximum]
   [-RemoveNATConnectionMaximumPerUser]
   [-VMNetworkVPNMaximumBandwidthInKbps <UInt64>]
   [-VMNetworkVPNMaximumBandwidthOutKbps <UInt64>]
   [-RemoveVMNetworkVPNMaximumBandwidthIn]
   [-RemoveVMNetworkVPNMaximumBandwidthOut]
   [-RunAsynchronously]
   [-PROTipID <Guid>]
   [-JobVariable <String>]
   [-OnBehalfOfUser <String>]
   [-OnBehalfOfUserRole <UserRole>]
   [<CommonParameters>]

Description

The Set-SCUserRole cmdlet modifies the settings for an existing Virtual Machine Manager (VMM) user role. The settings that you can modify depend on the type of VMM user role.

The types of user roles are as follows:

VMM Administrator (Administrator)

You can add members to or remove members from the Administrator user role. You cannot limit the scope of objects that members of this role can manage.

Delegated Administrator (DelegatedAdmin)

You can add members to and remove members from a Delegated Administrator user role. You can expand or restrict the scope of a Delegated Administrator user role. You can grant members of this user role permission to manage all of the objects in private clouds and host groups. You can allow users to manage all of the objects stored on library servers. Within that framework, you cannot limit the actions that members of the Delegated Administrator user role can perform.

Read-Only Administrator (ReadOnlyAdmin)

You can add members to and remove members from a Read-Only Administrator user role. You can expand or restrict the scope of a Read-Only Administrator user role. However, the members of the user role can only view the properties, status, and job status of the objects within their assigned scope. They cannot modify any of the objects.

Self-Service User (SelfServiceUser)

You can add members to or remove members from a Self-Service user role. You can expand or limit the scope and actions of members of a Self-Service user role. You can grant members of a Self-Service user role permission to manage all of the objects in private clouds. You can grant permission to create virtual machines, permission to store virtual machines in the stored virtual machine path in the cloud that the virtual machine is on, and permission to use template objects to create virtual machines. Within that framework, you can grant members of a Self-Service user role actions that self-service users can take. You can also limit the number of virtual machines that self-service users can create by setting a quota that applies to each user or to all users collectively.

The actions that you can grant a self-service user include the following:

  • AllowLocalAdmin. Grants user local administrator rights on virtual machines.
  • Author. Author virtual machine and service templates.
  • CanShare. Share resources with other Self-Service users.
  • CanReceive. Receive resources from other Self-Service users.
  • Checkpoint. Create and manage virtual machine checkpoints.
  • CheckpointRestoreOnly. Can only restore a checkpoint.
  • Create. Create virtual machines and services from templates only.
  • CreateFromVHDOrTemplate. Create virtual machines and services from virtual hard disk (VHD) files or templates.
  • PauseAndResume. Pause and resume virtual machines and services.
  • RemoteConnect. Remotely connect to virtual machines.
  • Remove. Remove virtual machines and services.
  • Save. Save virtual machines and services.
  • Shutdown. Shut down virtual machines.
  • Start. Start virtual machines and services.
  • Stop. Stop virtual machines and services.
  • Store. Store virtual machines in a library.

Examples

Example 1: Add users to the VMM Administrator user role

PS C:\> $UserRole = Get-SCUserRole -Name "Administrator"
PS C:\> Set-SCUserRole -UserRole $UserRole -AddMember "Contoso\User01","Contoso\User02"

The first command gets the user role object named Administrator, and then stores that object in the $UserRole variable.

The second command adds User01 and User02 to the Administrator user role. Both users are members of the Contoso.com domain.

Example 2: Add users to the Administrator role by using the pipeline

PS C:\> Get-SCUserRole -VMMServer "VMMServer01.Contoso.com" | where { $_.Profile -eq "Administrator" } | Set-SCUserRole -AddMember "Contoso\User03"

This command gets all user role objects from VMMServer01, selects the user role objects whose profile is Administrator, and then adds User03 to the Administrator user role.

Example 3: Modify an existing Self-Service user role by adding a cloud to its scope

PS C:\> $Cloud = Get-SCCloud -Name "Cloud02"
PS C:\> $UserRole = Get-SCUserRole -Name "ContosoSelfServiceUsers"
PS C:\> Set-SCUserRole -UserRole $UserRole -AddScope $Cloud

The first command gets the cloud object named Cloud02, and then stores that object in the $Cloud variable.

The second command gets the user role object named ContosoSelfServiceUsers, and then stores the object in the $UserRole profile.

The last command modifies the scope of the user role stored in $UserRole by adding the cloud stored in $Cloud to its scope.

Example 4: Remove the specified user from the Administrator user role

PS C:\> $UserRole = Get-SCUserRole -Name "Administrator"
PS C:\> Set-SCUserRole -UserRole $UserRole -RemoveMember "Contoso\User01"

The first command gets the user role object named Administrator, and then stores that object in the $UserRole variable.

The second command removes User01 from the Administrator user role. User01 is a member of the Contoso.com domain.

Example 5: Add a cloud to the scope of a Self-Service user role

PS C:\> $Cloud = Get-SCCloud -Name "Cloud03"
PS C:\> Get-SCUserRole -Name "ContosoSelfServiceUsers" | Set-SCUserRole -AddScope $Cloud

The first command gets the cloud object named Cloud03, and then stores that object in the $Cloud variable.

The second command gets the user role object named ContosoSelfServiceUsers, and then passes that user role object to the current cmdlet. This cmdlet adds the cloud stored in $Cloud to the user role.

Example 6: Modify what actions members of a Self-Service user role can take on their virtual machines

PS C:\> $UserRole = Get-SCUserRole -VMMServer "VMMServer01.Contoso.com" -Name "ContosoSelfServiceUsers"
PS C:\> Set-SCUserRole -UserRole $UserRole -Permission "Create,PauseAndResume,Stop,AllowLocalAdmin,Store"

The first command gets the user role object on VMMServer01 named ContosoSelfServiceUsers, and then stores the object in the $UserRole variable.

The second command modifies the permissions for members of the user role stored in $UserRole to allow Creation, PauseAndResume, Stop, AllowLocalAdmin, and Store permissions.

Parameters

-AddMember

Specifies an array of members that this cmdlet adds to an object that has the concept of members, such as a group. For example, this cmdlet can add one or more Active Directory® Domain Services domain users or groups to a user role. Specify members in the following formats:

  • Domain\User
  • User
  • User@Domain
  • Domain\LabGroupAlias
  • LabGroupAlias

The lab group alias is an Active Directory Domain Services security group, not an e-mail alias.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AddScope

Specifies an array of scopes that this cmdlet adds to the scope of objects that members of this user role can manage.

Type:ClientObject[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Description

Specifies a description for the user role.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-JobGroup

Specifies an identifier for a series of commands that runs as a set just before the final command that includes the same job group identifier runs.

Type:Guid
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-JobVariable

Specifies a variable in which job progress is tracked and stored.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

Specifies a new name for the user role.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NATConnectionMaximum

Type:UInt16
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NATConnectionMaximumPerUser

Type:UInt16
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OnBehalfOfUser

Specifies a user name. This cmdlet operates on behalf of the user that this parameter specifies.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OnBehalfOfUserRole

Specifies a user role. To obtain a user role, use the Get-SCUserRole cmdlet. This cmdlet operates on behalf of the user role that this parameter specifies.

Type:UserRole
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Permission

Specifies an array of actions that members of a Self-Service user role can perform on their virtual machines or services. Valid values are:

  • AllowLocalAdmin
  • Author
  • CanShare
  • CanReceive
  • Checkpoint
  • CheckpointRestoreOnly
  • Create
  • CreateFromVHDOrTemplate
  • PauseAndResume
  • RemoteConnect
  • Remove
  • Save
  • Shutdown
  • Start
  • Stop
  • Store

If you grant the CreateFromVHDOrTemplate permission, you also grant the Create permission. If you grant the Checkpoint permission, you also grant CheckpointRestoreOnly permission.

Type:SelfServicePermission[]
Aliases:VMPermission
Accepted values:Create, PauseAndResume, Start, Stop, AllowLocalAdmin, RemoteConnect, Remove, Shutdown, Checkpoint, Store, Save, Author, CanShare, CanReceive, CreateFromVHDOrTemplate, CheckpointRestoreOnly, AuthorVMNetwork, CreateShielded
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PROTipID

Specifies the ID of the Performance and Resource Optimization tip (PRO tip) that triggered this action. This parameter lets you audit PRO tips.

Type:Guid
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RemoveLibraryStoreSharePath

Indicates that this cmdlet clears the user role data path for a self-service user.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RemoveMember

Specifies an array of members that this cmdlet removes from a VMM object that has the concept of membership, such as a group. For example, this cmdlet can removes one or more Active Directory Domain Services domain users or groups from a user role. Specify members in the following formats:

  • Domain\User
  • User
  • User@Domain
  • Domain\LabGroupAlias
  • LabGroupAlias

The lab group alias is an Active Directory Domain Services security group, not an e-mail alias.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RemoveNATConnectionMaximum

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RemoveNATConnectionMaximumPerUser

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RemoveScope

Specifies an array of VMM objects to remove from the scope of objects that members of this user role can manage.

Type:ClientObject[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RemoveVMNetworkMaximum

Indicates that this cmdlet removes the virtual machine network maximum setting.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RemoveVMNetworkMaximumPerUser

Indicates that this cmdlet removes the virtual machine network maximum per user setting.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RemoveVMNetworkVPNMaximumBandwidthIn

Indicates that this cmdlet removes the virtual private network (VPN) maximum bandwidth setting for incoming connections.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RemoveVMNetworkVPNMaximumBandwidthOut

Indicates that this cmdlet removes the VPN maximum bandwidth setting for outgoing connections.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RemoveVPNConnectionMaximum

Indicates that this cmdlet removes the VPN connection maximum setting.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RemoveVPNConnectionMaximumPerUser

Indicates that this cmdlet removes the VPN connection maximum per user setting.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RunAsynchronously

Indicates that the job runs asynchronously so that control returns to the command shell immediately.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ShowPROTips

Indicates whether to show PRO tips. This parameter only applies to Self-Service user roles.

Type:Boolean
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UserRole

Specifies a user role object that this cmdlet modifies. To obtain a user role, use the Get-SCUserRole cmdlet.

Type:UserRole
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-UserRoleDataPath

Specifies the path of a library share that members of a Self-Service user role can use to upload data. Specify the path in this format: \LibraryServerName\LibraryShareName.

Type:String
Aliases:LibraryStoreSharePath
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VMMServer

Specifies the VMM server on which this cmdlet modifies a user role.

Type:ServerConnection
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VMNetworkMaximum

Specifies the maximum number of virtual machine networks for a user role.

Type:UInt16
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VMNetworkMaximumPerUser

Specifies the maximum number of virtual machine networks for a user.

Type:UInt16
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VMNetworkVPNMaximumBandwidthInKbps

Specifies the maximum bandwidth, kilobits per second, for incoming traffic for a VPN.

Type:UInt64
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VMNetworkVPNMaximumBandwidthOutKbps

Specifies the maximum bandwidth, kilobits per second, for outgoing traffic for a VPN.

Type:UInt64
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VPNConnectionMaximum

Specifies the maximum number of connections for a VPN.

Type:UInt16
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VPNConnectionMaximumPerUser

Specifies the maximum number of connections per user for a VPN.

Type:UInt16
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Outputs

UserRole

Notes

  • To list all available permissions that you can specify for self-service users, type the following command:

PS C:\> [enum]::GetValues([Microsoft.VirtualManager.Remoting.SelfServicePermission])