Попытка получить имя пользователя виртуальной машины в тестовой лаборатории разработчиков, используемое в скрипте Powershell для запуска артефактов

У нас есть созданные артефакты. Клонирование репозитория Git - клонирование сценария PS1 из концентратора git. Запуск Powershell, запуск сценария PS1. Этот артефакт связан с формулами.

При создании новой виртуальной машины формулы применяются для запуска сценария PS1. Пытался использовать приведенный ниже сценарий powershell ps1 для отправки почты после запуска формул.

Скрипт PS1

...
...
##Send mail to the User email
$ipV4 = Test-Connection -ComputerName (hostname) -Count 1  | Select -ExpandProperty IPV4Address
$emailId = $env:UserName+"@gmail.com"    
$body = "<html>
            <body>
                Hi $emailId, </br>
                </br> 
                Your VM $ipV4 is ready to access. <br/>
                Thanks,</br>
                Digital Engagement Team
            </body>
        </html>"
Send-MailMessage -To $emailId -from *** -Subject "Azure VM $ipV4 is Ready" -SmtpServer ****** -port 25 -Body $body -BodyAsHtml

Я устал делать это, но скрипт не может отправить сообщение, возможно, из-за того, что $env:UserName недействителен. Как я могу получить имя пользователя виртуальной машины в качестве параметра для PS1, чтобы я мог добавить gmail.com и отправить?


person Anvesh K    schedule 17.08.2020    source источник


Ответы (1)


Вероятно, вам нужно сделать его верхним регистром, чтобы он мог найти переменную. Проверьте документацию на доступ к переменным через среду:

Обратите внимание, что переменные также становятся доступными для сценариев через переменные среды. Синтаксис использования этих переменных среды зависит от языка сценариев.

Имя пишется в верхнем регистре, а расширение. заменяется на _. Это автоматически вставляется в среду процесса. Вот некоторые примеры:

  • Пакетный скрипт:% VARIABLE_NAME%
  • Сценарий PowerShell: $ env: VARIABLE_NAME
  • Сценарий Bash: $ VARIABLE_NAME
person Matt    schedule 17.08.2020