【问题标题】:Azure file share mapping on user startup fails when VM StoppedDeallocated当 VM StoppedDeallocated 时,用户启动时的 Azure 文件共享映射失败
【发布时间】:2015-11-27 13:17:43
【问题描述】:

我正在尝试在 VM 启动时自动映射 Azure 文件共享。 VM 设置为自动登录,脚本位于用户启动文件夹中。凭据被永久存储。 cmdkey /add:.file.core.windows.net /user: /pass: 如果 VM 重新启动它可以工作,但如果它完全关闭并出现系统错误 1231,它会失败。如果我 RDP 并运行脚本它可以工作。关闭是否会导致任何损坏?

@ECHO OFF 
net use Z: /delete
net use Z: \\share.file.core.windows.net\fileshare

timeout /t 10 /nobreak
START  "" "Z:" 
START "MyService" Z:\service\MyService.exe 

【问题讨论】:

  • 在第一个命令之前添加“timeout /t 15 /nobreak”似乎可以修复它以关闭 VM。如果脚本运行时网络还没有准备好,我添加了一些时间。但是,当我更改 VM 大小并重新启动时,它仍然失败(现在出现系统错误 53)。

标签: azure azure-storage-files


【解决方案1】:

如果您希望虚拟机在重新启动时重新连接,您必须首先在虚拟机上保留存储帐户凭据。这是在虚拟机上运行的命令。更多详情请见here

cmdkey /add:<storage-account-name>.file.core.windows.net /user:<storage-account-name> /pass:<storage-account-key>

【讨论】:

  • 对不起,我忘了添加,但我试着让它像你之前提到的那样持久化。它给出了同样的错误信息。 net use 命令上的用户名和密码是不是类似于使其持久化?
【解决方案2】:

我找到了解决方案,错误的主要原因是在登录期间脚本运行时实际网络不可用。我能够通过捕获错误消息并在循环中重试来映射它。我记录了错误,经过几次尝试后它似乎正确映射。最终脚本如下。

@ECHO OFF 

if not exist Z:\ (
timeout /t 5 /nobreak

:loop
net use Z: \\share.file.core.windows.net\fileshare

if errorlevel 1 (
echo "Mapping failed"
timeout /t 5
goto loop
) else (
echo "Mapping Successful" 
)

) else (
echo "Mapped already"
)

START  "" "Z:" 
START "MyService" Z:\service\MyService.exe 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    • 2021-06-27
    • 2022-09-29
    • 1970-01-01
    相关资源
    最近更新 更多