Freigeben über


Problembehandlung bei der Sicherheit

 

Gilt für: Windows Azure Pack

In diesem Thema wird die Behandlung von Problemen im Zusammenhang mit Der Sicherheit und Authentifizierung in Windows Azure Pack für Windows Server beschrieben. Viele Probleme können behoben werden, indem Sie die Prüfliste für Anmeldeinformationen in diesem Thema lesen. Es werden Empfehlungen für die folgenden Probleme bereitgestellt:

  • Setzen Sie nach der Integration von AD FS das Verwaltungsportal zurück, um AD zu verwenden.

  • Nach der Integration von AD FS kann nicht mehr auf das Mandantenportal zugegriffen werden.

  • Abrufen eines Tokens mit dem Cmdlet Get-MgmtSvcToken

  • Programmgesteuertes Verwenden von Mandantenzertifikaten

  • Ersetzen eines selbstsignierten Zertifikats durch ein vertrauenswürdiges Zertifikat

  • Beheben von Zertifikatwarnungen

  • Anmelden beim Verwaltungsportal über mehrere Konten

  • Überprüfen der SSL/TLS-Einstellungen

Prüfliste für Anmeldeinformationen

Die folgende Checkliste enthält bewährte Methoden zum Konfigurieren von Zertifikaten, Benutzernamen und Kennwörtern für Windows Azure Pack und die produkte und anbieter, die es verwendet.

  • Für Tests oder Nicht-Internet-bezogene Komponenten wie das Verwaltungsportal für Administratoren oder die Admin-API können Sie die Microsoft-Zertifizierungsstelle verwenden, um selbstsignierte Zertifikate zu erstellen.

  • Verwenden Sie für Komponenten mit Internetzugriff, z. B. das Verwaltungsportal für Mandanten und die öffentliche Mandanten-API, eine vertrauenswürdige öffentliche Zertifizierungsstelle.

  • Konfigurieren Sie die Anwendungspoolidentitäten für Service Provider Foundation in Internetinformationsdienste (IIS) auf dem Server, auf dem Service Provider Foundation ausgeführt wird, so dass sie das Konto für Domänenbenutzeranmeldeinformationen verwenden. Die Verwendung von Netzwerkdiensten wird nicht empfohlen.

  • Konfigurieren Sie die Anwendungspoolidentitäten auf den Servern, auf denen System Center 2012 R2 Virtual Machine Manager und Service Provider Foundation ausgeführt wird, um dasselbe Domänenkonto zu verwenden, das über Anmelde-als-Dienst-Rechte verfügt.

  • Konfigurieren Sie Service Provider Foundation für die Verwendung der Standardauthentifizierung in IIS.

  • Konfigurieren Sie ein lokales Benutzerkonto mit Administratorrechten, um Mitglied der VMM-, Admin-, Anbieter- und Nutzungsgruppen auf dem Server zu sein, auf dem Service Provider Foundation ausgeführt wird. Verwenden Sie dieses lokale Benutzerkonto, um den Service Provider Foundation-Endpunkt bei Windows Azure Pack für Windows Server zu registrieren.

Weitere Informationen finden Sie im Blogbeitrag Problembehandlung für Windows Azure Pack, Service Provider Foundation & Virtual Machine Manager. Eine Übersicht über die Service Provider Foundation-Webdienste finden Sie unter Verwalten von Webdiensten und Connections in Service Provider Foundation. Siehe auch Übersicht über die Windows Azure Pack-Authentifizierung.

Nach der Integration von AD FS kann nicht mehr auf das Mandantenportal zugegriffen werden.

Bezieht sich auf: Konfigurieren Active Directory-Verbunddienste (AD FS) für Windows Azure Pack

Problem

Der Mandantenanmeldebildschirm wird nach dem Konfigurieren von AD FS (Active Directory-Verbunddienste (AD FS)) nicht angezeigt oder kann nicht auf das Verwaltungsportal für Mandanten zugreifen.

Empfehlung

Nachdem Sie AD FS in der Domäne integriert haben, in der Windows Azure Pack installiert ist, wird die Anmeldeseite direkt zum Portal umgangen. Dies ist das erwartete Browserverhalten.

Wenn Sie nicht auf das Verwaltungsportal für Mandanten zugreifen können, verwenden Sie Server-Manager, um ADSI-Bearbeitung auszuführen, und überprüfen Sie, ob Ihr AD SF-Server über einen Dienstprinzipalnamen (Service Principal Name, SPN) verfügt. Der SPN sollte in der Form http/myADFSServer vorliegen.

Nach oben

Setzen Sie nach der Integration von AD FS das Verwaltungsportal zurück, um AD zu verwenden.

Bezieht sich auf: Konfigurieren Active Directory-Verbunddienste (AD FS) für Windows Azure Pack

Problem

Nach der Integration von Active Directory-Verbunddienste (AD FS) (AD FS) möchten Sie zur Verwendung von Active Directory (AD) für das Verwaltungsportal zurückkehren.

Empfehlung

Sie müssen das Vertrauen zwischen dem Verwaltungsportal für Administratoren und der Windows-Authentifizierung-Website wie bei AD FS wiederherstellen. Der Windows-Authentifizierung Standort ist Port 30072. Sie können die Windows PowerShell Cmdlets Set-MgmtSvcRelyingPartySettigns und Set-MgmtSvcIdentityProviderSettings verwenden.

Abrufen eines Tokens mit dem Cmdlet Get-MgmtSvcToken

Bezieht sich auf: Windows Azure Pack für Windows Server Automation mit Windows PowerShell

Problem

Der Get-MgmtSvcToken gibt das Token nicht wie erwartet zurück.

Empfehlung

Dies kann ein Problem sein, wenn das Cmdlet Get-MgmtSvcToken Active Directory-Verbunddienste (AD FS) (AD FS) nicht ordnungsgemäß verwendet. Das folgende Skript definiert die Funktion Get-AdfsToken als Problemumgehung.

function Get-AdfsToken([string]$adfsAddress, [PSCredential]$credential)
{
    $clientRealm = 'http://azureservices/AdminSite'
    $allowSelfSignCertificates = $true

    Add-Type -AssemblyName 'System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
    Add-Type -AssemblyName 'System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'

    $identityProviderEndpoint = New-Object -TypeName System.ServiceModel.EndpointAddress -ArgumentList ($adfsAddress + '/adfs/services/trust/13/usernamemixed')
    $identityProviderBinding = New-Object -TypeName System.ServiceModel.WS2007HttpBinding -ArgumentList ([System.ServiceModel.SecurityMode]::TransportWithMessageCredential)
    $identityProviderBinding.Security.Message.EstablishSecurityContext = $false
    $identityProviderBinding.Security.Message.ClientCredentialType = 'UserName'
    $identityProviderBinding.Security.Transport.ClientCredentialType = 'None'

    $trustChannelFactory = New-Object -TypeName System.ServiceModel.Security.WSTrustChannelFactory -ArgumentList $identityProviderBinding, $identityProviderEndpoint
    $trustChannelFactory.TrustVersion = [System.ServiceModel.Security.TrustVersion]::WSTrust13

    if ($allowSelfSignCertificates)
    {
        $certificateAuthentication = New-Object -TypeName System.ServiceModel.Security.X509ServiceCertificateAuthentication
        $certificateAuthentication.CertificateValidationMode = 'None'
        $trustChannelFactory.Credentials.ServiceCertificate.SslCertificateAuthentication = $certificateAuthentication
    }

    $ptr = [System.Runtime.InteropServices.Marshal]::SecureStringToCoTaskMemUnicode($credential.Password)
    $password = [System.Runtime.InteropServices.Marshal]::PtrToStringUni($ptr)
    [System.Runtime.InteropServices.Marshal]::ZeroFreeCoTaskMemUnicode($ptr)

    $trustChannelFactory.Credentials.SupportInteractive = $false
    $trustChannelFactory.Credentials.UserName.UserName = $credential.UserName
    $trustChannelFactory.Credentials.UserName.Password = $password #$credential.Password

    $rst = New-Object -TypeName System.IdentityModel.Protocols.WSTrust.RequestSecurityToken -ArgumentList ([System.IdentityModel.Protocols.WSTrust.RequestTypes]::Issue)
    $rst.AppliesTo = New-Object -TypeName System.IdentityModel.Protocols.WSTrust.EndpointReference -ArgumentList $clientRealm
    $rst.TokenType = 'urn:ietf:params:oauth:token-type:jwt'
    $rst.KeyType = [System.IdentityModel.Protocols.WSTrust.KeyTypes]::Bearer

    $rstr = New-Object -TypeName System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse

    $channel = $trustChannelFactory.CreateChannel()
    $token = $channel.Issue($rst, [ref] $rstr)

    $tokenString = ([System.IdentityModel.Tokens.GenericXmlSecurityToken]$token).TokenXml.InnerText;
    $result = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($tokenString))
    return $result
}

# Fill in values
$adfsAddress = 'https://adfshost'
$username = 'domain\username'
$password = 'password'
$securePassword = ConvertTo-SecureString -String $password -AsPlainText -Force
$credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username,$securePassword

$token = Get-AdfsToken -adfsAddress $adfsAddress -credential $credential 
$token

Nach oben

Programmgesteuertes Verwenden von Mandantenzertifikaten

Bezieht sich auf: Service Provider Foundation-Entwicklerhandbuch

Problem

Sie müssen ein Zertifikat erstellen und es in das Verwaltungsportal für Mandanten hochladen und es dann programmgesteuert verwenden können.

Empfehlung

Gehen Sie dazu wie folgt vor:

  1. Erstellen Sie ein Zertifikat (es kann selbstsigniert sein). Es sollte über eine .cer Dateierweiterung verfügen.

  2. Klicken Sie im Verwaltungsportal für Mandanten auf der Seite Mein Konto auf Verwaltungszertifikate.

  3. Übergeben Sie das Zertifikat im Header der Anforderung zur Authentifizierung an die öffentliche Mandanten-API, wie im folgenden Beispiel gezeigt.

    Hinweis

    Sie können nur auf das Abonnement zugreifen, dem dieses Zertifikat zugewiesen ist. Sie können das Abonnement nicht über die öffentliche Mandanten-API löschen.

    X509Certificate2 mycert3 = new X509Certificate2("C:\\WorkDocs\\Test\\Management Certs\\myCert.cer");
    HttpClient httpClient = new HttpClient();
    var handler = new WebRequestHandler();
    handler.ClientCertificates.Add(mycert3);
    handler.PreAuthenticate = true;
    httpClient = new HttpClient(handler);
    
    string tenantPublicEndpoint = "https://test.fabrikam.com:30006/";
    string subscriptionid = " 7d31eb89-bb1e-4b16-aa3c-993f978b6bc1";
    
    string subscriptionEndpoint = tenantPublicEndpoint + subscriptionid+ "/services/webspaces/defaultwebspace/sites";
    var response = httpClient.GetAsync(subscriptionEndpoint);
    var resultsStr = response.Result.Content.ReadAsStringAsync().Result;
    

Nach oben

Ersetzen eines selbstsignierten Zertifikats durch ein vertrauenswürdiges Zertifikat

Bezieht sich auf: Verwalten von Windows Azure Pack für Windows Server

Problem

Nachdem Sie ein selbstsigniertes Zertifikat für eine Testumgebung verwendet haben, möchten Sie das Zertifikat durch ein Zertifikat ersetzen, das von einer vertrauenswürdigen Zertifizierungsstelle ausgestellt wird.

Empfehlung

Installieren Sie das Zertifikat im persönlichen Speicher des lokalen Computers, und ordnen Sie das Zertifikat jeder Website im Internetinformationsdienste-Manager (IIS) zu. Das Zertifikat sollte die folgenden Anforderungen erfüllen:

  • Von einer vertrauenswürdigen Zertifizierungsstelle stammen

  • Gültiger Datumsbereich

  • Bereitstellen einer gültigen Nutzungs- und Bestimmungsbestimmung

  • Bereitstellen der Serverauthentifizierung

  • Übereinstimmung des Domänennamens des Zertifikats mit dem Namen der Website

  • Eine RSA-1024-Bit-Verschlüsselung oder höher

  • Einschließen des privaten Schlüssels

Nach oben

Beheben von Zertifikatwarnungen

Bezieht sich auf: Bereitstellen von Windows Azure Pack für Windows Server

Problem

Zertifikatwarnungen bleiben beim Zertifikat einer vertrauenswürdigen Zertifizierungsstelle erhalten.

Empfehlung

Einige Browser verarbeiten das Feld "Zugriff auf Autoritätsinformationen", das sich während der Zertifikatüberprüfung im Zertifikat befindet. Die Problemumgehung besteht darin, die Zwischenzertifikate explizit im Zertifikatspeicher zu installieren. Eine Liste der Zertifizierungsstellen, die dieses Feld unterstützen, finden Sie unter Windows und Windows Phone 8 SSL Root Certificate Program (Member CAs).

Nach oben

Überprüfen der SSL/TLS-Einstellungen

Bezieht sich auf: Bereitstellen von Windows Azure Pack für Windows Server

Problem

Eine schwache Kommunikationssicherheit kann dazu führen, dass im Systemereignisprotokoll eine Flut von Schannel-Fehlern angezeigt wird.

Empfehlung

Um die Sicherheit von Windows Azure Pack-Kommunikationskanälen zu verbessern, sollten Sie erwägen, Ihre SSL/TLS-Einstellungen zu aktualisieren. Bevor Sie diese Änderungen implementieren, sollten Sie sicherstellen, dass sie sich nicht auf andere Anwendungen oder Dienste auswirken.

Sie können das folgende Skript auf jedem Computer ausführen, auf dem Windows Azure Pack ausgeführt wird, um diese Änderungen für Sie vorzunehmen:

# PowerShell script to secure TLS/SSL settings.
# Copyright (c) Microsoft Corporation. All rights reserved.
# 20-Jun-2015 Update-ComputerSchannelSettings.ps1

<#
.Synopsis
   Apply HTTP.SYS settings
.NOTES
   Reference: Http.sys registry settings for Windows
   https://support.microsoft.com/en-us/kb/820129
#>
function Set-HttpSysSettings()
{
    Write-Verbose -Message "$($Myinvocation.MyCommand.Name)" -Verbose

    $regPath = "HKLM:\System\CurrentControlSet\Services\HTTP\Parameters"

    # Read original values.
    $maxFieldLength = (Get-ItemProperty -Path $regPath -Name MaxFieldLength -ErrorAction SilentlyContinue).MaxFieldLength
    $maxRequestBytes = (Get-ItemProperty -Path $regPath -Name MaxRequestBytes -ErrorAction SilentlyContinue).MaxRequestBytes
    Write-Verbose -Message "HTTP.SYS settings:`r`n  MaxFieldLength = $maxFieldLength`r`n  MaxRequestBytes = $maxRequestBytes" -Verbose

    # Is update needed?
    if ($maxFieldLength -ne 32KB -or $maxRequestBytes -ne 32KB)
    {
        # Write updated values.
        Set-ItemProperty -Path $regPath -Name MaxFieldLength -Value 32KB
        Set-ItemProperty -Path $regPath -Name MaxRequestBytes -Value 32KB

        # Read updated values.
        $maxFieldLength = (Get-ItemProperty -Path $regPath -Name MaxFieldLength).MaxFieldLength
        $maxRequestBytes = (Get-ItemProperty -Path $regPath -Name MaxRequestBytes).MaxRequestBytes
        Write-Verbose -Message "HTTP.SYS settings (updated):`r`n  MaxFieldLength = $maxFieldLength`r`n  MaxRequestBytes = $maxRequestBytes" -Verbose

        # Changes that are made to the registry will not take effect until you restart the HTTP service.
        Write-Warning -Message "HTTP.SYS settings updated; restarting the HTTP service."
        Restart-Service -Name "http" -Force -Verbose
    }

    return $false # No reboot needed.
}

<#
.Synopsis
   Apply SSL configuration settings (TLS Cipher Suite Ordering)
.NOTES
   Reference: Prioritizing Schannel Cipher Suites
   https://msdn.microsoft.com/en-us/library/windows/desktop/bb870930(v=vs.85).aspx
#>
function Set-SchannelCipherOrder()
{
    Write-Verbose -Message "$($Myinvocation.MyCommand.Name)" -Verbose
    $reboot = $false

    $regPath = "HKLM:\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002"

    # The ordered suites names need to be specified as a single string (REG_SZ)
    # with each suite separated by commas and with no embedded spaces.
    # The list of cipher suites is limited to 1023 characters.
    $cipherOrder = @(
        'TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384'
        'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256'
        'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384'
        'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256'
        'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384'
        'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256'
        'TLS_RSA_WITH_AES_256_GCM_SHA384'
        'TLS_RSA_WITH_AES_128_GCM_SHA256'
        'TLS_RSA_WITH_AES_256_CBC_SHA256'
        'TLS_RSA_WITH_AES_128_CBC_SHA256'
        'TLS_RSA_WITH_AES_256_CBC_SHA'
        'TLS_RSA_WITH_AES_128_CBC_SHA'
    )
    $cipherOrderList = ($cipherOrder -join ',')

    # Read original values.
    $functions = (Get-ItemProperty -Path $regPath -Name Functions -ErrorAction SilentlyContinue).Functions
    Write-Verbose -Message "Schannel Cipher Order:`r`n  Functions = $($functions -split ',' | ConvertTo-Json)" -Verbose

    # Is update needed?
    if ($functions -ne ($cipherOrder -join ','))
    {
        # Write updated values.
        Set-ItemProperty -Path $regPath -Name Functions -Value $cipherOrderList -Force

        # Read updated values.
        $functions = (Get-ItemProperty -Path $regPath -Name Functions -ErrorAction SilentlyContinue).Functions
        Write-Verbose -Message "Schannel Cipher Order (updated):`r`n  Functions = $($functions -split ',' | ConvertTo-Json)" -Verbose

        # It is necessary to restart the computer after modifying this setting for the changes to take effect.
        Write-Warning -Message "Schannel Cipher Order updated; it is necessary to restart the computer."
        $reboot = $true ### TODO: Restart-Computer -Force -Verbose
    }

    return $reboot
}
<#
.Synopsis
   Apply TLS Protocol version configuration
.NOTES
   Reference: How to Disable SSL 3.0 in Azure Websites, Roles, and Virtual Machines
   https://azure.microsoft.com/blog/2014/10/19/how-to-disable-ssl-3-0-in-azure-websites-roles-and-virtual-machines/
#>
function Set-SchannelProtocols()
{
    Write-Verbose -Message "$($Myinvocation.MyCommand.Name)" -Verbose
    $reboot = $false

    $regPath = "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols"
    $protocolSettings = @(
        [PSCustomObject]@{ Path = "$regPath\SSL 2.0\Client"; Name = "Enabled"; Value = 0 }
        [PSCustomObject]@{ Path = "$regPath\SSL 2.0\Server"; Name = "Enabled"; Value = 0 }
        [PSCustomObject]@{ Path = "$regPath\SSL 3.0\Client"; Name = "Enabled"; Value = 0 }
        [PSCustomObject]@{ Path = "$regPath\SSL 3.0\Server"; Name = "Enabled"; Value = 0 }
        [PSCustomObject]@{ Path = "$regPath\TLS 1.0\Client"; Name = "Enabled"; Value = 1 }
        [PSCustomObject]@{ Path = "$regPath\TLS 1.0\Server"; Name = "Enabled"; Value = 1 }
        [PSCustomObject]@{ Path = "$regPath\TLS 1.1\Client"; Name = "Enabled"; Value = 1 }
        [PSCustomObject]@{ Path = "$regPath\TLS 1.1\Server"; Name = "Enabled"; Value = 1 }
        [PSCustomObject]@{ Path = "$regPath\TLS 1.2\Client"; Name = "Enabled"; Value = 1 }
        [PSCustomObject]@{ Path = "$regPath\TLS 1.2\Server"; Name = "Enabled"; Value = 1 }
    )

    # Read original values.
    $currentProtocolSettings = @()
    foreach ($protocolSetting in $protocolSettings)
    {
        $value = (Get-ItemProperty -Path $protocolSetting.Path -Name $protocolSetting.Name -ErrorAction SilentlyContinue).$($protocolSetting.Name)
        $currentProtocolSettings += [PSCustomObject]@{ Path = $protocolSetting.Path; Name = $protocolSetting.Name; Value = $value }
    }
    Write-Verbose -Message "Schannel Protocol Settings: $($currentProtocolSettings | Format-Table -Autosize | Out-String)" -Verbose

    $observed = $currentProtocolSettings | ConvertTo-Json -Compress
    $expected = $protocolSettings | ConvertTo-Json -Compress

    # Is update needed?
    if ($observed -ne $expected)
    {
        # Create registry nodes.
        $protocolPaths = @(
            "$regPath\SSL 2.0"
            "$regPath\SSL 2.0\Client"
            "$regPath\SSL 2.0\Server"
            "$regPath\SSL 3.0"
            "$regPath\SSL 3.0\Client"
            "$regPath\SSL 3.0\Server"
            "$regPath\TLS 1.0"
            "$regPath\TLS 1.0\Client"
            "$regPath\TLS 1.0\Server"
            "$regPath\TLS 1.1"
            "$regPath\TLS 1.1\Client"
            "$regPath\TLS 1.1\Server"
            "$regPath\TLS 1.2"
            "$regPath\TLS 1.2\Client"
            "$regPath\TLS 1.2\Server"
        )
        foreach ($protocolPath in $protocolPaths)
        {
            if (-not (Get-Item -Path $protocolPath -ErrorAction SilentlyContinue))
            {
                New-Item -Path $protocolPath -ItemType Container -Force | Out-Null
            }
        }

        # Write updated values.
        foreach ($protocolSetting in $protocolSettings)
        {
            Set-ItemProperty -Path $protocolSetting.Path -Name $protocolSetting.Name -Value $protocolSetting.Value -Force
        }

        # Read updated values.
        $currentProtocolSettings = @()
        foreach ($protocolSetting in $protocolSettings)
        {
            $value = (Get-ItemProperty -Path $protocolSetting.Path -Name $protocolSetting.Name -ErrorAction SilentlyContinue).$($protocolSetting.Name)
            $currentProtocolSettings += [PSCustomObject]@{ Path = $protocolSetting.Path; Name = $protocolSetting.Name; Value = $value }
        }
        Write-Verbose -Message "Schannel Protocol Settings (updated): $($currentProtocolSettings | Format-Table -Autosize | Out-String)" -Verbose

        # It is necessary to restart the computer after modifying this setting for the changes to take effect.
        Write-Warning -Message "Schannel Protocols updated; it is necessary to restart the computer."
        $reboot = $true ### TODO: Restart-Computer -Force -Verbose
    }

    return $reboot
}

#-------------------------------------------------------------------------------
# Main

$reboot = $false
$reboot += Set-HttpSysSettings
$reboot += Set-SchannelCipherOrder
$reboot += Set-SchannelProtocols
if ($reboot)
{
    Write-Warning -Message "Restart the computer for settings to take effect."
    # TODO: Restart-Computer -Force -Verbose
}

Sie können auch SSL/TLS-Validierungstools ausführen, um andere Verbesserungsbereiche zu identifizieren.

Nach oben

Melden Sie sich über mehrere Konten beim Verwaltungsportal an

Betrifft: Windows Azure Pack für Windows Server Automation mit Windows PowerShell

Problem

Sie müssen sich über mehrere Konten beim Verwaltungsportal anmelden können.

Empfehlung

Verwenden Sie das Cmdlet Add-MgmtSvcAdminUser Windows PowerShell, um zusätzliche Prinzipale hinzuzufügen. Diese Prinzipale können explizite Benutzer oder Sicherheitsgruppen sein (wenn Ihre Token Informationen zur Sicherheitsgruppe enthalten). Im folgenden Beispiel wird ein Benutzer hinzugefügt. (Es wird davon ausgegangen, dass das Kennwort für die $pwd Variable definiert wurde.)

Add-MgmtSvcAdminUser -Server 'mysqlserver' -UserName 'sa' -Password $pwd -Principal 'user7@contoso.com'

Nach oben

Weitere Informationen

Problembehandlung für Windows Azure Pack