Using Job Groups in VMM Scripts

 

Updated: May 13, 2016

Applies To: System Center 2012 R2 Virtual Machine Manager, System Center 2012 - Virtual Machine Manager

The JobGroup parameter uses an identifier to group a series of commands into a single job group that will run as a set just before the final command that includes the same job group identifier runs.

Using the JobGroup parameter

The JobGroup parameter requires a GUID, which you must obtain before setting the value for the JobGroup. The following command demonstrates how to generate a globally unique identifier (GUID) and store it in the $JobGroupID variable:

$JobGroupID = [Guid]::NewGuid
().ToString
()  

To include subsequent commands in the job group, set the JobGroup parameter for that command to the same value. For example, all commands that include -JobGroup $JobGroupID will not run until just before the final command that also includes -JobGroup $JobGroupID.

The following example demonstrates how to use JobGroup in a script. The New-SCVirtualDiskDrive cmdlet in the third line queues the work to be done by New-SCVirtualDiskDrive, but does not run until just prior to the New-SCVirtualMachine cmdlet. New-SCVirtualMachine is the last command that includes JobGroup and initiates work, bundling in any previously queued work. In this case, that means running New-SCVirtualDiskDrive and then New-SCVirtualMachine.

  
# Generate a GUID for the JobGroupID variable.  
$JobGroupID = [Guid]::NewGuid().ToString()  
  
$VHD = Get-SCVirtualHardDisk -VMMServer "VMMServer01.Contoso.com" | where {$_.Location -eq "\\LibServer01.Contoso.com\MSSCVMMLibrary\VHDs\Blank Disk - Large.vhd"}  
  
# This is the first cmdlet that uses the JobGroup variable.  
New-SCVirtualDiskDrive -IDE -Bus 0 -LUN 1 -JobGroup $JobGroupID -VirtualHardDisk $VHD  
  
$HWProfile = Get-SCHardwareProfile | where {$_.Name -match "NewHWProfile01"}  
$VMHost = Get-SCVMHost -ComputerName "VMHost03"  
  
# This is the last cmdlet that uses the JobGroup variable, which indicates that  
# New-SCVirtualDiskDrive should run just prior to the following command.  
New-SCVirtualMachine -Name "VM10" -Description "New Virtual Machine VM10" -JobGroup $JobGroupID -VMMServer "VMMServer01.Contoso.com" -Owner "Contoso\Katarina" -VMHost $VMHost -Path "D:\VirtualMachinePath" -HardwareProfile $HWProfile -RunAsynchronously -StartAction NeverAutoTurnOnVM -StopAction SaveVM  
  

Cmdlets with which you can use JobGroup

You can use the JobGroup parameter with the following cmdlets:

  • Add-SCLibraryServer

  • Add-SCLibraryShare

  • Add-SCVMHostNetworkAdapter

  • Compress-SCVirtualDiskDrive

  • Convert-SCVirtualDiskDrive

  • Copy-SCStorageVolume

  • Disable-SCRunAsAccount

  • Enable-SCRunAsAccount

  • Expand-SCVirtualDiskDrive

  • Get-SCVMHostRating

  • Grant-SCResource

  • Install-SCVMHostCluster

  • Mount-SCStorageDisk

  • Move-SCVirtualHardDisk

  • Move-SCVirtualMachine

  • Move-SCVMHostGroup

  • New-SCCloud

  • New-SCHardwareProfile

  • New-SCP2V

  • New-SCRunAsAccount

  • New-SCUserRole

  • New-SCV2V

  • New-SCVirtualDiskDrive

  • New-SCVirtualDVDDrive

  • New-SCVirtualMachine

  • New-SCVirtualNetwork

  • New-SCVirtualNetworkAdapter

  • New-SCVirtualScsiAdapter

  • New-SCVMTemplate

  • Register-SCStorageLogicalUnit

  • Register-SCVirtualMachine

  • Remove-SCCloud

  • Remove-SCCustomPropertyValue

  • Remove-SCUserRole

  • Remove-SCVirtualDiskDrive

  • Remove-SCVirtualDVDDrive

  • Remove-SCVirtualHardDisk

  • Remove-SCVirtualNetwork

  • Remove-SCVirtualNetworkAdapter

  • Remove-SCVirtualScsiAdapter

  • Remove-SCVMCheckpoint

  • Remove-SCVMHostNetworkAdapter

  • Revoke-SCResource

  • Set-SCApplication

  • Set-SCApplicationSetting

  • Set-SCBaseline

  • Set-SCCloud

  • Set-SCCloudCapacity

  • Set-SCCustomPropertyValue

  • Set-SCHardwareProfile

  • Set-SCLibraryServer

  • Set-SCRunAsAccount

  • Set-SCUserRole

  • Set-SCUserRoleQuota

  • Set-SCVirtualCOMPort

  • Set-SCVirtualDiskDrive

  • Set-SCVirtualDVDDrive

  • Set-SCVirtualFloppyDrive

  • Set-SCVirtualHardDisk

  • Set-SCVirtualMachine

  • Set-SCVirtualNetwork

  • Set-SCVirtualNetworkAdapter

  • Set-SCVirtualScsiAdapter

  • Set-SCVMHost

  • Set-SCVMHostCluster

  • Set-SCVMHostGroup

  • Set-SCVMHostNetworkAdapter

  • Set-SCVMTemplate

  • Start-SCUpdateRemediation

  • Unregister-SCStorageLogicalUnit

See Also

VMM Cmdlet Help Topics