如何通过双击以管理员权限运行PowerShell脚本并实现触摸屏开关切换
如何通过双击以管理员权限运行PowerShell脚本并实现触摸屏开关切换
嗨,我来帮你搞定这两个需求——让PowerShell脚本双击就能以管理员权限运行,还能一键切换触摸屏的开启/关闭状态!
一、让脚本双击即可以管理员权限运行
你之前尝试的快捷方式思路是对的,但需要调整几个细节,确保它能自动获取管理员权限并正确执行:
创建正确的快捷方式
- 右键桌面空白处,选择「新建」→「快捷方式」
- 在「目标」栏中粘贴以下命令(记得替换成你实际的脚本路径):
这里的参数解释:C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -NoProfile -File "C:\Users\OnionMan\Desktop\Disable Touchscreen.ps1"-ExecutionPolicy Bypass:临时绕过PowerShell的执行策略,比Unrestricted更安全,不会全局改变策略-NoProfile:不加载用户的PowerShell配置文件,避免额外干扰-File:指定要运行的脚本文件路径
设置快捷方式自动提权
- 右键刚创建的快捷方式,选择「属性」
- 切换到「快捷方式」标签页,点击「高级」按钮
- 勾选「以管理员身份运行」,点击「确定」保存设置
现在双击这个快捷方式,会弹出UAC权限提示,确认后脚本就会以管理员权限运行了。
二、修改脚本实现触摸屏一键切换功能
你原来的脚本只能禁用触摸屏,我们可以修改它,让它自动判断当前状态并切换:
把下面的代码替换你原脚本的内容,保存后再用上面的快捷方式运行:
# 查找系统中的触摸屏设备(过滤出状态为启用/禁用的设备) $touchScreenDevices = Get-PnpDevice | Where-Object { $_.FriendlyName -like '*touch screen*' -and $_.Status -in 'OK', 'Error' } if ($touchScreenDevices) { foreach ($device in $touchScreenDevices) { if ($device.Status -eq 'OK') { # 当前是启用状态,执行禁用操作 Disable-PnpDevice -InstanceId $device.InstanceId -Confirm:$false Write-Host "✅ 触摸屏已成功禁用" -ForegroundColor Green } else { # 当前是禁用状态,执行启用操作 Enable-PnpDevice -InstanceId $device.InstanceId -Confirm:$false Write-Host "✅ 触摸屏已成功启用" -ForegroundColor Green } } } else { Write-Host "❌ 未找到可用的触摸屏设备" -ForegroundColor Red }
这个脚本的优势:
- 用
InstanceId定位设备,比仅靠FriendlyName更精准,避免误操作其他同名设备 - 自动识别当前设备状态,一键完成切换
- 带彩色提示信息,让你清楚知道操作结果
备注:内容来源于stack exchange,提问作者IT Rookie
相关产品推荐
相关产品推荐

