使用Powershell调用json文件的问题

时间:2019-05-09 00:33:54

标签: json powershell

我正在尝试运行简单的power-shell命令来调用json文件以在Azure上部署一些资源,但是每次尝试运行该文件时都会给我相同的错误。我收到的错误消息是-

New-AzDeployment : Cannot retrieve the dynamic parameters for the cmdlet. Invalid property identifier character: �. Path '', line 2, position 0.
At line:1 char:1
+ New-AzDeployment -Name $DeploymentName -Location uksouth -TemplateUri ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidArgument: (:) [New-AzDeployment], ParameterBindingException
+ FullyQualifiedErrorId : GetDynamicParametersException,Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.NewAzureDeploymentCmdlet

下面是Powershell,我正在尝试运行-

$DeploymentSubscription = "Visual Studio Enterprise with MSDN"
$DeploymentRSG = "xyz"
$DeploymentName = "vvv"
$ParameterRoute = "D:\xyz\json\VM\"
$ParameterFile = $ParameterRoute + "Build.json"
$TemplateFileRoute = "D:\xyz\VM\"
$TemplateFileName = "Deploy_RG_Resources.json"
$TemplateFile = $TemplateFileRoute + $TemplateFileName
$TemplateFileURi = $TemplateFileRoute + $TemplateFileName

New-AzResourceGroupDeployment -Name $DeploymentName -ResourceGroupName $DeploymentRSG -DeploymentDebugLogLevel All -Verbose -TemplateUri $TemplateFileURi -TemplateParameterFile $ParameterFile

谢谢

3 个答案:

答案 0 :(得分:0)

该错误非常具体。 您通过的内容是有效的。 cmdlet的帮助文件将显示此命令的作用。

New-Az​Resource​Group​Deployment

$newAzResourceGroupDeploymentSplat = @{
    TemplateParameterFile = "D:\Azure\Templates\EngSiteParams.json"
    TemplateObject = $TemplateObject
    ResourceGroupName = "ContosoEngineering"
}
New-AzResourceGroupDeployment @newAzResourceGroupDeploymentSplat

将完全合格的UNC记录到.json文件中。

但是您正在这样做。

$ParameterFile = $ParameterRoute + "Build.json"

...并且根据您的帖子,这不是您的.json文件的路径。

答案 1 :(得分:0)

如果您的模板文件位于本地计算机上,请尝试使用-TemplateFile作为参数,而不是-TemplateUri

答案 2 :(得分:0)

现在已解决。问题出在JSON模板语法上。虽然我已经多次验证模板了,但还是很奇怪