「インストーラー」と呼ばれるC#win Formアプリがあり、IIS、SQL Server、AVG-Freeなどのさまざまなサードパーティソフトウェアをクライアントのシステムにサイレントインストールします。私たち自身の製品と一緒に。名前付きパイプとTCP/IPプロトコルを自動的に有効にする必要があります。これには、バッチファイルを使用したSQL Server(SQLEXPRESS)サービスの再起動も必要です。またはC#がフォームアプリに勝ちます。または、適切なスイッチを提供して、コマンドラインからSQLServerをインストールしている間。
私は検索しましたが、これは非常にユニークな要件です。
質問する
6209 次
2 に答える
1
私は解決策を見つけ、それを試しました。レジストリ内のSQLServerのプロトコル情報はここに保存されます:
HKLM \ Software \ Microsoft \ Microsoft SQLServer\MSSQL10_50。MSSQLSERVER \ MSSQLServer \ SuperSocketNetLib
これはMSSQLSERVERインスタンス用です。異なるインスタンスの場合、太字のレジストリパスはそのインスタンスの名前に置き換えられます。
そのインスタンスの「SQLServerサービス」を再起動する必要があります。
于 2012-07-06T14:45:10.230 に答える
0
レジストリをいじるのを避けたい場合は、次のようにする必要があります。
sqlps
プロンプトから:
$smo = 'Microsoft.SqlServer.Management.Smo.'
$wmi = new-object ($smo + 'Wmi.ManagedComputer').
# Enable the TCP protocol on the default instance.
$uri = "ManagedComputer[@Name='" + (get-item env:\computername).Value + "']/ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Tcp']"
$Tcp = $wmi.GetSmoObject($uri)
$Tcp.IsEnabled = $true
$Tcp.Alter()
# Enable the named pipes protocol for the default instance.
$uri = "ManagedComputer[@Name='" + (get-item env:\computername).Value + "']/ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Np']"
$Np = $wmi.GetSmoObject($uri)
$Np.IsEnabled = $true
$Np.Alter()
そして、古き良きものからSQL Serverを再起動しますcmd
。
net stop MSSQLSERVER
net start MSSQLSERVER
于 2020-01-13T13:34:57.803 に答える