在vbscript中打开具有不同凭据的共享文件夹

时间:2014-02-14 09:56:51

标签: vbscript

我使用vbscripr打开网络文件夹,如

Set shell = wscript.CreateObject("Shell.Application")
shell.Open "\\xxxxxxxxxxx\c$"

我无法访问驱动器“yyyy”,但我有UN和PW。如何使用vbscript中的凭据打开共享文件夹。

由于

2 个答案:

答案 0 :(得分:0)

简短的回答是你不能这样做。 “open”方法不允许传递目录名以外的参数,而“Shell.Application”对象也没有方法可以执行此操作。

来源:

打开方法: http://msdn.microsoft.com/en-us/library/windows/desktop/bb774086(v=vs.85).aspx

Shell.Application的方法列表: http://msdn.microsoft.com/en-us/library/windows/desktop/bb774094(v=vs.85).aspx

此问题的可能解决方法是通过命令提示符重新启动脚本并调用类似PSEXEC的内容。像这样:

Dim oShell
Set oShell = WScript.CreateObject ("WScript.Shell")
oShell.run "%COMSPEC% /C psexec -u domain\user -p password -accepteula cscript.exe c:\path\yourscript.vbs"
Set oShell = Nothing

您可以从这里下载PSEXEC:

http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

答案 1 :(得分:-1)

虽然很糟糕但我使用sendkeys(在wscript.sleep 2000之后)......

`...
Set objFolder = objFSO.GetFolder(strShare) 'check access
If Err.Number <> 0 Then 
    WScript.Sleep 2000
    objShell.SendKeys "username" 'username
    objShell.SendKeys "{TAB}"
    objShell.SendKeys "password" 'password
    objShell.SendKeys "{Tab}" 
    objShell.SendKeys " " 'save credentials
    ObjShell.SendKeys "{Tab}" 
    ObjShell.SendKeys "{ENTER}" 
End If
Set ObjShell = Nothing
...`