Сценарий команды запуска Azure для монтирования хранилища файлов
Я создал виртуальную машину, которая должна загрузить некоторые файлы из хранилища файлов Azure. Я ищу способ автоматизировать это и пытаюсь выполнить команду сценария запуска виртуальной машины Azure. Первый шаг CmdKey все работает нормально, но следующий шаг: net use Z: \my123storageaccount.file.core.windows.net\database /u:AZURE\my123storageaccount sskhgkghgkuytiytru...==
не удается: введите описание изображения здесь
Когда я вхожу в эту ВМ и запускаю команду в окне PowerShell, она работает без каких-либо ошибок.
Одна вещь, которая могла бы помочь, - это имя учетной записи хранения в ошибке - обрезка первой буквы, которую я имею. Например, если он вызван MyStorageAccount в ошибке, он говорит yStorageAccount.file.core.windows.net
любая помощь
3 ответа
Для меня проблема заключалась в том, что, согласно документам Azure, "скрипты выполняются как система в Windows". Поэтому, когда вы входите в систему как обычный пользователь, у этого пользователя не сохранены учетные данные, и он не может просматривать содержимое подключенного диска.
Чтобы обойти это, вы можете использовать psexec
(из PSTools
package) для запуска от имени обычного пользователя. Например:
psexec.exe \\your-ip -u your-user -p your-pass cmdkey /add:...
psexec.exe \\your-ip -u your-user -p your-pass net use Z: \my123storageaccount.file.core.windows.net\databases /u:AZURE\my123storageaccount sskhgkghgkuytiytru...==
Примечание: из-за черной магии вуду вы должны использовать формуpsexec.exe \\your-ip
а не просто psexec.exe
как пользователь Системы, или рискуете расстроить Билли Гоутса.
Обновить
Со своей стороны, я могу загрузить некоторые файлы из хранилища файлов Azure с помощью командного сценария запуска виртуальной машины Azure.
Основные шаги заключаются в следующем:
Скопируйте скрипт из моей учетной записи-files-connect.
Вставьте сценарий в виртуальную машину Azure, запустите команду RunPowerShellScript-PowerShellScript.
Согласно этому документу, для запуска команды требуется Microsoft.Compute/virtualMachines/runCommand/action
разрешение, которое имеет роль Участника и выше. Пожалуйста, отметьте это на вашей стороне.
Кроме того, проверьте агент виртуальной машины Azure при входе в виртуальную машину Azure, найдите имя процесса WindowsAzureGuestAgent.exe в диспетчере задач.
Если вы зайдете в учетную запись хранения -> файлы, вы можете скопировать команды powershell, которые вам нужны для сопоставления диска.
Вы можете копировать файлы, как это. Команды powershell можно скопировать из Azure, используя команду "connect" из контекстного меню общего ресурса на портале Azure. Если это не работает, может быть подключение или может быть связано с SMB
$buildSource = 'M:\build\'
$acctKey = ConvertTo-SecureString -String "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential -ArgumentList
"Azure\wserverBuild", $acctKey
New-PSDrive -Name M -PSProvider FileSystem -Root "\\wserverBuild.file.core.windows.net\build" -Credential $credential -Persist
Copy-Item 'M:\build\' -Destination 'C:build' -Recurse