将 Azure VM 上的驱动器映射到 Azure 存储帐户文件共享

将 Azure VM 上的驱动器映射到 Azure 存储帐户文件共享

我已经设置了一个 Azure 存储帐户文件共享(带有专用端点),并尝试按照以下步骤将网络位置映射到同一虚拟网络中的虚拟机(未加入域)MS 文章

我尝试通过将包含以下代码的批处理文件放置在 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp 文件夹中来在用户登录时分配此网络位置。

net use z: /delete
net use z: "\\{myaccount}.file.core.windows.net\{myfileshare}"

当以本地管理员帐户登录时,它可以创建网络位置,但是当我尝试在用户帐户下执行相同操作时,它会失败并显示错误55:指定的网络资源或设备不再可用错误。

我认为这是一个本地权限问题,任何人都知道解决此问题的正确权限。

答案1

看起来很像权限问题,我将首先使用专门用于排除 Azure 文件故障的以下脚本:https://github.com/Azure-Samples/azure-files-samples/tree/master/AzFileDiagnostics/Windows

它自动执行了本文提供的大部分故障排除步骤,这也非常有用 https://learn.microsoft.com/en-us/troubleshoot/azure/azure-storage/files-troubleshoot?tabs=powershell

答案2

所以我采取了稍微不同的方向来实现这一点。通过文件共享连接按钮使用 Azure 门户提供的脚本并不总是会创建共享,因为新-PSDrive即使使用 -Persist 选项,函数似乎也没有创建持久映射。

我将 New-PSDrive 命令切换到 Net Use,并创建了一个 Windows 任务计划,以便在所有用户登录和解锁时运行该脚本,并且它运行良好。

$connectTestResult = Test-NetConnection -ComputerName {mystorageaccount}.file.core.windows.net -Port 445
if ($connectTestResult.TcpTestSucceeded) {
    # Save the password so the drive will persist on reboot
    cmd.exe /C "cmdkey /add:`"{mystorageaccount}.file.core.windows.net`" /user:`"localhost\{mystorageaccount}`" /pass:`"{mystorageaccountpassword}"
    # Mount the drive
    #New-PSDrive -Name Z -PSProvider FileSystem -Root "\\{mystorageaccount}.file.core.windows.net\{myfileshare}" -Persist
    Net use z: \\{mystorageaccount}.file.core.windows.net\{myfileshare} /persistent:yes
} else {
    Write-Error -Message "Unable to reach the Azure storage account via port 445. Check to make sure your organization or ISP is not blocking port 445, or use Azure P2S VPN, Azure S2S VPN, or Express Route to tunnel SMB traffic over a different port."
}

相关内容