如何删除 Windows 终端中的 powershell 广告和更新检查?

How to remove powershell ads and update checks in the Windows Terminal?

当我启动 Windows 终端时,我得到以下信息:

如何取消版权和版本通知、帮助 URL 和更新检查?我只想进入命令行。

我在 settings.json 中的 powershell 配置文件(Windows 终端的配置文件)是这样的:

{
    "guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
    "hidden": false,
    "name": "PowerShell",
    "source": "Windows.Terminal.PowershellCore",
    "fontFace": "Cascadia Code PL",
    "startingDirectory": "C:\Users\user1\desktop\"
}

我见过 -nologo 等标志,但我没有命令行可以将其传递给。

在Windows终端的settings.json文件中创建一个自定义profile如下(里面profiles.list 数组 属性):

至少从 PowerShell 7.2.1 开始,-nologo 也会停用更新通知:谢谢,Maximilian Hils

{
    // no strict need for a GUID; create a *new* one, if needed.
    "hidden": false,
    "name": "PowerShell - no logo, no update notification",
    "commandline": "pwsh.exe -nologo"
    // ... other properties omitted.
},

在早期版本中,您可能需要环境变量POWERSHELL_UPDATECHECK来禁用更新通知:

{
    // no strict need for a GUID; create a *new* one, if needed.
    "hidden": false,
    "name": "PowerShell - no logo, no update notification",
    "commandline": "cmd /c set POWERSHELL_UPDATECHECK=Off & pwsh.exe -nologo"
    // ... other properties omitted.
},
  • 如果需要,从问题中显示的 dynamic 配置文件中复制 startingDirectoryfontFace 属性。 (Dynamic profiles 由 Windows 终端本身自动生成,具体取决于发现要安装的 shell;它们有一个 source 属性,其值以 Windows.Terminal,如您问题中显示的条目。

  • 在这种情况下并不严格需要 guid 属性(通常,名称和 GUID 可以互换使用以标识配置文件);如果您确实使用了一个,请创建一个 new GUID(例如 New-Guid)。

    • 如果您想使用与动态 PowerShell Core 配置文件相同的 name 值,最好 隐藏 后者,方法是设置其 hidden 属性 到 true.
  • 自定义配置文件使用 commandline 属性 来定义生成具有此配置文件的选项卡时要执行的命令。上面的值假定 PowerShell 的可执行文件 pwsh.exe 在您的路径中;如果不是,因此您需要指定完整路径,请确保 double \ 个字符。 (例如 \"C:\Program Files\PowerShell\7\pwsh.exe\")或使用 / 代替(例如 \"C:/Program Files/PowerShell/7/pwsh.exe\"

  • 7.2.1 之前的 PowerShell 版本可能需要:

    • cmd /c set POWERSHELL_UPDATECHECK=Off定义相关环境变量关闭PowerShell的更新通知,然后启动PowerShell。

      • 这意味着您的 PowerShell 实例将有一个 cmd.exe 父进程,但这应该不是问题。
    • 您也可以通过注册表永久定义此环境变量,在这种情况下不再需要cmd.exe

  • -nologo 传递给 PowerShell's CLI 会抑制“徽标”,即版权信息和帮助提示。

    • 至少从 PowerShell 7.2.1 开始,-nologo 也会自动停用更新通知 - 可能,它一直以这种方式工作。