【问题标题】:Windows Server 2012 VBScript gets permission denied deleting filesWindows Server 2012 VBScript 获得权限被拒绝删除文件
【发布时间】:2015-07-09 15:40:43
【问题描述】:

我的服务器 (Windows Server 2012 r2) 上有一个与所有人共享的文件夹。我所有的用户每天都会上传一个纯文本库存文件。然后我有一个我计划在我的管理员凭据下运行的 vbscript,它会在读取这些文件后删除它们。但是,我在尝试删除或移动文件时收到权限被拒绝错误。

下面是一些失败的简单代码:

Dim PathtoInventoryFiles
Dim myFSO
Dim myFile
Dim colFiles

PathtoInventoryFiles = "D:\Inventory$"
Set myFSO = CreateObject("Scripting.FileSystemObject")
Set colFiles = myFSO.GetFolder(PathtoInventoryFiles).Files

For Each myFile In colFiles
    wscript.echo myFile.path
    'Tried both of the following (only one at a time of course)
    myFSO.DeleteFile myFile.Path 'Permission denied
    myFile.Delete 'Permission denied
Next

Set myFSO = Nothing
Set colFiles = Nothing

回显会生成一个正确的路径,指向一个好的和现有的文件。所以我在想我有权限问题?这是一个非常普通的 Server 2012 安装。

【问题讨论】:

  • 您是否可以使用同一个帐户通过资源管理器删除文件?
  • 是的,我可以。我关闭了 UAC,并验证了管理员组拥有文件和文件夹。我什至把完全控制权交给了所有人。我想我设置它是为了让我邻居的女朋友的狗的一晚勾搭可以删除文件。但显然我的 vbscript 受到更多限制。
  • 尝试在文件夹中以管理员身份创建一个文件(通过资源管理器),然后查看您的脚本是否会删除它。
  • 检查文件是否打开(net file 用于远程连接,handle 用于本地进程)。
  • 你这个男人安斯加尔!!重新启动“修复”了这个问题,所以我开始调查这个问题。事实证明,这些文件在不同的进程中保持打开状态。所以,像往常一样,只是我很愚蠢......

标签: vbscript permission-denied windows-server-2012-r2


【解决方案1】:

在权限已经允许访问的文件上出现“权限被拒绝”错误通常意味着该文件(仍然)由某人/某物打开。您可以使用net file 进行远程连接检查,或使用handle 进行本地进程检查。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    • 2020-08-26
    • 1970-01-01
    • 1970-01-01
    • 2012-01-07
    相关资源
    最近更新 更多