Thibault Deheurles
Thibault Deheurles

Reputation: 1269

Attach to an Azure ShareFile using WinRM and net use

Context:

I have setup an ARM deployment from the 201-winrm-windows in azure-quickstart-template.

The problem is that I'm trying to setup a storage file on that VM. The official documentation ask to run this command:

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.

The issue:

My code:

$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

And the provision file .\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

Note:

Upvotes: 0

Views: 291

Answers (2)

The problem you are hitting into in this case is that, WinRM runs as NetworkService. When you 'net use' through WinRM, the mount operation is done for NetworkService user, and you cannot access it through another user you connect to VM with. You'll need to ensure that the mount operation is done through same user context that you'll need to access the share as.

Upvotes: 1

forester123
forester123

Reputation: 1579

Just tried what you've done but I can access the mount successfully. A small difference is that I connect to the VM first and then mount the file share, I didn't combine these two steps into one like you did, not sure whether this is the issue but just like to share with you and for your reference.

I uploaded a file in my file share and I can access the file share and get the file as below snapshot shows: enter image description here

Update access from RDP: enter image description here
enter image description here

Upvotes: 0

Related Questions