我需要使用批处理文件映射网络驱动器,但不想指定驱动器号.
批处理文件用作部署过程的一部分; 我调用批处理文件CruiseControl.Net,批处理文件需要映射一个需要凭据进行身份验证的UNC路径.然后批处理文件调用RoboCopy将网站从输出目录部署到目标(并排除某些文件和文件夹).最后,批处理删除网络驱动器.
问题是这不是可扩展的,当只有少数项目时它很好但我们现在有20个项目使用这种方法并且用尽了驱动器号来映射.我不想重复使用驱动器号,因为它们可能会发生冲突 - 这很糟糕.
这是批处理文件的示例:
@echo off
net use x: \\192.168.0.1\Share\wwwroot\MyProject /user:mydomain\myuser MyP455w0rd
robocopy.exe "W:\wwwroot\MyProject" x:\ *.* /E /XO /XD "App_Data/Search" "*.svn" /XF "sitefinity.log" "Thumbs.db" /NDL /NC /NP
net use x: /delete
Run Code Online (Sandbox Code Playgroud)
并格式化为可读性:
@echo off
net use x: \\192.168.0.1\Share\wwwroot\MyProject
/user:mydomain\myuser MyP455w0rd
robocopy.exe "W:\wwwroot\MyProject" x:\ *.* /E /XO /XD
"App_Data/Search" "*.svn" /XF "sitefinity.log" "Thumbs.db" /NDL /NC /NP
net use x: /delete
Run Code Online (Sandbox Code Playgroud) 我需要通过VBA访问网络文件服务器上托管的文件夹.只能通过服务帐户(与普通用户帐户不同)以书面形式访问该文件夹,我有用户名和密码.
通过UI,我可以看到该文件夹并将其映射为本地驱动器,但为了以书面形式访问它,我需要从Windows注销并通过服务帐户登录.
有没有办法在普通用户会话期间访问网络文件夹,但在VBA代码中硬编码用户名和密码?
我尝试将文件夹映射为本地驱动器:
Set WshNetwork = CreateObject("WScript.Network")
WshNetwork.MapNetworkDrive "S:", "\\corp-server\HostingFolder", False, Username, pwd
Run Code Online (Sandbox Code Playgroud)
但没有工作("S"驱动器没有映射).如果相反我做同样但没有提供用户名和密码:
Set WshNetwork = CreateObject("WScript.Network")
WshNetwork.MapNetworkDrive "S:", "\\corp-server\HostingFolder"
Run Code Online (Sandbox Code Playgroud)
它完美地运作.
现在想知道我想要做的事实际上是否可行?如果没有,还有其他选择吗?
谢谢