运行New-AzureQuickVM时,无法找到接受参数的位置参数

时间:2015-04-23 22:20:31

标签: powershell azure

我有以下PowerShell脚本:

 Param(  
       $AccountName = "AccountName",
       $Guid = "Get-Random",
       $ImageName = "ImageName",
       $vmName = "VM-$Guid",
       $ServiceName = "ServiceName",
       $adminLogin = "adminLogin",
       $adminPasswd = "adminPasswd!",
       $location = "South Central US",
       $instanceSize = "Medium",
       $subscriptionDataFile = "file.publishsettings"
        )
    ########################Import Azure Public Setting And Assign Storage###########################
    Import-AzurePublishSettingsFile $subscriptionDataFile 
    Set-AzureSubscription -SubscriptionName $AccountName -CurrentStorageAccountName scrprod -PassThru

    #########################Create A VM From Existing Image And Remove It##########################


    for($i=1; $i -le 5; $i++)
    {
    New-AzureQuickVM –Windows –Location $location –ServiceName $ServiceName `
     –Name $vmName –InstanceSize $InstanceSize –ImageName $ImageName–AdminUsername $adminLogin –Password $adminPasswd -WaitForBoot 
    })

我得到以下异常: New-AzureQuickVM:找不到接受参数'“Windows-Location'的位置参数。

我做错了什么?

其次我想创建5个具有唯一名称的VM - 这是正确的方法吗?

谢谢,

奥伦

2 个答案:

答案 0 :(得分:1)

我认为您的文本文件的编码不正确,或者您使用的字符不正确(可能来自剪切和粘贴)。

您的代码

New-AzureQuickVM –Windows –Location

以某种方式被评估为

New-AzureQuickVM 'â€Windows â€Location'

我建议在-Windows(以及其他可能的地方)之前删除Location个字符,然后重新输入。还要检查文件的编码和字符集。

答案 1 :(得分:0)

在调用New-AzureQuickVM cmdlet时出现格式错误,最明显的是$ServiceName之后的反引号可能会导致问题,如果没有紧跟新行。此外,$ImageName-AdminUsername之间应该有一个空格。

我指的是guid,我会用$guid = ([guid]::NewGuid()).ToString()创建一个,但实际上随机的定义取决于你。