我有以下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 - 这是正确的方法吗?
谢谢,
奥伦
答案 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()
创建一个,但实际上随机的定义取决于你。