Powershell 创建Azure SQL数据库服务器连接上下文新建AzureSqlDatabaseServerContext

Powershell 创建Azure SQL数据库服务器连接上下文新建AzureSqlDatabaseServerContext,powershell,azure,azure-sql-database,azure-powershell,Powershell,Azure,Azure Sql Database,Azure Powershell,我正在尝试创建Azure SQL数据库连接上下文,例如 $cred = Get-Credential $ctx = New-AzureSqlDatabaseServerContext -ServerName “mydatabasename” -credential $cred 或 答复是: New-AzureSqlDatabaseServerContext : Object reference not set to an instance of an object. At line:2 cha

我正在尝试创建Azure SQL数据库连接上下文,例如

$cred = Get-Credential
$ctx = New-AzureSqlDatabaseServerContext -ServerName “mydatabasename” -credential $cred

答复是:

New-AzureSqlDatabaseServerContext : Object reference not set to an instance of an object.
At line:2 char:8
+ $ctx = New-AzureSqlDatabaseServerContext -ServerName “myservername” - ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [New-AzureSqlDatabaseServerContext], NullReferenceException
    + FullyQualifiedErrorId : Microsoft.WindowsAzure.Commands.SqlDatabase.Database.Cmdlet.NewAzureSqlDatabaseServerContext
我已经浏览了文档和谷歌搜索,但都没用。

谢谢
帕维尔

我最近在PS运行手册中遇到了这个问题。在做了一些搜索之后,我找到了一个适合我的解决方案。希望它能帮助你

错误消息并没有特别的帮助(令人惊讶),但是被引用的空对象是Azure订阅;我假设异常是从cmdlet中冒出的,而不是由您自己的代码引发的。通过在我的代码中添加以下三行:

$cert = Get-AutomationCertificate -Name $automationCertificateName;
Set-AzureSubscription -SubscriptionName $subName -Certificate $cert -SubscriptionId $subID;
Select-AzureSubscription -Current $subName;

我能够克服这个例外。上面,
$automationCertificateName
是我添加到自动化帐户的可变资产。有关如何设置的详细信息,请参阅。

以下是我如何成功创建连接上下文的:

$sqlServerUser = "test-user"
$sqlServerUserPassword = "P@$$w0rd"
$sqlServerName = "mysqlserver"

$sqlCred = New-Object System.Management.Automation.PSCredential($sqlServerUser, ($sqlServerUserPassword | ConvertTo-SecureString -asPlainText -Force))
$sqlContext = New-AzureSqlDatabaseServerContext -ServerName $sqlServerName -Credential $sqlCred

请查看此内容。

您正在使用的Microsoft Azure PowerShell版本是什么?此版本是否始终可复制?是的,始终可复制。版本:1.0.3名称:Azure作者:Microsoft Corporation PowerShellVersion:3.0有趣的是,它在runbook中成功运行。。Azure版本1.0.1。显然,这与v1.0.3和/或本地机器有关。
$sqlServerUser = "test-user"
$sqlServerUserPassword = "P@$$w0rd"
$sqlServerName = "mysqlserver"

$sqlCred = New-Object System.Management.Automation.PSCredential($sqlServerUser, ($sqlServerUserPassword | ConvertTo-SecureString -asPlainText -Force))
$sqlContext = New-AzureSqlDatabaseServerContext -ServerName $sqlServerName -Credential $sqlCred