2014-09-09 2 views
0

1) Je cherche un moyen au sein d'un programme VB.Net/ADO.Net de déterminer si et quel port une instance nommée de Microsoft SQL utilise sans avoir recours à une clé de registre (trop d'endroits différents à regarder), à un journal des événements piraté (peu fiable) ou à l'ouverture de SQL Configuration Manager (encore une fois, j'ai besoin de faire ceci est un programme).Déterminer le port que SQL utilise ou le définir si nécessaire via le programme

2) Si je détermine que SQL n'est pas configuré pour utiliser TCP, existe-t-il un moyen fiable via VB.Net/ADO.Net pour activer TCP/IP et définir un port? Dans les deux cas, ces fonctions seraient exécutées avec des privilèges élevés pendant une configuration.

Répondre

0

Je fais mon métier en PowerShell, mais vous devriez être capable de le traduire plutôt bien. NB: dans mes tests, les clés de hachage (par exemple, 'MSSQLSERVER', 'Tcp') étaient sensibles à la casse.

$machine = new-object Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer '.' 
$t = $machine.ServerInstances['MSSQLSERVER'].ServerProtocols['Tcp'] 
$t.IsEnabled = $true; #enable TCP 
$port = $t.IPAddresses['IPAll'].IPAddressProperties['TcpPort']; 
if ($port.Value -ne '1433') { 
    $port.Value = '1434'; #or whatever port you want to set it to 
} 
$t.alter(); 
Questions connexes