通过 WSL2 控制 Windows PC。当用户需要打开或关闭应用程序、管理进程、截取屏幕、控制窗口、管理 Windows 系统(C:\)上的文件、自动化任务,或执行任何需与 Windows 主机交互的操作时使用(例如“打开...
通过 WSL2 控制 Windows PC。当用户需要打开或关闭应用程序、管理进程、截取屏幕、控制窗口、管理 Windows 系统(C:\)上的文件、自动化任务,或执行任何需与 Windows 主机交互的操作时使用(例如“打开 Chrome”“结束 Spotify 进程”“截屏”“列出运行中的应用”“移动 Windows 上的文件”)。
Control Windows apps processes files and tasks from WSL2 via remote commands
Control the Windows PC from WSL2. Use when the user asks to open/close applications, manage processes, take screenshots, control windows, manage files on Windows (C:\), automate tasks, or do anything that requires interacting with the Windows host from WSL2 (e.g. "open Chrome", "kill Spotify", "take a screenshot", "list running apps", "move a file on Windows").
直接复制以下提示词,发送给你的 AI 助手即可完成安装。
---
name: pc-master
description: Control the Windows PC from WSL2. Use when the user asks to open/close applications, manage processes, take screenshots, control windows, manage files on Windows (C:\), automate tasks, or do anything that requires interacting with the Windows host from WSL2 (e.g. "open Chrome", "kill Spotify", "take a screenshot", "list running apps", "move a file on Windows").
---
# PC Master — Windows Control from WSL2
All Windows binaries are accessible via `/mnt/c/Windows/System32/`. Call them directly from bash.
## Prerequisites
WSL2 interop must be working. If `.exe` calls fail with `UtilAcceptVsock` errors, ask the user to run `wsl --shutdown` in Windows and relaunch WSL.
## Core Commands
### Processes
```bash
# List all processes
/mnt/c/Windows/System32/tasklist.exe
# Filter by name
/mnt/c/Windows/System32/tasklist.exe /FI "IMAGENAME eq chrome.exe"
# Kill by name
/mnt/c/Windows/System32/taskkill.exe /F /IM chrome.exe
# Kill by PID
/mnt/c/Windows/System32/taskkill.exe /F /PID 1234
```
### Launch Applications
```bash
# Open a URL in default browser
/mnt/c/Windows/System32/cmd.exe /c "start https://google.com"
# Open an app by name
/mnt/c/Windows/System32/cmd.exe /c "start chrome"
/mnt/c/Windows/System32/cmd.exe /c "start spotify"
/mnt/c/Windows/System32/cmd.exe /c "start notepad"
# Open a file with its default app
/mnt/c/Windows/System32/cmd.exe /c "start C:\\Users\\User\\file.pdf"
# Launch full path
/mnt/c/Windows/System32/cmd.exe /c "start \"\" \"C:\\Program Files\\App\\app.exe\""
```
> ⚠️ `cmd.exe /c start` must be run from a Windows path. Use `/mnt/c/Windows/System32/cmd.exe /c "cd /d C:\ && start ..."` if cwd is a UNC path (WSL path).
### PowerShell (advanced)
```bash
PS=/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe
# Run a command
$PS -NonInteractive -Command "Get-Process | Select-Object -First 10"
# Get window titles
$PS -NonInteractive -Command "Get-Process | Where-Object {$_.MainWindowTitle} | Select-Object Name, MainWindowTitle"
# Set volume
$PS -NonInteractive -Command "(New-Object -ComObject WScript.Shell).SendKeys([char]174)"
```
### Screenshot
```bash
# Take a screenshot and save to Windows desktop
PS=/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe
$PS -NonInteractive -Command "Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.Screen]::PrimaryScreen | ForEach-Object { \$bmp = New-Object System.Drawing.Bitmap(\$_.Bounds.Width, \$_.Bounds.Height); \$g = [System.Drawing.Graphics]::FromImage(\$bmp); \$g.CopyFromScreen(\$_.Bounds.Location, [System.Drawing.Point]::Empty, \$_.Bounds.Size); \$bmp.Save('C:\\screenshot.png') }"
```
### File System (Windows paths)
```bash
# Windows C:\ is at /mnt/c/ in WSL
ls /mnt/c/Users/
cat /mnt/c/Users/Username/Desktop/file.txt
cp /mnt/c/Users/Username/Downloads/file.zip /mnt/c/Users/Username/Desktop/
# Find Windows username
ls /mnt/c/Users/ | grep -v "Public\|Default\|All Users"
```
### System Info
```bash
# Windows version
/mnt/c/Windows/System32/cmd.exe /c "ver"
# Disk usage
/mnt/c/Windows/System32/cmd.exe /c "wmic logicaldisk get size,freespace,caption"
# Network info
/mnt/c/Windows/System32/ipconfig.exe
```
## Common Patterns
**Close and reopen an app:**
```bash
/mnt/c/Windows/System32/taskkill.exe /F /IM chrome.exe
sleep 2
/mnt/c/Windows/System32/cmd.exe /c "start chrome"
```
**Check if app is running:**
```bash
/mnt/c/Windows/System32/tasklist.exe /FI "IMAGENAME eq spotify.exe" | grep -i spotify && echo "Running" || echo "Not running"
```
**Open a specific website:**
```bash
/mnt/c/Windows/System32/cmd.exe /c "start https://www.google.com"
```
## Notes
- Output may contain garbled characters (Windows encoding vs UTF-8) — this is normal, content is still readable
- Some GUI apps launched via `start` won't produce output — that's expected
- For interactive PowerShell scripts, write to a temp file and read it back instead of capturing stdout directly
- See `references/windows-apps.md` for common app executable names
文件内容直接读取自技能仓库,仅供安装前审阅;以实际下载的压缩包为准。