Invoke-ps2exe : 找不到与参数名称“Script”匹配的参数。 所在位置 行:1 字符: 15 + Invoke-PS2EXE -Script .\重启wacom.ps1 -OutputFile 重启wacom.exe -IconPath ... + ~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Invoke-ps2exe],ParameterBindingException + FullyQualifiedErrorId : NamedParameterNotFound,Invoke-ps2exe
时间: 2024-04-22 20:26:09 浏览: 701
这个错误提示说明 `Invoke-PS2EXE` 命令中没有找到名为 "Script" 的参数。这可能是因为你使用的是旧版本的 `PS2EXE` 模块,或者你的 PowerShell 环境中没有正确加载该模块。
为了解决这个问题,你可以尝试使用 `PS2EXECore` 工具来编译脚本为可执行文件。以下是使用 `PS2EXECore` 的步骤:
1. 首先,确保你的计算机上已安装了 PowerShell Core 6 或更高版本。你可以从 PowerShell 的官方网站上下载并安装最新版本:https://github.com/PowerShell/PowerShell
2. 打开 PowerShell Core 并运行以下命令安装 `PS2EXECore` 模块:
```powershell
Install-Module -Name PS2EXECore -AllowPrerelease
```
3. 使用以下代码创建一个新的 PowerShell 脚本文件(例如,`重启wacom.ps1`),并将以下代码复制粘贴进去:
```powershell
param(
[string]$serviceName = "WTabletServicePro"
)
# 检查服务是否存在
if (Get-Service -Name $serviceName -ErrorAction SilentlyContinue) {
# 重启服务
Restart-Service -Name $serviceName
Write-Host "服务已成功重启。"
} else {
Write-Host "找不到指定的服务。"
}
# 按任意键退出脚本
Write-Host "`n请按任意键退出脚本..."
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
```
4. 将 `"WTabletServicePro"` 替换为你要重启的服务的实际名称。
5. 在 PowerShell Core 中运行以下命令编译脚本为可执行文件:
```powershell
Invoke-PS2EXECore -InputFile .\重启wacom.ps1 -OutputFile 重启wacom.exe -Apartment STA -TargetFramework 'net5.0'
```
确保将 `"重启wacom.ps1"` 替换为你创建的脚本文件名。这将生成一个名为 `重启wacom.exe` 的可执行文件。
现在,你可以双击 `重启wacom.exe` 来重启服务,而无需打开 PowerShell。如果你希望修改服务名称或其他参数,只需编辑脚本文件并重新编译为可执行文件即可。
阅读全文