- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Azure VM,我想从 azure 管道远程运行一些 powershell 命令。我使用自签名证书在 VM 上设置 winrm,并在 VM azure 防火墙上打开端口 5986。我已经能够远程执行从本地计算机放入虚拟机中的一些脚本,但是当我在目标计算机任务上从 Powershell 执行相同的脚本时,我将收到“访问被拒绝”错误。
我也尝试过 v2 任务并勾选测试证书并使用我用于 rdp 到计算机的管理员帐户,但遇到了相同的错误。我想知道我在设置这个时错过了什么?
最佳答案
首先测试您是否可以让 Powershell 从笔记本电脑或其他计算机在目标上远程执行。
使用下面的 Powershell 脚本测试您的 WinRM 连接和自签名证书,并记下测试 Powershell 脚本中的 -SkipCNCheck -SkipCACheck PSSession 选项。如果您使用自签名证书,这些选项至关重要,并且您还需要在“在目标计算机上运行 Powershell”模板(版本 3)的“ session 选项”中提供相同的开关。
注意:我仅使用本地主机 IP 作为示例,以免意外使用真实 IP
$password = ConvertTo-SecureString 'password goes here' -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential ('yourDomain\yourDomainUserId', $password)
$sessionOptions = New-PSSessionOption -SkipCNCheck -SkipCACheck
$remote_session = new-pssession -computername 127.0.0.1 -UseSSL -credential $credential -SessionOption $sessionOptions
Invoke-Command -session $remote_session -ScriptBlock { Get-Culture }
还要确保您已设置 WinRM 监听器来监听目标计算机的外部 IP,并向该监听器注册自签名证书指纹。使用 WinRM 命令来执行此操作(使用您实际的面向外部公众的 IP),例如:
winrm create winrm/config/Listener?Address=IP:127.0.0.1+Transport=HTTPS @{Hostname="some.hostname.outhere.net"; CertificateThumbprint="[YOUR CERT THUMBPRINT]ABCDEF0247283798137030174027"}
还有一点需要注意,请使用计算机外部公共(public) IP 代替“在目标计算机上运行 Powershell”模板的“计算机”字段中的 FQDN 或 DNS 名称。如果您使用自签名证书,则必须执行此操作。
一旦您获得测试 Powershell 脚本以使用来自远程计算机的自签名证书进行连接和握手,几乎可以保证“在目标计算机上运行 Powershell”也能成功。
其他需要检查的事情:
确保您已使用通配符“*”作为服务器名称或 IP 设置 TrustedHosts。基本连接正常工作后,您可以返回并微调安全性。
您可能需要域级 GPO 来允许 WinRM 服务不受阻碍地运行,具体取决于您的目标计算机是工作站还是加入域的计算机。
如果所有其他方法都失败,请在目标计算机上下载并安装 Wireshark,并设置 ip 过滤器以仅监听客户端服务器的 ip 并分析流量,大多数时候这会提示您哪些内容被拒绝并为什么。
希望这有帮助。
关于azure - 来自 azure pipeline 的目标计算机上的 Powershell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57049364/
我是一名优秀的程序员,十分优秀!