Установите и используйте переменную PowerShell в CMD - PullRequest
0 голосов
/ 06 марта 2019

Я хотел бы отправить электронное письмо из моего (существующего) .bat, используя Send-MailMessage.Поскольку он должен быть автоматизирован, я уже сохранил защищенный пароль до MailPW.txt.В сценарии я хотел бы использовать его, но, к сожалению, переменная $cred пуста (я также предполагаю, что $pw).

...Rest of .bat Script (ROBOCOPY Commands)...

powershell -ExecutionPolicy ByPass -Command " & {$pw = Get-Content .\MailPW.txt | ConvertTo-SecureString}"
powershell -ExecutionPolicy ByPass -Command " & {$cred = New-Object System.Management.Automation.PSCredential "zyx@othermail.com", $pw} "
powershell -ExecutionPolicy ByPass -Command Send-MailMessage ^
    -SmtpServer "smtp.office365.com" ^
    -UseSsl ^
    -To "xyz@mail.com" ^
    -From "zyx@othermail.com" ^
    -Subject "Testing" ^
    -Body "Hello" ^
    -Port "587" ^
    -Encoding ([System.Text.Encoding]::UTF8) ^
    -Credential $cred

Я также пытался

-Credential "& {New-Object System.Management.Automation.PSCredential "zyx@othermail.com", Get-Content .\MailPW.txt | ConvertTo-SecureString}"

как предложено здесь без какого-либо успеха.

По сути, я хочу установить $cred var и использовать его в следующей команде, возможно ли это даже сэтот подход?

1 Ответ

0 голосов
/ 08 марта 2019

Вы открываете три разных сеанса PowerShell. (ваша проблема)

Просто объедините все команды в один файл .ps1

$pw = Get-Content .\MailPW.txt | ConvertTo-SecureString
$cred = New-Object System.Management.Automation.PSCredential "zyx@othermail.com", $pw
Send-MailMessage ^
    -SmtpServer "smtp.office365.com" ^
    -UseSsl ^
    -To "xyz@mail.com" ^
    -From "zyx@othermail.com" ^
    -Subject "Testing" ^
    -Body "Hello" ^
    -Port "587" ^
    -Encoding ([System.Text.Encoding]::UTF8) ^
    -Credential $cred

И вызовите скрипт powershell внутри вашего .bat файла

powershell -File Script.ps1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...