<# TPDT-287 Change the dump device location for Arizona DB to a U drive if this drive exists TSC 18.03.2024 Creation #> $instance = "(local)\APSSQL" $target_path = "U:" #This path must NOT have a trailing slash if(Test-Path -Path $target_path){ $query=@" SELECT * FROM sys.backup_devices WHERE [name] IN ( N'Arizona_Dump', N'Arizona_dump_SECU' ) AND physical_name like 'd:%' "@ $ds_dumpDevices = Invoke-Sqlcmd -ServerInstance $instance -Query $query -Database master if($ds_dumpDevices.Count -gt 0){ Write-Output "Path $target_path exists, ensuring Arizona dump devices are set to this drive" $query = @" IF EXISTS (SELECT 1 FROM [sys].[backup_devices] WHERE name='Arizona_Dump' AND [physical_name] LIKE 'D:%') BEGIN EXEC [sys].[sp_dropdevice] @logicalname = 'Arizona_Dump',@delfile = NULL; PRINT 'Dump device Arizona_Dump removed'; END IF NOT EXISTS (SELECT 1 FROM [sys].[backup_devices] WHERE name='Arizona_Dump') BEGIN EXEC master.dbo.sp_addumpdevice @devtype = N'disk', @logicalname = N'Arizona_Dump', @physicalname = N'$target_path\Arizona_Dump.bak'; PRINT 'Dump device Arizona_Dump created on U drive'; END IF EXISTS (SELECT 1 FROM [sys].[backup_devices] WHERE name='Arizona_dump_SECU' AND [physical_name] LIKE 'D:%') BEGIN EXEC [sys].[sp_dropdevice] @logicalname = 'Arizona_dump_SECU',@delfile = NULL PRINT 'Dump device Arizona_dump_SECU removed'; END IF NOT EXISTS (SELECT 1 FROM [sys].[backup_devices] WHERE name='Arizona_dump_SECU') BEGIN EXEC master.dbo.sp_addumpdevice @devtype = N'disk', @logicalname = N'Arizona_dump_SECU', @physicalname = N'$target_path\Arizona_dump_SECU.bak'; PRINT 'Dump device Arizona_dump_SECU created on U drive'; END "@ Invoke-Sqlcmd -ServerInstance $instance -Database master -Query $query } } else{ Write-Output "Path $target_path does not exists, not touching dump devices" }