WSL-PowerShell Controller
Call Windows PowerShell from WSL to control Windows host from Linux environment.
How It Works
WSL mounts Windows drives to /mnt/, allowing direct execution of Windows binaries:
- PowerShell:
/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe - CMD:
/mnt/c/Windows/System32/cmd.exe
Usage
Execute PowerShell Commands
/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe -Command "Your-Command"
Execute PowerShell Scripts
/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe -File "/mnt/c/path/to/script.ps1"
Common Examples
System Information
# Get system info
powershell.exe -Command "Get-ComputerInfo"
# Get process list
powershell.exe -Command "Get-Process | Select-Object -First 10 Name,Id,CPU"
# Get service status
powershell.exe -Command "Get-Service | Where-Object {$_.Status -eq 'Running'} | Select-Object -First 10 Name,DisplayName"
File Operations
# List directory
powershell.exe -Command "Get-ChildItem C:\\Users"
# Copy file
powershell.exe -Command "Copy-Item C:\\source\\file.txt C:\\dest\\file.txt"
# Create file
powershell.exe -Command "New-Item -Path C:\\test.txt -ItemType File -Force"
Process Management
# Start program
powershell.exe -Command "Start-Process notepad.exe"
# Stop process
powershell.exe -Command "Stop-Process -Name notepad -Force"
Network Operations
# Get network config
powershell.exe -Command "Get-NetIPConfiguration"
# Ping test
powershell.exe -Command "Test-Connection -ComputerName google.com -Count 2"
Path Conversion
WSL Path ↔ Windows Path:
- WSL:
/mnt/c/Users/Tao↔ Windows:C:\Users\Tao - Use
wslpathcommand:wslpath -w /mnt/c/Users # Output: C:\Users wslpath -u C:\\Users # Output: /mnt/c/Users
Notes
- Permissions: Some operations require administrator privileges, use
-Verb RunAsfor elevated PowerShell - Path Escaping: Backslashes
\in Windows paths must be escaped as\\ - Encoding: PowerShell outputs UTF-16 by default, may need conversion
- Execution Policy: Running scripts may require
Set-ExecutionPolicy
Security Tips
- Use caution with system-level commands
- Avoid deleting critical system files
- Test commands before executing in production