2016-03-14 2 views
0

У меня есть сценарий Powershell, который использует JSON-файл для создания новой виртуальной машины; файл JSON содержит инструкции для виртуальной машины присоединиться к домену и запустить собственный скрипт. Обе вещи происходят, но сценарий работает как пользователь workgroup\system и, следовательно, не имеет доступа к сетевому диску.Как запустить Azure VM CustomScriptExtension в качестве пользователя домена? (часть 1)

  • ли список расширений в этом порядке гарантии, что скрипт работает после к домену завершено (или это бессистемно)?

Есть ли что-то, что я могу сделать, чтобы сценарий не запускался до тех пор, пока соединение домена не будет завершено? Как я могу лучше всего обнаружить (локально с новой виртуальной машины), что соединение домена завершено? Как бы вы задержать запуск сценария до лучшего времени (что-то вроде однократной работы cron)?

Обновление: Сплит вопрос в два, другая половина here.

Кроме того, immense спасибо до Dewi Jones более часа интерактивной поддержки. Я благодарен тому, что могу дать только одну галочку взамен.

ответ

1

Получите домен, и если домен равен тому, с которым вы соединяетесь, продолжайте.

$domain = gc env:UserDNSDomain 

While ($domain -neq "FQDN") 
{ 
Start-Sleep -seconds 2 
} 

В противном случае вы можете вызвать скрипт, используя учетные данные следующим

$username = 'user' 
$password = 'password' 
$PSArgs = 'Script file name' 
$securePassword = ConvertTo-SecureString $password -AsPlainText -Force 
$credential = New-Object System.Management.Automation.PSCredential $username, $securePassword 
Start-Process Powershell.exe -Credential $credential $PSArgs 
+0

Это прекрасно работает (я думаю)! Я добавил задержку и тайм-аут в цикле. – KlaymenDK

+0

No Problem, Glad, я мог бы помочь, любые вопросы не стесняйтесь, дайте мне знать или DM меня, и я вижу, что я могу сделать –

+0

«DM вы» - я думал, что SE не разрешает прямые/частные сообщения ...? – KlaymenDK