Предполагая, что у вас есть привилегии, T-SQL и использование объектов управления SQL Server (SMO) могут быть наилучшим выбором. Ссылки изобилуют запуском T-SQL или использованием SMO от PowerShell, including this one.
Пример использования T-SQL
# Download and dot source Invoke-Sqlcmd2
# source - https://raw.githubusercontent.com/RamblingCookieMonster/PowerShell/master/Invoke-Sqlcmd2.ps1
. "\\Path\To\Invoke-Sqlcmd2.ps1"
#Run sp_databases, among other options, against your SQL servers.
"Server1", "Server2\NamedInstance" |
Invoke-Sqlcmd2 -query "Sp_databases" -AppendServerInstance
Пример использования SQL SMO
#Download, install components from SQL feature pack:
# SQLSysClrTypes, SharedManagementObjects, optionally PowerShellTools
# http://www.microsoft.com/en-us/download/details.aspx?id=42295
#One of several ways to load one of the SMO binaries
[Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo")
#Connect to the server with integrated Windows auth
$Connection = New-Object "Microsoft.SqlServer.Management.Smo.Server" -ArgumentList Server1
#List the databases
$Connection.Databases
#List the names of the databases
$Connection.Databases | Select -ExpandProperty Name
Наконец, это звучит, как вы связаны с открытием. Прежде чем искать отдельные базы данных, вы можете рассмотреть возможность поиска экземпляров SQL, которые затем можно было бы расследовать в каждом конкретном случае. Boe Prox написал Get-SQLInstance, который требует только привилегий реестра и будет переплевывать имена экземпляров SQL, версию SQL и другую полезную информацию.
Я исследую это! Я не мог найти это, когда искал. Спасибо. – krmarshall87