Я использую CustomScriptExtension
для выполнения сценария PowerShell на последнем этапе развертывания моей виртуальной машины:
"settings": {
"fileUris": [
"[uri(parameters('PostDeploymentScriptUri'), 'PostDeployment.ps1')]"
],
"commandToExecute": "[concat('powershell -ExecutionPolicy bypass -File ./PostDeployment.ps1 -repo ', uri(parameters('PostDeploymentScriptUri'), 'installScript.ps1'), '-account ', parameters('AdminUsername'))]"
}
Скрипт выполняется, как и ожидалось, однако я заметил, что все загрузки и файлы создаются в C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.10.9\Downloads\0
.
Одна из вещей, которые сценарий намеревается сделать, - это создать файл и разместить его на рабочем столе учетной записи администратора. Вот почему я передаю $account
param, который вводится как один из параметров шаблонов ARM.
В моем собственном скрипте я попробовал следующее:
$tempLoc = "c:/users/$account/Desktop"
New-Item $tempLoc/test.cmd -type file -force
Хотя это создает файл в правильном месте, пользователь-администратор не увидит его при первом подключении RDP к машине, потому что вместо того, чтобы разместить учетную запись пользователя под users/username
, процесс входа в систему создаст users/username.machinename
потому что уже есть папка с именем пользователя.
Идеи?