我来自C#背景,这是我第一次涉足Powershell。我正在尝试编写一个Powershell脚本,在Azure中执行大量的工作,其中包括:
New-AzureRmSqlServer
),如果不是我的第一个问题是如果服务器已经存在,我不需要创建它;我可以直接进入数据库创建。但是,我似乎无法做到这一点。
我尝试了Get-AzureRmSqlServer
,但如果找不到我正在寻找的服务器,则会出错。最后,我使用此函数返回$true
如果找到,$false
如果不是:
function Check-For-Server
{
Param(
[Parameter(Mandatory=$true)]
[String]
$ServerName
)
if (Test-AzureName -Name $ServerName)
{
return $false
}
else
{
return $true
}
}
问题在于:我收到以下错误:
Test-AzureName:无法使用指定的命名参数解析参数集 在C:\ src \ Powershell \ test.ps1:10 char:9
+ if(Test-AzureName -Name $ ServerName)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:InvalidArgument:(:) [Test-AzureName],ParameterBindingException
+ FullyQualifiedErrorId:AmbiguousParameterSet,Microsoft.WindowsAzure.Commands.CloudService.TestAzureNameCommand
有谁知道怎么解决这个问题?谷歌绝对没有任何帮助,至少就这个特定的错误消息Test-AzureName
而言。我想过尝试其中一个-Service/ServiceBusName/Storage/Website
参数,但我不确定哪个甚至适用于此。或者如果它甚至是相关的 - 错误消息似乎并不表示我实际上缺少参数,只是我提供的那个有点不好。
哦,如果有帮助,请致电Check-For-Server
:
$sqlServerName = "test_db_server"
Check-For-Server -ServerName $sqlServerName
谢谢!
答案 0 :(得分:5)
$serverInstance = Get-AzureRmSqlServer -ServerName $serverName -ResourceGroupName $resourceGroupname -ErrorAction SilentlyContinue
if ($serverInstance) { do stuff }
else { do other stuff }