标题: [已解决]我做的一个VBS不能访问有密码的服务器? [打印本页]
作者: dong1977 时间: 2009-7-20 20:52 标题: [已解决]我做的一个VBS不能访问有密码的服务器?
有一个问题想请教各位,我们公司需要每个 月都要备份一次邮件到服务器,以减少硬盘空间。因此我做了个VBS通过剪切的方式把一年前的邮件剪切到服务器上的共享邮件备份文件夹中,但是我做好后,测试了不能运行。平时各用户访问服务器是需要输入密码,我把服务器设成不需要输入密码也可以访问。然后再测试这个VBS,这次正常了。
问题是:VBS能不能绕过服务器密码直接把邮件剪 切到服务器的共享邮件备份文件夹中?
我对VBS不熟,代码是网上找的或别人给。麻烦各位帮我看看,能不能这样实现,要在哪个位置添加代码?
万分感谢!- Dim fso,objFolder,objSubFolders,objSubFolder
- Dim file,StrCurPath,ServerPath,tmpF,fileCount
- Function CreateDir(path)
- If fso.FolderExists(path) Then
- Exit Function
- End If
- If Not fso.FolderExists(fso.GetParentFolderName(path)) Then
- CreateDir fso.GetParentFolderName(path)
- End If
- fso.CreateFolder(path)
- End Function
- Function CheckFolder(FPath)
- Set objFolder=fso.GetFolder(FPath)
-
- For Each file In objFolder.Files
-
- If DateDiff("d",file.DateLastModified,datestr)>=1 And fso.GetExtensionName(file)="eml"then
- If Not fso.FolderExists(ServerPath&"\"& Mid(objFolder.Path,Len(StrCurPath)+1)) Then
- CreateDir ServerPath&"\"&Mid(objFolder.Path,Len(StrCurPath)+1)
- end if
- file.move ServerPath&"\"&Mid(objFolder.Path,Len(StrCurPath)+1) &"\"
- fileCount=fileCount+1
- End If
- Next
- For Each objSubFolder In objFolder.SubFolders
- CheckFolder objSubFolder
- Next
- Set objFolder=Nothing
- End Function
-
- If WScript.Arguments.Count<>0 Then
- if right(wscript.arguments(0),1)<>"\" then
- msgbox "脚本参数错误,请检查!",,"备份运行提示"
- wscript.quit
- end if
- Set fso = CreateObject("Scripting.FileSystemObject")
- 'Set objComputer = CreateObject("Shell.LocalMachine")
- set objComputer=CreateObject("WSCRIPT.NETWORK")
- 'comName=objcomputer.MachineName
- comName=objComputer.ComputerName
- Set objcomputer=Nothing
- datestr=DateAdd("yyyy",-1,Date())
- ServerPath=wscript.arguments(0) & ComName&"\"&datestr
- StrCurPath = fso.GetParentFolderName(Wscript.ScriptFullName)
- fileCount=0
- CheckFolder StrCurPath
- If Err Then
- Err.Clear
- set fso=nothing
- MsgBox Err.Description & Chr(10) &"脚本参数错误,请检查,输入格式:"&Chr(10)&"\\FileServer\ShareDir\或 C:\dir\"
- WScript.Quit
- End if
- if fileCount<>0 then
- WScript.Echo "********* "&fileCount&" 个文件备份完成*********!"
- else
- WScript.Echo "*********** 没有文件需要备份!*************"
- end if
- WScript.Echo "备份脚本运行成功!"
- Set fso=Nothing
- Else
- WScript.Echo "脚本参数错误,请检查!",,"备份运行提示"
- End If
复制代码
[ 本帖最后由 dong1977 于 2009-7-30 14:54 编辑 ]
作者: jsj30651 时间: 2009-7-20 23:37
在尝试链接服务器前用通过VBS来调用CMD命令来完成带密码的IPC链接,然后再尝试链接服务器。
CMD下的命令格式是:
net use \\服务器名或IP\ipc$ "密码" /user:"用户名"
例如:
net use \\10.35.3.9\ipc$ "123" /user:"administrator"
作者: dong1977 时间: 2009-7-21 10:22
谢谢,
能不能忽略掉服务器的用户名和密码?因为我们有好几个分公司,每个分公司的服务器的用户名和密码都不一样。而且还是要放在任务计划里自动运行的,再次麻烦你了。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |