Azure / Powershell:检查是否存在SQL Server

Ari*_*oth 1 sql-server powershell azure

我来自C#背景,这是我第一次尝试Powershell。我正在尝试编写一个Powershell脚本,该脚本在Azure中完成很多工作,其中包括:

  • 检查是否存在SQL Server实例
    • 创建服务器(使用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
    }
}
Run Code Online (Sandbox Code Playgroud)

问题出在这里:我遇到以下错误:

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

有谁知道如何解决这个问题?Google绝对没有帮助,至少Test-AzureName就此特定错误消息而言。我曾想尝试其中一种-Service/ServiceBusName/Storage/Website论点,但不确定哪一种适用于此。或者甚至是相关的-错误消息似乎并不表示我实际上缺少了一个参数,只是我提供的那个参数某种程度上是错误的。

哦,如果有帮助,请致电Check-For-Server

$sqlServerName = "test_db_server"
Check-For-Server -ServerName $sqlServerName
Run Code Online (Sandbox Code Playgroud)

谢谢!

4c7*_*b41 5

$serverInstance = Get-AzureRmSqlServer -ServerName $serverName -ResourceGroupName $resourceGroupname -ErrorAction SilentlyContinue
if ($serverInstance) { do stuff }
else { do other stuff }
Run Code Online (Sandbox Code Playgroud)