Azure/Powershell:检查SQL Server是否存在
我来自C#背景,这是我第一次进入Powershell。我试着写,其中一个PowerShell脚本,做了一大堆的东西天青:Azure/Powershell:检查SQL Server是否存在
- 检查是否一个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
}
}
这里的问题:我发现了以下错误:
Test-AzureName : Parameter set cannot be resolved using the specified named parameters.
At 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
谢谢!
$serverInstance = Get-AzureRmSqlServer -ServerName $serverName -ResourceGroupName $resourceGroupname -ErrorAction SilentlyContinue
if ($serverInstance) { do stuff }
else { do other stuff }
您为什么不创建ARM模板并使用New-AzureRmResourceGroupDeployment cmdlet部署/重新部署的任何原因? –
那么,这主要是基于“我不知道我在做什么,所以我不知道我能做到这一点”。 :)我会研究它。谢谢! –