通过PowerShell使用“net use”在Windows Server 2012实例上通过cmd完成时表现出不同的行为

问题描述 投票:1回答:2

我在startup.cmd中有以下代码行的云服务:

net use n: \\<storage-account>.file.core.windows.net\scorm /u:<storage-account> <storage-password>

这会成功创建映射驱动器以指向Azure文件服务共享,但它在Windows资源管理器中显示为断开连接的驱动器,并且使用“断开连接”选项删除它的任何尝试都会导致“此网络连接不存在”,但如果我双击我能够成功访问文件的文件夹。

如果我通过cmd提示符运行相同的命令,则驱动器显示为与共享名称和显示的路径相关联。我是否需要在PowerShell启动命令中执行任何不同的操作以呈现与cmd行提示相同的结果?

powershell cmd azure-storage-blobs mapped-drive net-use
2个回答
2
投票

“net use”命令仅连接到您正在运行的上下文中的共享。因此,您必须在您的角色运行的相同上下文中运行“net use”。

对于Web角色,这将是“NT AUTHORITY \ NETWORK SERVICE”。要在该上下文中运行“net use”,您需要一个像psexec.exe这样的工具,您可以从Windows Sysinternals下载该工具。

将psexec.exe放入角色的bin目录中,并使用以下命令设置提升的启动脚本:

psexec -accepteula -u "NT AUTHORITY\NETWORK SERVICE" net use n: \\&lt;storage-account&gt;.file.core.windows.net\test /u:&lt;storage-account&gt; &lt;storage-password&gt;

1
投票

驱动器映射到您的用户令牌,管理员有两个令牌。有限和高架。确保使用一致的令牌。即如果在Run As Aministrator运行时映射,则只有运行提升的程序才能访问该映射。

© www.soinside.com 2019 - 2024. All rights reserved.