将备份文件保存到 Windows Server 2016 中的 DropBox 文件夹

Save Backup Files to DropBox folder in Windows Server 2016

我正在尝试创建一个 PowerShell 脚本来将我的数据库备份到特定的 DropBox 文件夹。

我从 Windows 防火墙开始,使用 netsh 防火墙调用,效果很好。我的防火墙规则已成功保存到我指定的 DropBox 文件夹。

但是,我尝试了一种类似的方法来将我的数据库备份到同一文件夹,但失败并出现拒绝访问错误。如果我将文件夹更改为本地根文件夹,例如 C:\DatabaseBackup,则以下防火墙脚本可以正常工作。

有人可以帮我解决这个 DropBox 问题吗?我尝试访问 DropBox 网站,他们确实提供了一个 API,但我不知道如何使用它或是否可以使用它。
我发现另一个网站有一个上传的脚本,但它是一个 BASH 用于 Unix 和 linus 的 .sh 脚本,出于严格的安全原因,我不想在我的服务器上安装 WSL。

netsh advfirewall export "C:\Users\xyxAbc\Dropbox\VPSBACKUP\vps-fw-rules.wfw"


[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO") | out-null
$s = new-object ("Microsoft.SqlServer.Management.Smo.Server") $instance


###  Script A (failed with "Access Denied".

$bkdir = "C:\Users\xyxAbc\Dropbox\VPSBACKUP"
$dbs = $s.Databases
foreach ($db in $dbs) 
{
     if($db.Name -ne "tempdb" -or $db.Name -ne "master" -or $db.Name -ne 'model' -or $db.Name -ne'msdb') 
     {
         $dbname = $db.Name
         # $dt = get-date -format yyyyMMddHHmm #We use this to create a file name based on the timestamp 
         $dbBackup = new-object ("Microsoft.SqlServer.Management.Smo.Backup")
         $dbBackup.Action = "Database"
         $dbBackup.Database = $dbname
         $dbBackup.Devices.AddDevice($bkdir + "\" + $dbname + "_db_" + ".bak", "File")
         $dbBackup.SqlBackup($s)
     }
}


###  Script B  (Succeded without issues)

$bkdir = "C:\DatabaseBackup"
$dbs = $s.Databases
foreach ($db in $dbs) 
{
     if($db.Name -ne "tempdb" -or $db.Name -ne "master" -or $db.Name -ne 'model' -or $db.Name -ne'msdb') 
     {
         $dbname = $db.Name
         # $dt = get-date -format yyyyMMddHHmm #We use this to create a file name based on the timestamp 
         $dbBackup = new-object ("Microsoft.SqlServer.Management.Smo.Backup")
         $dbBackup.Action = "Database"
         $dbBackup.Database = $dbname
         $dbBackup.Devices.AddDevice($bkdir + "\" + $dbname + "_db_" + ".bak", "File")
         $dbBackup.SqlBackup($s)
     }
}

这个过程要小心。在我的服务器上安装 DropBox 后,我发现磁盘 Space 突然大幅减少。出于某种奇怪的原因,DropBox 试图将我的 1000 Gig space 放入那个小型 60 Gig 硬盘驱动器中,这造成了资源减少的问题。

我从服务器中删除并删除了所有 DropBox 引用,并创建了一个全新的 DropBox 帐户,该帐户将仅支持该服务器备份需求。然后,我与我的 1000Gig 帐户共享了该文件夹,并且能够从我的其他计算机上看到它。