我正在尝试通过 PSexec 启动 PowerShell 会话,并使用备选颜色和一些窗口属性。我需要通过 PSExec 运行 PowerShell 的原因在于,这样我就可以使用现成的一键式快捷方式在本地系统上下文中启动终端窗口。这对于每天在 MDT/SCCM 包中测试脚本和代码很有意义。这听起来像是一件毫无意义的事情,但我打开了很多命令窗口,因此很难区分哪个终端窗口是以系统、用户、本地管理员等身份运行的。颜色可以更容易地立即看到这种差异。
到目前为止我正在尝试这个,但是资源管理器在启动时崩溃了:
C:\SysinternalsSuite\psexec.exe /i /s "PowerShell.exe -NoExit -Command "& $HOST.UI.RawUI.ForeGroundColor = cyan"
我可以正常启动 PowerShell,如下所示:
C:\SysinternalsSuite\psexec.exe /i /s powershell.exe
我确信这与引号的解析方式有关。
答案1
我找到了答案。我做的是:
1)在名为 C:\Launchers 的文件夹中创建 2 个 bat 文件,一个用于以系统身份启动 CMD,另一个用于 PS
2)下载最新版本的 SysinternalsSuite 并将文件夹放在 C:\
3) 将快捷方式固定到我的任务栏,然后执行以下操作:A) 将快捷方式“目标:”字段设置为:C:\Windows\System32\cmd.exe /C "C:\Launchers\Launch_PS_As_Sys.bat" B) 将“启动位置:”字段设置为“C:\Launchers”。C) 单击“高级”并选中“以管理员身份运行”
该 bat 文件包含 PowerShell 系统启动器的此行:
C:\SysinternalsSuite\psexec.exe /dis powershell.exe -NoExit -Command "& {cd C:\Users\<yourusername>\Desktop; $HOST.UI.RawUI.ForeGroundColor='Cyan'}"
此行用于 CMD 提示符:
C:\SysinternalsSuite\psexec.exe /dis cmd.exe /k "cd C:\Users\<yourusername>\Desktop & Color 0A"
事实证明,.bat 和/或 PSExec 解析引号的方式在某种程度上相互冲突,因此您必须使用单引号而不是双引号。可能是我的错误。无论如何,我希望有人觉得这很有用。
答案2
两件事情:
- 您可以使用 Powershell 配置文件来自定义 shell
- 您可以简单地更改外壳属性(颜色、字体大小、缓冲区) - 它们毕竟会持续存在
两种操作均无需使用 psexec 等外部工具。
你的方法太复杂了。只需创建一个 Powershell 的快捷方式,然后打开链接的属性并将“开始于”值设置为要启动 Powershell 的目录,然后通过颜色选项卡自定义 shell 颜色。cmd.exe 也同样适用。