Доброго времени суток.
При исполнение части скрипта:
#Делаем бэкап всех баз в ранее созданую папку
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 после вывода ошибки нажать "Выполнить сценарий" ещё раз, то скрипт отрабатывает без проблем.
Вопрос: Почему отрабатывает со второго запуска? и как это исправить?