Update AdHoc-Backup.ps1
This commit is contained in:
parent
f804849937
commit
127114a7c5
@ -1,5 +1,5 @@
|
||||
<#
|
||||
Backup_AdHoc_rclone_mail_fixed_v3_fix28_grantANY.ps1
|
||||
Backup_AdHoc_rclone_mail_fixed_v3_fix26.ps1
|
||||
Fix:
|
||||
- PowerShell è case-insensitive: le variabili locali "$files" sovrascrivevano "$Files" (hashtable globale).
|
||||
Rinominati i locali in "$outFiles" e, in Write-Log, uso esplicito di $script:Files.Log per evitare collisioni.
|
||||
@ -469,35 +469,7 @@ function Backup-SqlDatabases {
|
||||
|
||||
$sqlcmd = Resolve-Sqlcmd
|
||||
if (-not $sqlcmd) { throw "sqlcmd.exe non trovato (PATH o Client Tools mancanti)." }
|
||||
Write-Log INFO "sqlcmd: $sqlcmd
|
||||
|
||||
# --- PRE-FLIGHT: Concedi a NT AUTHORITY\SYSTEM il permesso server-level 'BACKUP ANY DATABASE' ---
|
||||
try {
|
||||
$sqlLines = @(
|
||||
'USE master;'
|
||||
"IF NOT EXISTS (SELECT 1 FROM sys.server_principals WHERE name = N'NT AUTHORITY\\SYSTEM')"
|
||||
' CREATE LOGIN [NT AUTHORITY\SYSTEM] FROM WINDOWS;'
|
||||
"GRANT BACKUP ANY DATABASE TO [NT AUTHORITY\\SYSTEM];"
|
||||
)
|
||||
$sqlGrant = [string]::Join("`r`n", $sqlLines)
|
||||
$tmpGrant = Join-Path $Paths.SqlStage "grant_SYSTEM_server.sql"
|
||||
Set-Content -LiteralPath $tmpGrant -Value $sqlGrant -Encoding ASCII
|
||||
|
||||
$grantArgs = Build-SqlcmdArgs -WindowsAuth:$SqlUseWindowsAuth -User $SqlUser -Password $SqlPassword -Instance $SqlInstance -InputFile $tmpGrant
|
||||
Log-SqlcmdArgsSafe -Args $grantArgs
|
||||
& $sqlcmd @grantArgs
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
Write-Log WARN "Grant server-level BACKUP ANY DATABASE a NT AUTHORITY\\SYSTEM fallito (ExitCode=$LASTEXITCODE)."
|
||||
} else {
|
||||
Write-Log INFO "Concesso BACKUP ANY DATABASE a NT AUTHORITY\\SYSTEM (server-level)."
|
||||
}
|
||||
Remove-Item -LiteralPath $tmpGrant -Force -ErrorAction SilentlyContinue
|
||||
} catch {
|
||||
Write-Log WARN "Errore durante il pre-flight GRANT BACKUP ANY DATABASE a SYSTEM: $_"
|
||||
}
|
||||
# --- FINE PRE-FLIGHT ---
|
||||
|
||||
"
|
||||
Write-Log INFO "sqlcmd: $sqlcmd"
|
||||
|
||||
$dbList = @()
|
||||
if (@($DbInclude).Count -gt 0) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user