开发者社区 问答 正文

Cloud Toolkit 部署应用到 Windows 服务器 ,出错了

在windows 2012 Server 上执行New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force 命令时,报错了 报错信息: New-ItemProperty : 无法使用接口。此提供程序未实现 IDynamicPropertyCmdletProvide r 接口。 所在位置 行:1 字符: 1 + New-ItemProperty -Path "C:\Program Files\OpenSSH-Win64" -Name DefaultShell -V alu ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : NotImplemented: (:) [New-ItemProperty], PSNotSup
   portedException
    + FullyQualifiedErrorId : NotSupported,Microsoft.PowerShell.Commands.NewIt
   emPropertyCommand

展开
收起
游客ruwkhgoful2ko 2020-04-11 15:22:10 667 分享 版权
阿里云 AI 助理回答

这个错误信息表明您在尝试使用 PowerShell 命令 New-ItemProperty 来创建或修改注册表项时,遇到了一个不支持的操作。具体来说,错误提示“此提供程序未实现 IDynamicPropertyCmdletProvider 接口”意味着您使用的 PowerShell 版本或者环境可能不完全支持该操作。

考虑到您是在 Windows Server 2012 上操作,并且涉及到 OpenSSH 的配置,这里有几个建议来解决这个问题:

  1. 检查 PowerShell 版本:确保您使用的是 PowerShell 的较新版本。虽然 Windows Server 2012 自带的 PowerShell 版本可能较低,但您可以尝试更新到 PowerShell 5.0 或更高版本,因为这些版本更有可能支持您需要的功能。可以通过运行 (Get-Host).Version 来查看当前的 PowerShell 版本。

  2. 使用 Reg.exe 或 regedit.exe:如果 PowerShell 方法不奏效,可以考虑使用传统的注册表编辑工具。打开命令提示符(cmd)并运行以下命令来达到同样的目的:

    reg add "HKLM\SOFTWARE\OpenSSH" /v DefaultShell /t REG_SZ /d "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" /f
    

    这条命令会直接通过 reg 命令行工具添加注册表项。

  3. 手动编辑注册表:作为最后的手段,您也可以直接使用注册表编辑器(regedit.exe)来进行修改。导航到 HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH,右键点击该目录,选择“新建”->“字符串值”,然后命名为 DefaultShell,双击它并将数值数据设置为 "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"

  4. 重启 SSH 服务:无论采用哪种方法修改了默认 Shell,记得修改后重启 OpenSSH 服务以使更改生效。可以通过运行 Restart-Service sshd(如果使用 PowerShell)或 net stop sshd && net start sshd(如果使用命令提示符)来重启服务。

请按照上述步骤尝试解决问题,如果问题依旧,请进一步检查是否有权限问题,确保您的账户有足够权限对注册表进行写入操作。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答