Grant-SCResource

Grants a user or self-service user role access to a resource.

Syntax

Grant-SCResource
     [-VMMServer <ServerConnection>]
     -Resource <ClientObject>
     [-UserRoleName <String[]>]
     [-UserRoleID <Guid[]>]
     [-UserName <String>]
     [-JobGroup <Guid>]
     [-RunAsynchronously]
     [-PROTipID <Guid>]
     [-JobVariable <String>]
     [-OnBehalfOfUser <String>]
     [-OnBehalfOfUserRole <UserRole>]
     [<CommonParameters>]

Description

The Grant-SCResource cmdlet grants a user or self-service user role access to a resource.

Types of resources that you can share using Grant-SCResource include the following:

  • Service templates

  • Virtual machine templates

  • Guest operating system profiles

  • SQL Server profiles

  • Hardware profiles

  • Application profiles

  • Services

  • Virtual machines

Examples

Example 1: Share a resource with a specific user

PS C:\> $Resource = Get-SCVMTemplate | where {$_.Name -eq "Template01"}
PS C:\> Grant-SCResource -Resource $Resource -Username "Contoso\Katarina"

The first command gets the template object named Template01 and stores the object in the $Resource variable.

The second command shares the resource stored in $Resource (Template01) with the user named Katarina. If the user is a member of multiple self-service user roles with receive permission, then a user role must be specified.

Example 2: Share a resource with a user who is a member of multiple user roles

PS C:\> $Resource = Get-SCVMTemplate | where {$_.Name -eq "Template01"}
PS C:\> Grant-SCResource -Resource $Resource -Username "Contoso\Katarina" -UserRoleName @("ContosoSelfServiceUsers", "SelfServiceUserRole02")

The first command gets the template object named Template01 and stores the object in the $Resource variable.

The second command shares the resource stored in $Resource (Template01) with the user named Katarina but only while that user is using the ContosoSelfServiceUsers or SelfServiceUserRole02 user roles.

Example 3: Share a resource with all members of a user role

PS C:\> $Resource = Get-SCVMTemplate | where {$_.Name -eq "VMTemplate01"}
PS C:\> Grant-SCResource -Resource $Resource -UserRoleName "ContosoSelfServiceUsers"

The first command gets the template object named VMTemplate01 and stores the object in the $Resource variable.

The second command shares the resource stored in $Resource (VMTemplate01) with the members of the user role named ContosoSelfServiceUsers.

Example 4: Share a resource with all members of a user role by using the user role ID

PS C:\> $Resource = Get-SCVMTemplate | where {$_.Name -eq "VMTemplate01"}
PS C:\> $UserRole = Get-SCUserRole -Name "ContosoSelfServiceUsers"
PS C:\> Grant-SCResource -Resource $Resource -UserRoleId $UserRole.Id

The first command gets the template object named VMTemplate01 and stores the object in the $Resource variable.

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

The last command shares the resource stored in $Resource (VMTemplate01) with the members of user role ContosoSelfServiceUsers.

Required Parameters

-Resource

Specifies a resource object.

Type:ClientObject
Position:Named
Default value:None
Accept pipeline input:True (ByValue)
Accept wildcard characters:False

Optional Parameters

-JobGroup

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

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

Specifies that job progress is tracked and stored in the variable named by this parameter.

Type:String
Position:Named
Default value:None
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
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
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
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
Accept pipeline input:False
Accept wildcard characters:False
-UserName

Specifies a the name of a user. Enter a user name with the format Domain\User.

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

Specifies the ID of a user role.

Type:Guid[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-UserRoleName

Specifies the name of a user role. Types of user roles that are named include Delegated Administrator, Read-Only Administrator, and Self-Service User.

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

Specifies a VMM server object.

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

Outputs

Resource

This cmdlet returns a Resource object.