相关疑难解决方法(0)

映射网络驱动器而不对批处理文件中的驱动器号进行硬编码

我需要使用批处理文件映射网络驱动器,但不想指定驱动器号.

批处理文件用作部署过程的一部分; 我调用批处理文件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)

batch-file network-drive

15
推荐指数
3
解决办法
7万
查看次数

访问共享网络文件夹

我需要通过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)

它完美地运作.

现在想知道我想要做的事实际上是否可行?如果没有,还有其他选择吗?

谢谢

excel networking vba shared

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

batch-file ×1

excel ×1

network-drive ×1

networking ×1

shared ×1

vba ×1