我试图在PowerShell中运行这个脚本。我将下面的脚本保存为ps.ps1在我的桌面上。
$query = "SELECT * FROM Win32_DeviceChangeEvent WHERE EventType = 2"
Register-WMIEvent -Query $query -Action { invoke-item "C:\Program Files\abc.exe"}
我已经制作了一个批处理脚本来运行这个PowerShell脚本
@echo off
Powershell.exe set-executionpolicy remotesigned -File C:\Users\SE\Desktop\ps.ps1
pause
但是我得到这个错误:
在我的博客文章中,我解释了为什么要从批处理文件调用PowerShell脚本,以及如何调用。
这基本上就是你要找的东西:
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& 'C:\Users\SE\Desktop\ps.ps1'"
如果您需要以管理员身份运行PowerShell脚本,请使用以下命令:
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""C:\Users\SE\Desktop\ps.ps1""' -Verb RunAs}"
不过,与其硬编码PowerShell脚本的整个路径,我建议将批处理文件和PowerShell脚本文件放在同一个目录中,正如我的博客文章所描述的那样。