我正在尝试将我们的 Azure 策略创建为代码。为此,我将所有 Azure 策略导出为 json 格式,然后我使用 azure powershell 脚本上传/创建策略。 当我尝试通过 azure devops 执行我的 powershell 脚本时,实际问题出现了。但为了简化问题,我在 azure cloud shell 中重新创建了问题。
我在以下位置创建了一个策略:
/home/sokr/clouddrive/deploy_azure_monitor_agent_extension_for_windows_VMs/policy.json
我的 azure cli 脚本位于: /home/sokr/clouddrive/policy_deployment.ps1
它包含以下代码:
`$managementGroup = "mg_sandbox"
New-AzPolicyDefinition -Name 'deploy_azure_monitor_agent_extension_for_windows_VMs' -managementGroup $managementGroup -Policy '/deploy_azure_monitor_agent_extension_for_windows_VMs/policy.json'
如果我从路径执行我的脚本:/home/sokr/clouddrive/。 然后一切正常。但是,如果我使用命令 ./clouddrive/policy_deployment.ps1 从 /home/sokr/ 等其他路径执行我的脚本,我会收到错误消息:
New-AzPolicyDefinition: /home/sokr/clouddrive/policy_deployment.ps1:4
Line |
4 | New-AzPolicyDefinition -Name 'deploy_azure_monitor_agent_extension_fo …
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Unexpected character encountered while parsing value: d. Path '', line 0, position 0.
New-AzPolicyDefinition: /home/sokr/clouddrive/policy_deployment.ps1:5
显然,我需要更改我在 azure cli 脚本中定义的路径,当前路径为“\deploy_azure_monitor_agent_extension_for_windows_VMs\policy.json”。但无论将其更改为什么,我都会得到同样的错误。有什么帮助吗?
我已将路径更改为: '/clouddrive/deploy_azure_monitor_agent_extension_for_windows_VMs/policy.json'
'/home/sokr/clouddrive/cloud/drive/deploy_azure_monitor_agent_extension_for_windows_VMs/policy.json' 还有更多。但我不断收到同样的错误
我尝试在 azure cloud shell 中按照您的命令重现相同的内容,当我给出 policy.json 文件的相对路径时遇到了同样的问题。
我已按照以下步骤解决问题。
第 1 步: 转到放置 policy.json 文件的位置,并使用
Get-Location
命令获取完整路径,如下所示,将此路径添加到脚本中的 policy.json 文件。
第 2 步: 在所需路径中创建 policy_deployment.ps1,如下图所示。
现在我已经从多个路径执行了这个脚本进行测试,没有发现任何问题。