# Get-ProxmoxVM Gets virtual machines from Proxmox VE. ## Syntax ```powershell Get-ProxmoxVM [-Connection ] [-Node ] [-VMID ] [-Name ] [-UseRegex] [-RawJson] [] ``` ## Description The `Get-ProxmoxVM` cmdlet retrieves virtual machines from Proxmox VE. You can retrieve all VMs, VMs on a specific node, or a specific VM by ID. ## Parameters ### -Connection The connection to the Proxmox VE server. ```yaml Type: ProxmoxConnection Parameter Sets: (All) Aliases: Required: False Position: 0 Default value: None Accept pipeline input: False Accept wildcard characters: False ``` ### -Node The node to get VMs from. If not specified, VMs from all nodes will be returned. ```yaml Type: String Parameter Sets: (All) Aliases: Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` ### -VMID The ID of the VM to get. If not specified, all VMs will be returned. ```yaml Type: Int32 Parameter Sets: (All) Aliases: Required: False Position: Named Default value: None Accept pipeline input: False Accept wildcard characters: False ``` ### -Name The name of the virtual machine to retrieve. Supports wildcards and regex when used with -UseRegex. ```yaml Type: String Parameter Sets: (All) Aliases: Required: False Position: 2 Default value: None Accept pipeline input: False Accept wildcard characters: True ``` ### -UseRegex Use regular expressions for filtering. ```yaml Type: SwitchParameter Parameter Sets: (All) Aliases: Required: False Position: Named Default value: False Accept pipeline input: False Accept wildcard characters: False ``` ### -RawJson Whether to return the raw JSON response instead of parsed objects. ```yaml Type: SwitchParameter Parameter Sets: (All) Aliases: Required: False Position: Named Default value: False Accept pipeline input: False Accept wildcard characters: False ``` ### CommonParameters This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). ## Inputs ### None ## Outputs ### PSProxmox.Models.ProxmoxVM ### System.String ## Notes - This cmdlet requires a connection to a Proxmox VE server. Use `Connect-ProxmoxServer` to establish a connection. - If no connection is specified, the cmdlet will use the default connection. - If the `-RawJson` parameter is specified, the raw JSON response will be returned instead of parsed objects. - If the `-VMID` parameter is specified and the VM is not found, an error will be thrown. - The `-Name` parameter supports wildcards (e.g., "web*") by default. - Use the `-UseRegex` parameter with `-Name` to filter using regular expressions (e.g., "^web[0-9]+$"). ## Examples ### Example 1: Get all VMs ```powershell Connect-ProxmoxServer -Server "proxmox.example.com" -Credential (Get-Credential) $vms = Get-ProxmoxVM ``` This example gets all VMs from all nodes. ### Example 2: Get VMs on a specific node ```powershell Connect-ProxmoxServer -Server "proxmox.example.com" -Credential (Get-Credential) $vms = Get-ProxmoxVM -Node "pve1" ``` This example gets all VMs on the node "pve1". ### Example 3: Get a specific VM by ID ```powershell Connect-ProxmoxServer -Server "proxmox.example.com" -Credential (Get-Credential) $vm = Get-ProxmoxVM -VMID 100 ``` This example gets the VM with ID 100. ### Example 4: Get VMs by name using wildcards ```powershell Connect-ProxmoxServer -Server "proxmox.example.com" -Credential (Get-Credential) $vms = Get-ProxmoxVM -Name "web*" ``` This example gets all VMs with names starting with "web". ### Example 5: Get VMs by name using regex ```powershell Connect-ProxmoxServer -Server "proxmox.example.com" -Credential (Get-Credential) $vms = Get-ProxmoxVM -Name "^web[0-9]+$" -UseRegex ``` This example gets all VMs with names matching the pattern "web" followed by one or more digits. ### Example 6: Get the raw JSON response ```powershell Connect-ProxmoxServer -Server "proxmox.example.com" -Credential (Get-Credential) $json = Get-ProxmoxVM -RawJson ``` This example gets the raw JSON response for all VMs. ## Related Links - [Connect-ProxmoxServer](Connect-ProxmoxServer.md) - [New-ProxmoxVM](New-ProxmoxVM.md) - [Remove-ProxmoxVM](Remove-ProxmoxVM.md) - [Start-ProxmoxVM](Start-ProxmoxVM.md) - [Stop-ProxmoxVM](Stop-ProxmoxVM.md) - [Restart-ProxmoxVM](Restart-ProxmoxVM.md)