【发布时间】: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