You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新Acer笔记本右键‘用PowerShell运行’闪退及字符异常求助

新Acer笔记本PowerShell异常问题排查与解决建议

问题描述

将其他设备可正常运行的脚本文件夹通过U盘复制到新Acer笔记本(无论直接在U盘运行还是复制到本地),右键选择**"用PowerShell运行"**时,PS窗口仅闪一下就关闭(所有脚本均包含Read-Host语句);但在已打开的PS窗口中用.调用脚本则可正常执行,脚本调用的其他程序(如Scoop安装脚本)也能正常运行。

已尝试的解决操作

  • 检查并修改执行策略,无效:
    • 正常Win11主机(PS 7.3.9)执行策略:
      Scope ExecutionPolicy
              ----- ---------------
      MachinePolicy       Undefined
         UserPolicy       Undefined
            Process       Undefined
        CurrentUser       Undefined
       LocalMachine    RemoteSigned
      
    • 问题设备(Win11笔记本,PS 7.4)执行策略:
      Scope ExecutionPolicy
              ----- ---------------
      MachinePolicy       Undefined
         UserPolicy       Undefined
            Process       Undefined
        CurrentUser       Unrestricted
       LocalMachine       Undefined
      
  • 停用PowerShell后重启再启用,无效
  • 卸载预装McAfee(除Acer自带程序外唯一软件)并多次重启,无效
  • 排查路径问题:排除了路径含撇号的情况(网上类似问题的常见原因)

附加字符显示异常

重音字符显示不稳定:

  • 简单脚本accent.ps1内容:
    Write-Verbose "àèìòù" -Verbose
    Write-Host "àèìòù"
    
    该脚本可正常显示重音字符
  • Scoop安装脚本中Scoop già installato(意为"Scoop已安装")里的à显示为方框问号,此现象仅出现在该Acer笔记本上

补充信息

经提示了解到PowerShell 5和7的执行策略相互独立,修改PS5执行策略后,字符显示情况反转:

  • accent.ps1在PS5中显示异常,PS7中正常
  • Scoop脚本则相反:PS5中显示正常,PS7中异常

闪退问题解决建议

  1. 检查右键"用PowerShell运行"的默认关联程序

    • 确认右键触发的是PowerShell 7还是PowerShell 5:打开设置>应用>默认应用>按应用设置,找到PowerShell相关条目,查看默认关联。若默认是PS5,尝试切换为PS7测试,反之亦然。
    • 修复右键菜单关联:使用regedit检查以下路径的注册表项,确保命令行参数正确:
      • 对于PS7:HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\0\Command,默认值应为"C:\Program Files\PowerShell\7\pwsh.exe" "-Command" "& '%1'"
      • 对于PS5:HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\0\Command,默认值应为"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" "-Command" "& '%1'"
    • 若注册表项异常,可手动修改或使用Get-Command pwsh/Get-Command powershell获取正确路径后更新。
  2. 检查脚本执行时的错误输出

    • 右键选择"打开方式>更多应用>选择其他应用>找到PowerShell(或PowerShell 7)>勾选始终使用此应用打开.ps1文件",然后运行脚本,观察是否有错误提示。若窗口仍闪退,可修改注册表命令行,添加-NoExit参数:比如将命令改为"C:\Program Files\PowerShell\7\pwsh.exe" "-NoExit" "-Command" "& '%1'",这样窗口不会关闭,可查看错误信息。
  3. 检查系统环境变量与PowerShell配置文件

    • 查看PowerShell配置文件($PROFILE)是否有异常代码:运行notepad $PROFILE,若文件不存在则忽略;若存在,检查是否有导致窗口关闭的逻辑(如exit语句)。
    • 检查系统PATH变量,确保PowerShell路径未被篡改,且无冲突的第三方工具路径。
  4. 排查Acer预装软件干扰

    • 尝试临时禁用或卸载Acer自带软件(如Acer Care Center、Acer Quick Access等),测试是否存在脚本拦截行为。

字符显示异常排查方法

  1. 检查PowerShell控制台的编码设置

    • 在PS5中运行:[Console]::OutputEncoding和[Console]::InputEncoding,查看编码是否为UTF-8或IBM437(默认);在PS7中运行:$OutputEncoding和[Console]::OutputEncoding,确认编码设置。
    • 尝试临时修改编码:在PS5中执行[Console]::OutputEncoding = [System.Text.Encoding]::UTF8,在PS7中执行$OutputEncoding = [System.Text.Encoding]::UTF8,然后运行脚本测试字符显示。
  2. 检查脚本文件的编码格式

    • 使用记事本打开脚本,选择"文件>另存为",查看右下角的编码选项。若脚本是ANSI编码,尝试改为UTF-8 BOM或UTF-8后重新运行。
    • 使用PowerShell命令检查脚本编码:Get-Content .\scoop-install.ps1 -Encoding Byte | Select-Object -First 3,若前三个字节是0xEF,0xBB,0xBF则为UTF-8 BOM,否则为其他编码。
  3. 检查系统区域设置

    • 打开设置>时间和语言>语言和区域>管理语言设置>更改系统区域设置,勾选"Beta版:使用Unicode UTF-8提供全球语言支持"(需重启系统),测试字符显示是否正常。
    • 确认系统区域是否为意大利语(对应脚本中的意大利语重音字符),若不是,尝试切换为意大利语区域后测试。

内容的提问来源于stack exchange,提问作者Federico Corradini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 15:54:57