Add-VMAssignableDevice
Adds an assignable device to a specific virtual machine.
Syntax
Add-VMAssignableDevice
[-CimSession <CimSession[]>]
[-ComputerName <String[]>]
[-Credential <PSCredential[]>]
[-VMName] <String[]>
[-InstancePath <String>]
[-LocationPath <String>]
[-VirtualFunction <UInt16>]
[-ResourcePoolName <String>]
[-Passthru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Add-VMAssignableDevice
[-VM] <VirtualMachine[]>
[-InstancePath <String>]
[-LocationPath <String>]
[-VirtualFunction <UInt16>]
[-ResourcePoolName <String>]
[-Passthru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
The Add-VMAssignableDevice
cmdlet assigns a physical device to a specified virtual machine (VM).
This is commonly used for tasks such as attaching GPUs or network adapters directly to a VM to
enhance performance for specific applications or workloads. The device can be specified through its
instance path, location path, or assignable device object.
Examples
Example 1
Add-VMAssignableDevice -VMName "MyVM" -InstancePath "PCIROOT(0)#PCI(0300)#PCI(0000)"
This example attaches a physical device, identified by its instance path, to the virtual machine named MyVM.
Parameters
-CimSession
Runs the cmdlet in a remote session or on a remote computer. Enter a computer name or a session object, such as the output of a New-CimSession or Get-CimSession cmdlet. The default is the current session on the local computer.
Type: | CimSession[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ComputerName
Specifies one or more Hyper-V hosts on which the assignable devices are to be retrieved. NetBIOS
names, IP addresses, and fully qualified domain names are allowed. The default is the local
computer. Use localhost or a dot (.
) to specify the local computer explicitly.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Prompts you for confirmation before running the cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Specifies one or more user accounts that have permission to perform this action. The default is the current user.
Type: | PSCredential[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InstancePath
Represents the Device Instance path in the host machine.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-LocationPath
Specifies the location path to the assignable device
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Passthru
Returns an object for each process that the cmdlet started.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ResourcePoolName
Specifies the name of the resource pool to which the device is to be assigned.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VirtualFunction
Specifies the number of the virtual function (VF) of an SR-IOV-capable network adapter assigned to the virtual machine.
Type: | UInt16 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VM
Specifies the virtual machine to which the device is to be assigned.
Type: | VirtualMachine[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-VMName
Specifies the name of the virtual machine to which the device is to be assigned.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Inputs
Microsoft.HyperV.PowerShell.VirtualMachine[]
Outputs
Microsoft.HyperV.PowerShell.VMAssignedDevice