Powershell/@우주인

[MSSQL]WMI for SQL Management(2)-ClientNetworkProtocol

알 수 없는 사용자 2010. 10. 5. 06:00

이번엔 ClientNetworkProtocol Class에 대해 알아보겠습니다.
ClientNetworkProtocol
Client 의 네트워크 접속 프로토콜의 정의와 우선순위를 결정하는 클래스입니다.

지난번과 같이 WMIObject ClientNetworkProtocol 클래스를 가져와 볼까요

Get-WmiObject -namespace root\Microsoft\SqlServer\ComputerManagement10 -class ClientNetworkProtocol | Select-Object ProtocolName, ProtocolDisplayName, ProtocolOrder



저 같은 경우 로컬에 SQL이 깔려있기 때문에 우선순위 첫번째가 메모리로 나오네요
원격인 경우 TCP 1 로 보입니다. 참고로 ProtocolOrder 0은 비사용중임을 나타냅니다.



 이 클래스의 메소드들은..

Get-WmiObject -namespace root\Microsoft\SqlServer\ComputerManagement10 -class ClientNetworkProtocol |
Get-Member -memberType Method | Select-Object Name



이와 같이 프로토콜의 사용여부와 우선순위를 설정하는 메소드들입니다.



위에 메소드를 이용한 아래의 간단한 스크립트는 Named Pipes 를 비사용으로 바꾸는 역할을 합니다.

$WClientNetProtol=Get-WmiObject –namespace root\Microsoft\SqlServer\ComputerManagement10 -class ClientNetworkProtocol -filter "ProtocolName='np'"
$WClientNetProtol.SetDisable()



Named Pipes가 비사용중으로 바뀌었네요



ClientNetworkProtocol의 속성 변경을 원할 경우 ClientNetworkProtocolProperty 클래스를 이용하시면 됩니다.

살짝 살펴보면 ..

Get-WmiObject -namespace root\Microsoft\SqlServer\ComputerManagement10 -class

ClientNetworkProtocolProperty | Select-Object PropertyName, PropertyNumVal, PropertyStrVal,ProtocolName


기본접속 포트가 1433으로 설정되어 있네요


 아래는 TCP/IP 프로토콜의 기본접속 포트를 1433에서 15886로 변경하는 스크립트입니다.

$WClientNetProto=Get-WmiObject –namespace root\Microsoft\SqlServer\ComputerManagement10 –class
ClientNetworkProtocolProperty -filter "PropertyName='Default Port'"

$ WClientNetProto.SetNumericalValue(15886)


참고: SQL Server Administration with Windows PowerShell

원본: http://vstarmanv.tistory.com/entry/MSSQLWMI-for-SQL-Management2