VM StoppedDeallocated 时用户启动时的 Azure 文件共享映射失败
Azure file share mapping on user startup fails when VM StoppedDeallocated
我正在尝试在 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
如果您希望虚拟机在重新启动时重新连接,您必须首先在虚拟机上保留存储帐户凭据。这是虚拟机上 运行 的命令。更多详细信息可用 here。
cmdkey /add:<storage-account-name>.file.core.windows.net /user:<storage-account-name> /pass:<storage-account-key>
我找到了一个解决方案,错误的主要原因是在登录期间运行脚本时实际网络不可用。我能够通过捕获错误消息并在循环中重试来映射它。我记录了错误,尝试几次后它似乎正确映射。最终脚本如下
@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
我正在尝试在 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
如果您希望虚拟机在重新启动时重新连接,您必须首先在虚拟机上保留存储帐户凭据。这是虚拟机上 运行 的命令。更多详细信息可用 here。
cmdkey /add:<storage-account-name>.file.core.windows.net /user:<storage-account-name> /pass:<storage-account-key>
我找到了一个解决方案,错误的主要原因是在登录期间运行脚本时实际网络不可用。我能够通过捕获错误消息并在循环中重试来映射它。我记录了错误,尝试几次后它似乎正确映射。最终脚本如下
@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