Все это хранится в реестре для путей к каталогам, и вы можете получить его с помощью 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, чтобы найти то, что вы ищете.