2017-02-23 3 views
1

ネットワーク上のSQL Serverインスタンス名とバージョンとエディションのリストを取得する必要があります。私はManagementObjectを使用しているネットワークからのすべてのSQL Serverインスタンス

string NamespacePath = "\\\\.\\ROOT\\Microsoft\\SqlServer\\ComputerManagement12"; 
string ClassName = "SqlServiceAdvancedProperty"; 

// Create ManagementClass 
ManagementClass oClass = new ManagementClass(NamespacePath + ":" + ClassName); 
string s = string.Empty; 
string instancename = string.Empty; 

// Get all instances of the class and enumerate them 
foreach (ManagementObject oObject in oClass.GetInstances()) 
{   
    instancename = instancename + Convert.ToString(oObject["ServiceName"]); 
} 

は、私はSQL Serverの、上記のコードを使用してネットワークからのバージョンとエディションのすべてのインスタンスを取得することができます次のコードを試してみましたか?

SQL Serverのインスタンスとエディションのリストを手に入れることができますか?

+0

出力結果SQLCMD -L(またはosql -L)は、ローカルネットワーク内のすべてのサーバーを一覧表示します。リストにあるすべてのサーバのリスト/ドメインログインにあるすべてのサーバへのログインが有効な場合は、各サーバでquery select @@ versionを実行するだけです。あなたの例のように、MMCの呼び出しにも権利が必要です – vitalygolub

+0

sqlserverの資格情報がありません。 sqlserverインスタンス名、バージョン、およびエディションのリストを取得するだけです。 WMIとC#コードを使用して情報を取得する方法を知っている人はいますか? –

答えて

1

はこの記事を参照してください言及するhttp://msdn.microsoft.com/en-us/library/dd981032.aspx

だけの事は記事のコードサンプルは、すべてのSQL Server 2008およびSQL Server 2005個のインスタンスを検出するために、SQL Server 2008のWMIプロバイダを使用しています。検出されたインスタンスごとに、コードは結果の各インスタンスのエディションとバージョンをリストします。 SQL20のComputerManagement11、SQL2014のComputerManagement12、SQL2016のComputerManagement13を確認する必要があります。

関連する問題