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:
|
Fix:
|
||||||
- PowerShell è case-insensitive: le variabili locali "$files" sovrascrivevano "$Files" (hashtable globale).
|
- 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.
|
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
|
$sqlcmd = Resolve-Sqlcmd
|
||||||
if (-not $sqlcmd) { throw "sqlcmd.exe non trovato (PATH o Client Tools mancanti)." }
|
if (-not $sqlcmd) { throw "sqlcmd.exe non trovato (PATH o Client Tools mancanti)." }
|
||||||
Write-Log INFO "sqlcmd: $sqlcmd
|
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 ---
|
|
||||||
|
|
||||||
"
|
|
||||||
|
|
||||||
$dbList = @()
|
$dbList = @()
|
||||||
if (@($DbInclude).Count -gt 0) {
|
if (@($DbInclude).Count -gt 0) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user