在服务器核心上自动使用 PowerShell

vcs*_*nes 18 windows-server-core windows-server-2012

当我在本地登录到 Server 2012 Core 安装时,每次我必须输入powershell才能进入 PowerShell 命令行而不是普通的 ol' cmd。

假设我永远不会删除 PowerShell Windows 功能,我如何配置服务器以让我直接进入 PowerShell 提示符而不是 cmd?

the*_*bit 9

只需将您的 powershell 命令行作为新值添加到“AvailableShells”注册表项中,即可将其作为机器范围的设置:

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\AlternateShells\AvailableShells" /v "90000" /t REG_SZ /d "%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\Powershell.exe"
Run Code Online (Sandbox Code Playgroud)

参考:http : //andrewmorgan.ie/2012/03/30/changed-the-default-shell-of-windows-server-8-core/

编辑:请注意,“AvailableShells”键的默认注册表权限不允许更改。您必须事先更改权限(例如通过“regedit”手动更改)以允许您的帐户(或“管理员”组)执行此更改。

  • 这看起来很有希望,但似乎管理员组没有对该 `AvailableShells` 键的写访问权限,只有 TrustedInstaller 可以。如果不取得密钥的所有权,我就无法更改权限。您认为拥有系统密钥会带来任何问题吗?这是我的注册表的 ACL:https://gist.github.com/vcsjones/4dca25f94bfb1cfd5857 (2认同)
  • 或者通过组策略部署它以增加自动化胜利并规避修改任何权限的需要;) (2认同)