На машине с SQL Server 2012 я использую следующий сценарий Powershell для получения настроенного каталога резервных копий:
$srv = New-Object Microsoft.SqlServer.Management.Smo.Server("localhost")
$BackupDirectory = $srv.Settings.BackupDirectory
Write-Host $BackupDirectory
При запуске того же сценария на машине с SQL Server 2014 результат пустой. Однако через SQL Management Studio я вижу, что каталог настроен правильно. Скрипт не вызывает никаких ошибок.
Что мне здесь может не хватать?
Причина, по которой скрипт ничего не вернул, заключалась в том, что моему пользователю Windows не разрешили войти на серверный экземпляр SQL. Я не узнал этого, так как другие приложения используют свои выделенные логины.
Adter добавив пользователя Windows, сценарий работает нормально.
Одна из причин, по которой значение пустое - это , когда у вас нет прав на доступ к экземпляру, к которому вы подключаетесь. Значение для $BackupHistory
пустое.
Убедитесь, что вы подключаетесь к правильному экземпляру:
$srv = New-Object Microsoft.SqlServer.Management.Smo.Server("<host_name>\<instance_name>")
или к экземпляру по умолчанию:
$srv = New-Object Microsoft.SqlServer.Management.Smo.Server("<host_name>")
Например, к экземпляру с именем 2014INSTANCE
при локальной установке SQL-сервера с несколькими экземплярами:
$srv = New-Object Microsoft.SqlServer.Management.Smo.Server("localhost\2014INSTANCE")
Остальное утверждение должно работать так, как задумывалось.
.