1

通过 REST API 在 Azure 上部署带有 Windows2008-SQL-Server 模板的 VM 时,我们需要使用 powershell 脚本配置 WinRM 以启用基本身份验证。为此,我们使用 Azure 扩展“CustomScriptExtension”从我们的 blobstorage 加载脚本并运行它。

脚本的输出有错误,Powershell 在端口 5985 上没有响应。

  • 我们使用 SQL-Server-2008R2-SP2-10.50.4319.0-Standard-ENU-Win2008R2 模板。
  • 在部署中,我们设置了一个侦听器,用作协议“Http”。
  • 我们打开 5985 端口,在 VM 配置结束时,我们能够在其上打开一个套接字。

代码:

winrm quickconfig -q
winrm set winrm/config/winrs '@{MaxMemoryPerShellMB="300"}'
winrm set winrm/config '@{MaxTimeoutms="1800000"}'
winrm set winrm/config/service '@{AllowUnencrypted="true"}'
winrm set winrm/config/service/auth '@{Basic="true"}'

对于每个脚本的命令,我们都有以下错误:

Message = Access is denied. \\n\\nError number: -2147024891 0x80070005\\nAccess is denied.

虚拟机配置完成后,我们可以使用远程桌面登录,如果我们从那里启动 powershell 脚本,它就可以完美运行。

经过一番研究,我们发现这篇文章提出了一个可能的解决方案,但问题是它暴露了一个安全问题,因为脚本需要一个管理员密码作为参数。

我们正在寻找其他建议或解决方法。我们正在使用完全自动化的工作流程,因此遗憾的是“手工解决方案”对我们来说不是一个选择。提前感谢您的帮助。

4

1 回答 1

0

我这样做是为了让 Chef 客户端引导程序在 Azure Windows VM 上工作。就我而言,除了您所做的之外,我还必须在 Windows 防火墙上打开 5985 并在云服务上启用 5985 端点。这是一个 PITA,但它完成了工作。

于 2015-02-20T13:26:31.933 回答