PowerShell for Linux: Managing Hyper-V from Non-Windows Systems
Table of Contents
Introduction
PowerShell has evolved significantly since its inception, growing from a Windows-centric scripting language to a powerful cross-platform automation tool. With the advent of PowerShell Core, users can now manage Hyper-V virtual machines (VMs) from Linux systems, breaking down the barriers between Windows and Linux environments. This article explores how to leverage PowerShell for Linux to control Hyper-V, detailing the setup, essential commands, and scripts for efficient VM management.
Setting Up PowerShell on Linux
Before diving into managing Hyper-V from a Linux system, you must install PowerShell Core. Here’s a quick setup guide:
1. Update your package list to ensure you get the latest version of PowerShell:
sudo apt-get update
2. Install the prerequisites:
sudo apt-get install -y wget apt-transport-https software-properties-common
3. Download and add Microsoft's repository GPG key:
wget -q https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
4. Install PowerShell:
sudo apt-get update
sudo apt-get install -y powershell
5. Launch PowerShell:
pwsh
Managing Hyper-V VMs from Linux
Once PowerShell is installed on your Linux system, you can begin managing Hyper-V VMs. The following sections detail essential commands and scripts for common VM management tasks.
Checking VM Status
To check the status of a VM, use the Get-VM
command. If you’re running this from a Linux system, ensure you’ve established a remote session to your Hyper-V host:
Get-VM -Name "VMName"
Starting and Stopping VMs
To start a VM:
Start-VM -Name "VMName"
To stop a VM:
Stop-VM -Name "VMName"
Creating and Removing VMs
To create a new VM:
New-VM -Name "NewVMName" -MemoryStartupBytes 2GB -BootDevice VHD -Path "path/to/vhdx" -Generation 2
To remove a VM:
Remove-VM -Name "VMName" -Force
Conclusion
PowerShell for Linux offers a powerful solution for managing Hyper-V VMs across platform boundaries. By following the setup guide and utilizing the provided commands and scripts, Linux administrators can effectively control Hyper-V environments without needing direct access to a Windows system.
FAQs
Can I manage all Hyper-V features from Linux using PowerShell? Most Hyper-V management tasks can be performed from Linux through PowerShell. However, certain advanced features might require access from a Windows system.
Do I need administrative privileges on the Hyper-V host to manage VMs? Yes, you will need administrative privileges on the Hyper-V host to perform most management tasks.
How can I ensure my scripts are cross-platform compatible? When writing scripts, use commands and syntax compatible with PowerShell Core to ensure they work across both Windows and Linux systems.