通过 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 脚本,它就可以完美运行。
经过一番研究,我们发现这篇文章提出了一个可能的解决方案,但问题是它暴露了一个安全问题,因为脚本需要一个管理员密码作为参数。
我们正在寻找其他建议或解决方法。我们正在使用完全自动化的工作流程,因此遗憾的是“手工解决方案”对我们来说不是一个选择。提前感谢您的帮助。