Aracılığıyla paylaş


Nasıl Yapılır: Etkinleştirme veya bir sunucu ağ protokol'nı (SQL Server PowerShell) devre dışı bırakma

TCP ve adlandırılmış yöneltmeler ağ iletişim kuralları tarafından yüklenir SQL Server Kur, ancak etkin. Ağ iletişim kuralları etkinleştirilmiş veya aşağıdaki PowerShell Komut dosyaları kullanarak veya devre dışı SQL Server Yapılandırma Yöneticisi'nde. Durdurun ve yeniden başlatmak gerekir SQL Server Database Engine değişikliklerin etkili olması için protokol için.

PowerShell hakkında genel bilgi için bkz: SQL Server PowerShell genel bakış. Iletişim kurallarını kullanarak yönetme hakkında daha fazla bilgi için SQL Server Yapılandırma Yöneticisi için bkz: Nasıl Yapılır: Etkinleştirme veya bir sunucu ağ protokol'nı (SQL Server yapılandırma Manager) devre dışı bırakma.

The SQL Server PowerShell (SQLPS.exe) utility starts a PowerShell oturum with the SQL Server PowerShell sağlayıcı and cmdlets loaded and registered. PowerShell (PowerShell.exe) yerine çalışırken SQL Server PowerShell, ilk yürütmek el ile gerekli birleştirmelerini yüklemek için aşağıdaki ifadeleri.

# Load the assemblies
[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo")
[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.SqlWmiManagement")

Aşağıdaki komut, iletişim kurallarını etkinleştir.Iletişim kuralları'nı devre dışı bırakmak için IsEnabled özellikleri $false.

Sunucu bir ağ protokol, SQL Server PowerShell kullanarak etkinleştirmek için

  1. Yönetici izinleri Aç'ı kullanarak bir komut istemi isteminde.

  2. Başlatmak için SQL Server PowerShell, komut istemi istemine yazın... sqlps.exe.

  3. Her iki TCP etkinleştirmek için aşağıdaki ifadeleri yürütmek ve kanallar iletişim kuralları adlandırılmış.replace <computer_name> çalışan bir bilgisayarın adıyla SQL Server. Adlandırılmış bir örneğine yapılandırıyorsanız, değiştirme MSSQLSERVER örnek adı ile.

    $smo = 'Microsoft.SqlServer.Management.Smo.'
    $wmi = new-object ($smo + 'Wmi.ManagedComputer').
    
    # List the object properties, including the instance names.
    $Wmi
    
    # Enable the TCP protocol on the default instance.
    $uri = "ManagedComputer[@Name='<computer_name>']/ ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Tcp']"
    $Tcp = $wmi.GetSmoObject($uri)
    $Tcp.IsEnabled = $true
    $Tcp.Alter()
    $Tcp
    
    # Enable the named pipes protocol for the default instance.
    $uri = "ManagedComputer[@Name='<computer_name>']/ ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Np']"
    $Np = $wmi.GetSmoObject($uri)
    $Np.IsEnabled = $true
    $Np.Alter()
    $Np
    

Yerel bilgisayar için protokolleri yapılandırmak için

  • Komut dosyası yerel olarak çalıştırılır ve yerel bilgisayarı yapılandırır. SQL Server PowerShell Komut dosyası daha esnek dinamik olarak yerel bilgisayar adını belirleme yapabilirsiniz. Yerel bilgisayar adını almak için , satır ayarı Değiştir $uri aşağıdaki satırı içeren değişken.

    $uri = "ManagedComputer[@Name='" + (get-item env:\computername).Value + "']/ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Tcp']"
    

Veritabanı Altyapısı SQL Server PowerShell kullanarak yeniden başlatın.

  • Etkinleştirmek veya iletişim kuralları'nı devre dışı sonra durdurmak yeniden başlatın ve gerekir Database Engine değişikliğin etkili olması için. Varsayılan örnek kullanarak başlatmak için aşağıdaki ifadeleri yürütmek SQL Server PowerShell. Bir adlandırılmış örnek Değiştir'i başlatmak için 'MSSQLSERVER' With 'MSSQL$<instance_name>'.

    # Get a reference to the ManagedComputer class.
    CD SQLSERVER:\SQL\<computer_name>
    $Wmi = (get-item .).ManagedComputer
    # Get a reference to the default instance of the Database Engine.
    $DfltInstance = $Wmi.Services['MSSQLSERVER']
    # Display the state of the service.
    $DfltInstance
    # Stop the service.
    $DfltInstance.Stop();
    # Wait until the service has time to stop.
    # Refresh the cache.
    $DfltInstance.Refresh(); 
    # Display the state of the service.
    $DfltInstance
    # Start the service again.
    $DfltInstance.Start();
    # Wait until the service has time to start.
    # Refresh the cache and display the state of the service.
    $DfltInstance.Refresh(); $DfltInstance