【问题标题】:Attach to an Azure ShareFile using WinRM and net use使用 WinRM 和网络使用附加到 Azure ShareFile
【发布时间】:2016-07-11 21:26:22
【问题描述】:

上下文:

我已经从 azure-quickstart-template 中的 201-winrm-windows 设置了一个 ARM 部署。

  • 部署运行良好
  • 我可以使用 WinRM 访问虚拟机
  • 我可以使用 WinRM 远程运行脚本

问题是我正在尝试在该 VM 上设置存储文件。 official documentation 要求运行此命令:

net use <drive-letter>:                                       `
    \<storage-account-name>.file.core.windows.net<share-name> `
    /u:<storage-account-name> <storage-account-key>

# Result:
The command completed successfully.

问题:

  • 当命令在本地运行时(VM 上的本地 powershell),我有一条成功消息并出现挂载。
  • 当命令通过 WinRM 运行时,我有相同的成功消息,但是当我连接到 VM 时,我无法访问挂载。

我的代码:

$resourceGroupName  = "resourcegroupname"
$username           = "username"
$storageAccountName = "storageaccountname"
$zone               = "westeurope"
$hostName           = "$resourceGroupName.$zone.cloudapp.azure.com"
$shareFileName      = "test"
$winrmPort          = '5986'
$storageAccountKey  = "......................"

$cred = new-object                                       `
     -typename System.Management.Automation.PSCredential `
     -argumentlist $username, $password

$soptions = New-PSSessionOption -SkipCACheck

Invoke-Command                     `
    -ComputerName  $hostName       `
    -Credential    $cred           `
    -Port          $winrmPort      `
    -SessionOption $soptions       `
    -filepath      .\provision.ps1 `
    -UseSSL                        `
    -ArgumentList                  `
        $storageAccountName,       `
        $storageAccountKey,        `
        $shareFileName

还有配置文件.\provision.ps1

Param (
    [Parameter(Mandatory=$True,Position=0)]
    [string]$accountStorageName,

    [Parameter(Mandatory=$True,Position=1)]
    [string]$accountStorageKey,

    [Parameter(Mandatory=$True,Position=2)]
    [string]$shareFileName
)

net use w:                                                     `
    \\$accountStorageName.file.core.windows.net\$shareFileName `
    /user:$accountStorageName $accountStorageKey

注意:

  • 我的问题与this one类似,但作者没有回复。

【问题讨论】:

  • “无法访问挂载”是什么意思?有错误提示吗?

标签: powershell azure azure-storage winrm azure-storage-files


【解决方案1】:

在这种情况下,您遇到的问题是 WinRM 作为 NetworkService 运行。当您通过 WinRM 'net use' 时,为 NetworkService 用户完成了挂载操作,您无法通过连接到 VM 的其他用户访问它。您需要确保挂载操作是通过您访问共享所需的相同用户上下文完成的。

【讨论】:

    【解决方案2】:

    刚刚尝试了您所做的,但我可以成功访问挂载。一个小的区别是我先连接到虚拟机,然后挂载文件共享,我没有像你那样将这两个步骤合二为一,不确定是不是这个问题,只是想和你分享一下,供你参考.

    我在文件共享中上传了一个文件,我可以访问文件共享并获取文件,如下图所示:

    从 RDP 更新访问权限:

    【讨论】:

    • 谢谢。使用远程 Powershell 添加挂载后,您可以从远程桌面访问它吗?对我来说,驱动器Statusunavailable。对于您的示例,您似乎正在从同一个 powershell 会话测试安装。
    • @ThibaultDeheurles 是的,刚刚通过 RDP 验证,共享是可访问的。查看我的更新。
    • 我正在尝试调整与您相同的命令,但我没有相同的结果...驱动器未出现在资源管理器中,并且本地 powershell net use 返回驱动器但处于unavailable 状态。请问你用的是哪个版本的windows?我的是 WindowsServer2012_R2_datacenter。
    • @ThibaultDeheurles 我的也是 WindowsServer2012_R2_datacenter,我只是使用您提供的模板,没有更改任何内容。您提到“驱动器没有出现”,请尝试重新启动服务器,看看它是否出现。网络使用后我也遇到了“不出现”问题,重新启动解决了它。顺便说一句,为什么驱动器总是卡在不可用?我想知道这个问题是否与共享本身有关。也许尝试重新创建文件共享?真的很奇怪的行为..
    • 感谢您的帮助。是的,我也尝试过重新启动,但它没有在资源管理器中添加驱动器。我正在重新部署另一个时间在干净的机器上进行测试。如果它不成功,我将尝试与您完全相同的教程(我已经在它之上进行了一些设置,但它不应该干扰)。我也会尝试使用新的共享文件。在这些不同的测试之后回来。
    猜你喜欢
    • 2015-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多