Как получить путь к активному SQL Server - PullRequest
0 голосов
/ 20 марта 2019

Как вы спросите PowerShell по следующему пути:

C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER

Если я открою PowerShell и выполню следующую команду:

Set-Location SQLSERVER:\SQL

PowerShell изменит мое местоположение на SQLServer. Я хочу физический путь к этому SQLServer

Я хочу написать сценарий для команды db restore в студии управления SQL-сервером.

enter image description here

Выше приведен код SQL, который автоматически генерируется из диалогового окна db Management Management Server Restore:

enter image description here

enter image description here

1 Ответ

1 голос
/ 21 марта 2019

Все это хранится в реестре для путей к каталогам, и вы можете получить его с помощью Get-ItemPropertyValue.Сначала вы должны найти имя экземпляра, который работает на вашем сервере.

$InstanceName=Get-ItemPropertyValue -Path 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL' -Name 'MSSQLServer'

Как только вы это сделаете, вы можете легко получить остальное с помощью ключа установки для этого экземпляра:

$BackupDir     = Get-ItemPropertyValue -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$InstanceName\MSSQLServer" -Name 'BackupDirectory'
$RootDataDir   = Get-ItemPropertyValue -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$InstanceName\Setup" -Name 'SQLDataRoot'
$MasterDataDir = Get-ItemPropertyValue -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$InstanceName\MSSQLServer\Parameters" -Name 'SQLArg0' | ForEach-Object {$_.Substring(2)}
$MasterLogsDir = Get-ItemPropertyValue -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$InstanceName\MSSQLServer\Parameters" -Name 'SQLArg2' | ForEach-Object {$_.Substring(2)}

Последние два значения имеют несколько дополнительных символов перед путем, поэтому яобрезав их, вы можете дважды проверить правильность своих значений после получения значений.Если вам нужны другие пути, просто поищите в реестре ключи MSSQLServer и Setup, чтобы найти то, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...