通过“运行”-GUI 和 Win+X 启动 PowerShell 的区别

通过“运行”-GUI 和 Win+X 启动 PowerShell 的区别

如果我在 Windows 10 v1909 上以管理员身份运行 PowerShell 并对终端窗口进行更改(例如更改缓冲区),则更改将会按应有的方式保存,这里有一个示例,将缓冲区大小更改为999

在此处输入图片描述

但只有当我以“相同方式”启动它时才会这样。第二个启动过程似乎有它自己的“存储”,并且没有给我相同的结果:

  • 使用命令运行对话框powershell并点击Ctrl+ Shift+OK 执行(使其以管理员身份运行

相对

  • Win+X 菜单,选择Windows PowerShell (Administrator)

通过某种方式打开 PowerShell 时,内部究竟发生了什么不同?我可以使用运行对话框中的开关强制它打开“相同”的 Powershell 吗?

powershell.exe我的第一个猜测是那里有两个副本,但两个进程都显示它们在 中启动了相同的二进制文件%WinDir%\System32\WindowsPowerShell\v1.0,其中一个显示为 ,PowerShell.exe另一个显示为powershell.exe。它看起来像是通过 Win+X 选项的某种参数来启动第二个配置文件?!

答案1

如果通过执行其可执行文件直接启动 PowerShell:

  • 32 位:%SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe
  • 64 位:%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe

⊞ Win它确实与使用+下提供的快捷方式X或使用在开始菜单中查找“PowerShell”时找到的快捷方式不同。这些快捷方式存储在%AppData%\Microsoft\Windows\Start Menu\Programs\Windows PowerShell并提供自己的设置:

在此处输入图片描述

答案2

回到您最初的疑问...至于这个...

在内部打开 PowerShell 时究竟有什么不同

... 这根本就不是事。Windows PowerShell 是操作系统的一部分。无论如何启动 PowerShell 都是一样的。没有 PowerShell 内部/外部启动的概念。

当您使用运行命令 cmd.exe、Win+X 等时,每次这些都是新的 PowerShell 实例,与存储等无关。您在会话中所做的任何设置都仅适用于该会话。

如果你想保留这些设置,唯一的方法是,创建桌面快捷方式或修改现有快捷方式(即右键单击快捷方式并单击属性 - 就像使用任何其他 Windows 快捷方式一样)并设置所需的属性。

对于 PowerShell 来说,第二种方法是创建和使用 PowerShell 配置文件。这实际上是在 PowerShell 培训课上度过的一天 1 小时 1 个小时。

@JW0914 在此处试图表达的是,PowerShell 目录只有在您创建配置文件或手动创建它们时才会存在。只需启动 powershell.exe,然后执行以下操作即可...

New-Item –Path $Profile –Type File –Force

..启动 powershell_ise.exe 并执行相同的操作,然后创建“WindowsPowerShell”目录...

C:\Users\你的用户名\Documents\WindowsPowerShell

和两者个人资料将会

Microsoft.PowerShell_profile.ps1
Microsoft.PowerShellISE_profile.ps1

这些只是空文件,如上所述,基础将是一个您可以设置任何您选择的首选项的位置,并且除非您使用 -noprofile 参数启动 powershell.exe 或 powershell_ise,否则它们将被使用。

请参阅 Powershell 帮助文档。

PowerShell 的另一个版本称为PowerShell 核心 (pwsh.exe)并且它是跨平台的(Win/OSX/Linux),但不会升级/替换 Windows PowerShell。它们旨在并行运行。它也有自己的路径和配置文件,与 Windows PowerShell 路径分开。

C:\Users\你的用户名\Documents\PowerShell

Microsoft.PowerShell_profile.ps1

没有适用于 PowerShell Core 的 ISEISE for PowerShell 核心的替代品称为Visual Studio 代码。它也有自己的配置文件,并且必须位于 PowerShell 文件夹中。

Microsoft.VSCode_profile.ps1

相关内容