代码之家  ›  专栏  ›  技术社区  ›  Shawn

使用WinZip命令行的SQL Server作业

  •  0
  • Shawn  · 技术社区  · 8 年前

    我有一个SQL Server 2008作业,它备份数据库,然后压缩备份并移动压缩文件。我的作业运行良好,直到到达调用WinZip的步骤,该步骤执行:

    c:\program files (x86)\winzip v19.5\winzip32.exe 
          -m \\RemoteShare\RestrictedFolder\dbBack.zip 
          x:\SQLInstanceFolder\BackupFolders\dbBack.bak
    

    工作既没有完成也没有失败;它只是停止前进。它将生成 dbBack.bak 文件并创建 dbBack.zip 文件位于远程位置,但它不会继续通过那里。它似乎在等待弹出确认,但当我登录控制台或从命令行运行zip时,我没有看到弹出确认。

    我尝试添加 -ybc 自动确认或跳过任何提示的标志,但它似乎没有做任何事情。这个过程仍然没有完成。我甚至试过 > 管道输出进程,但它甚至不会写入我的日志文件。

    这是一个安全的系统和基础设施,但我相当肯定我没有被权限阻止。运行作业的SQL Server服务帐户可以访问所需的文件夹,并且可以运行 winzip32.exe 过程这个过程运行得很好,但上周末我们不得不升级WinZip(19.5),这时它就停止正常工作了。我们无法回滚到以前的版本(10)。

    有没有人知道什么可能会阻止我的流程或如何继续?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Shawn    8 年前

    我想我发现了这个问题。事实证明,我们正在使用WinZip的GUI版本,并从命令行调用可执行文件。尽管我们看不到GUI,但它仍然存在。因此,确认压缩的提示仍然存在于程序的工作流中,我们无法看到它,因此无法确认它。并且确认标志不适用于GUI版本。

    enter image description here

    我的解决方法是作为服务帐户登录到SQL server并运行WinZip操作。当它完成并给我 Add Complete 提示,我检查过了 Do not display this dialog in the future 并单击 OK 。这将在服务帐户运行其作业时取消显示该提示。

    如果有人更改了服务帐户,我们将不得不再次这样做,因此我们的最终解决方案将是安装 WinZip Commmand Line Plugin .希望这样我们就不用担心了。

    但它现在起作用了。:-)

    推荐文章