Microsoft Office 2010 更新后的 Visual Basic FileCopy error75

Visual Basic FileCopy error75 after Microsoft Office 2010 updates

近期在工作中推送了大量Microsoft Office的安全更新。我们有一个带有 Visual Basic backbone 的 Excel 工具,它在更新之前可以工作,但现在不工作了。

我做了一些单独的测试,发现在 .BAT 和 .EXE 文件上使用 FileCopy 方法时,我们看到了相同的 'error 75'。其他 less 'risky' 文件类型似乎没问题。这也是 'Open' 命令的问题。

是否有人知道 copy/pasting .EXE 和 .BAT 文件时此问题的解决方法,或者这可能是某个安全更新的已知问题?我到处搜索,但 Google 令我失望。我希望:

  1. 有人知道哪个安全更新是罪魁祸首,我可以试试 卸载它看看是否能解决问题
  2. 有一种不同的方法可以 copy/open/manipulate .BAT 和 .EXE 文件不违反新的安全补丁。

一些背景: 我们使用的是 Microsoft Office Professional Plus 2010,该工具使用 Excel 作为界面。

这是我使用的测试代码。我已验证 .TXT 和 .DAT 文件 运行 正常,而 .EXE 和 .BAT 文件导致 'error 75' 指示权限错误。在你问之前,是的,文件路径是正确的,我只是省略了我的员工身份信息。

Sub Macro1()
    ' Declare variables
    Dim Filename, SourcePath, DestPath As String

    ' Pathname variables
    Filename = "test.dat"
    SourcePath = "C:\Users\<REDACTED>\Desktop\working_copy\" & Filename
    DestPath = "C:\Users\<REDACTED>\Desktop\working_copy\test\" & Filename

    ' Copy file from Source and paste in Destination
    FileCopy SourcePath, DestPath
End Sub

这是一张包含已安装更新的图像。该工具在 6/14/2017 转储之前工作,因此可以忽略之前的任何内容。 不好意思,图片太多,手动输入,没办法从更新列表中复制:

MS Office 2010 Security Updates

工具或文件结构没有任何变化。唯一不同的是更新。此外,我们使用 Microsoft Office Home 2016 测试了相同的工具,它运行顺利。

我们将不胜感激任何帮助。提前致谢!

虽然我从未找到解决此问题的真正方法,但我确实想出了一个稍微 'hacky' 的解决方法。

MS 安全补丁阻止我 copy/pasting .BAT 和 .EXE 文件,但我仍然可以保存 .BAT 文件。 所以,我最终让我的脚本创建了一个名为 "copyExe.txt" 的文本文件,其中只有一行:

ECHO F|xcopy <source> <destination>

然后将其重命名为 "copyExe.bat" 和 运行。

通过创建 .txt 文件,我避免了在 .BAT 文件上使用 VBA 打开功能时出现的错误(因此我实际上可以创建这个新的批处理文件)。此批处理文件的唯一目的是 copy/pasting 将一个 .EXE 文件从一个文件夹转移到另一个文件夹,从而在尝试 copy/paste .EXE 文件时规避错误。 copy/paste脚本为运行后被删除

总而言之,这感觉是一个非常愚蠢的解决方案,但它确实有效,而且对用户来说非常无创。