windows 我如何禁用个人和系统配置文件加载时间消息上Powershell

nnsrf1az  于 2023-02-25  发布在  Windows
关注(0)|答案(6)|浏览(523)

如何禁用Powershell启动时显示的此消息?
该消息是:
加载个人和系统配置文件花费xxx毫秒
我知道它显示当配置文件加载时间很慢。
不过,我已经满足了我的配置文件加载时间。
有什么办法可以禁用此消息吗?
请注意,此消息似乎仅在Powershell 5.1+上显示。
我使用:Powershell 5.1 windows 10 1709

whlutmcx

whlutmcx1#

按如下方式更改Powershell链接目标的属性:

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -nologo

然后消息应该会消失

dwbf0jvd

dwbf0jvd2#

如果你正在使用***Windows终端*打开setting.json文件按下ctrl+,**或从顶部菜单(下拉图标〉设置)或直接从访问它

%LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\

在setting.json中,转到"profiles" > "list",搜索具有

"commandline": "powershell.exe",
change it to 
"commandline": "powershell.exe -nologo",

这也适用于pwsh

"commandline": "pwsh.exe", 
change it to 
"commandline": "pwsh.exe -nologo",

您也可以使用-NoProfile不加载PowerShell配置文件
powershell Parameters中的其它命令

h5qlskok

h5qlskok3#

您可以通过删除存储在CurrentUserCurrentHost中的已保存配置文件来删除它。您只需键入

$profile

$profile | Select-Object *

在你的电源 shell 上。然后你就可以看到你的配置文件存储的目录了。接下来你要做的就是删除配置文件。完成。
您可以参考配置文件和执行策略的完整文档,网址为:Microsoft docs或者如果你是更视觉化的人,你可以在这里找到一个很好的解释:John Hammod

ibrsph3r

ibrsph3r4#

∮编辑它∮
你可能不会让它消失,因为你没有/不能在powershell调用中添加-nologo选项,所以如果它冒犯了你,你可以在它显示后编辑它。

步骤1:设置标志

在profile.ps1脚本的末尾,定义一个全局变量,指示需要修订前一行。

$global:RedactPreviousLine = $True

第二步:设置提示

每个新命令行上显示的初始文本由prompt函数决定,每次powershell返回用户控制时都会调用prompt函数,通常是在powershell报告加载配置文件所用的时间之后。
可以通过命令Get-Command Prompt | select-object -expandproperty scriptblock查看此函数的内容
因为无论如何你都要加载一个概要文件,你可以简单地重新创建prompt函数,方法是在你在步骤1中输入的行上方的某个点添加它。在prompt函数中,我们将添加代码来编辑令人不快的消息。我选择这个变量名是因为它不太可能在其他地方再次使用。

function Prompt {
    if ( Test-Path Variable:Global:RedactPreviousLine ) { 
        $cursor = New-Object System.Management.Automation.Host.Coordinates
        $cursor.X = $host.ui.rawui.CursorPosition.X
        $cursor.Y = $host.ui.rawui.CursorPosition.Y - 1
        $host.ui.rawui.CursorPosition = $cursor
        Write-host $( " " * ( $host.ui.RawUI.WindowSize.Width - 1 ) )
        $host.ui.rawui.CursorPosition = $cursor

        Remove-Variable RedactPreviousLine -scope global
        } # end if 
    "PS $($executionContext.SessionState.Path.CurrentLocation)$('>' * ($nestedPromptLevel + 1)) ";
    # .Link
    # https://go.microsoft.com/fwlink/?LinkID=225750
    # .ExternalHelp System.Management.Automation.dll-help.xml
    } # end function prompt

审查

这个过程的工作原理是运行Profile.PS1并设置标志,然后profile.ps1结束,Powershell将打印加载配置文件所用时间的消息并返回提示符。
当powershell调用prompt函数时,它会看到全局变量RedactPreviousLine,并在线向上移动光标,在该行中填充空格,然后将光标返回到该行的开头,并删除标记。
然后prompt函数将显示组成命令提示符的文本。
最终的结果是,消息将在屏幕上 Flink ,然后迅速删除。

gv8xihay

gv8xihay5#

1.点击“开始”-〉键入“powershell”-〉“打开文件位置”

转到C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell(使用您的用户名更改<username>
1.如果您看到2个版本-“Windows PowerShell”和“Windows PowerShell x86”-请对这两个版本执行以下操作。

1.右键单击并选择“属性”

1.在选项卡中,选择“快捷方式”选项卡,并在“目标”中的文本末尾追加-nologo

1.点击“应用”和“确定”,享受无标识体验:)

nue99wik

nue99wik6#

到目前为止,我尝试了本帖中列举的所有技术,以及ChatGPT建议的六种方法......但都无济于事。每次启动Windows终端(我已将其配置为显示单个PowerShell选项卡)时,都会遇到类似于以下内容的两行代码:

PowerShell 7.3.2
Loading personal and system profiles took 538ms.

然而,通过将Clear-Host添加到轮廓Microsoft.PowerShell_profile.ps1的底部,可以使第一行不显示。

相关问题