Powershell 脚本中路径的路径问题

问题描述 投票:0回答:1

我正在尝试将我们的 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-devops azure-powershell azure-policy
1个回答
0
投票

我尝试在 azure cloud shell 中按照您的命令重现相同的内容,当我给出 policy.json 文件的相对路径时遇到了同样的问题。

我已按照以下步骤解决问题。

第 1 步: 转到放置 policy.json 文件的位置,并使用

Get-Location
命令获取完整路径,如下所示,将此路径添加到脚本中的 policy.json 文件。

enter image description here

第 2 步: 在所需路径中创建 policy_deployment.ps1,如下图所示。 enter image description here

现在我已经从多个路径执行了这个脚本进行测试,没有发现任何问题。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.