skibenko_v
@skibenko_v
jun DevOps

Почему PS неполностью отрабатывает скрипт?

spoiler

$CurrentDate = Get-Date
$TargetFolder = "C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Backup\"
$DeadDate = $CurrentDate.AddDays(-5)
$NameDate = Get-Date -Format {dd-MM-yyyy-HHmm}
$SQLpathBackup = "C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Backup\"

$CredFSSRV = New-Object System.Management.Automation.PSCredential ("sys\1", $(ConvertTo-SecureString "1" -AsPlainText -Force))
new-psdrive -name A -psprovider FileSystem -root \\fssrv\1\databases -Credential $CredFSSRV
$DistFolder = "A:\"

function BackupDB {

		param (
			$DBNAME
		)
    Remove-Item -Path $($SQLpathBackup + $DBNAME + ".bak") 
	Backup-SqlDatabase -ServerInstance "127.0.0.1" -Database $DBNAME -CompressionOption On -BackupFile $($SQLpathBackup + $DBNAME + ".bak")
	Copy-Item -Path $($TargetFolder + $DBNAME + ".bak") -Destination $($DistFolder + $DBNAME + "\" + $DBNAME + "_" + $NameDate + ".bak") -Force
    GCI -Path $($DistFolder + $DBNAME) -Recurse | Where-Object {$_.CreationTime -LT $DeadDate} | RI -Recurse -Force
}

1BackupDB -DBNAME dev-data
2BackupDB -DBNAME app-hom
3BackupDB -DBNAME mdt-data
4BackupDB -DBNAME training

Скрипт выполняется от имени системы, но ps отрабатывает его не полностью: лишь удаление старых бд, а создание новых — нет.
  • Вопрос задан
  • 199 просмотров
Решения вопроса 1
@MaxKozlov Куратор тега PowerShell
Запишите ошибку в файл и изучайте
Может у вашего система прав нет, например. Или инстанс, действительно, нужен в другом формате
Start-transcript в начале
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@NortheR73
системный инженер
Backup-SqlDatabase -ServerInstance "127.0.0.1" -Database $DBNAME -CompressionOption On -BackupFile $($SQLpathBackup + $DBNAME + ".bak")
эту команду вручную пробовали запускать? Если правильно помню - параметр ServerInstance должен иметь вид "Computer\Instance"
$SQLpathBackup + $DBNAME + ".bak"
вот это дело я бы один раз вычислял в начале функции через Join-Path и подставлял в нужных местах
Ответ написан
Ваш ответ на вопрос

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

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