@KJIayD

Ошибка при обращении sl «SQLSERVER:\». Как исправить?

Доброго времени суток.

При исполнение части скрипта:
#Делаем бэкап всех баз в ранее созданую папку
sl "SQLSERVER:\sql\1cserver\sqlexpress\databases"
foreach($database in (Get-ChildItem)) {
 $dbName = $database.Name
 Backup-SqlDatabase -Database $dbName -BackupFile "c:\db\$current\$dbName.bak"
 }

выдает ошибку
sl : Не удалось найти диск. Диск с именем "SQLSERVER" не существует.
C:\script\Backup_MSSQL_day.ps1:11 знак:1
+ sl "SQLSERVER:\sql\1cserver\sqlexpress\databases"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (SQLSERVER:String) [Set-Location], DriveNotFoundException
    + FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.SetLocationCommand
 
Backup-SqlDatabase : Не удалось разрешить путь "SQLSERVER:\" в объект типа "Microsoft.SqlServer.Management.Smo.Server". Поместите расположение в правильный контекст или воспользуйтесь параме
тром Path для указания расположения. 
C:\script\Backup_MSSQL_day.ps1:14 знак:2
+  Backup-SqlDatabase -Database $dbName -BackupFile "c:\db\$current\$dbName.bak"
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (SQLSERVER:\:String) [Backup-SqlDatabase], SqlPowerShellContextException
    + FullyQualifiedErrorId : ContextError,Microsoft.SqlServer.Management.PowerShell.BackupSqlDatabaseCommand


При этом, если в Windows PowerShell ISE после вывода ошибки нажать "Выполнить сценарий" ещё раз, то скрипт отрабатывает без проблем.

Вопрос: Почему отрабатывает со второго запуска? и как это исправить?
  • Вопрос задан
  • 425 просмотров
Пригласить эксперта
Ответы на вопрос 1
@KJIayD Автор вопроса
перед
sl "SQLSERVER:\sql\1cserver\sqlexpress\databases"
Вставил строчку
Invoke-Sqlcmd
Всё заработало. Всем спасибо.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы