Comportamento de email estranho no powershell

1

Estou adicionando uma nova peça do PowerShell na minha criação de usuário, que é para enviar um email ao supervisor com um alerta de que eles foram criados. No entanto, por algum motivo, envia as credenciais para o próximo supervisor na lista, em vez do supervisor nessa linha, e o primeiro supervisor listado está obtendo cabeçalhos como informações. O CSV é construído da seguinte forma:

1.Lastn | Firstn | Program | Password. | Supervisor
2.Duck | Daffy | ........ 998 | ChangeMe | Bob.Dole
3.Bunny| Buggs|.........878| ChangeMe | Elmer.Fudd

O script é:

$Users = Import-Csv "C:\PSScripts\Create\users.csv" -header("lastname","firstname","program","password","supervisor")
    foreach ($User in $Users) 
    {  
$OU = "OU=users,DC=Contoso,DC=local"
$UserFirstname = $User.Firstname 
$UserLastname = $User.LastName 
$Supervisor = $User.Supervisor
$subject = "New Account Creation Completed"  
$body = "Good Morning! This e-mail is to alert you that your new staff person $SAM has been granted Contoso.org e-mail access. To log in to outlook web application, their username is $SAM and their temporary password is ChangeMe . They will be prompted to change it upon successful login."
$smtp = "10.10.1.79"
$SAM =  $UserFirstname + "." + $UserLastname 
Send-MailMessage -to [email protected] -Subject $subject -body $body -SmtpServer $smtp -from [email protected]
}

No entanto, o supervisor 'Bob.Dole' está enviando e-mails com as credenciais 'Buggs.Bunny', e o supervisor Elmer.Fudd está enviando e-mail para 'Firstname.Lastname', que é como o $ Sam é construído. Portanto, as credenciais estão indo para o supervisor em uma linha, e o último supervisor está sendo enviado por e-mail 'firstname.lastname' em vez de uma pessoa. Além disso, estou recebendo e-mails não entregues dizendo que a conta de e-mail [email protected] não é válida, portanto, parece estar interpretando mal algo, embora tenha executado o comando para enviar para o supervisor $ depois de fazê-lo. Se eu inserir uma célula em branco, sob o cabeçalho 'Supervisor', para que a coluna do supervisor seja desviada para um, ela me diz que um destinatário deve ser especificado, MAS enviará as credenciais para o supervisor CORRECT, uma vez que o destinatário são downshifted.

    
por Sarah Sanderson 17.11.2015 / 17:01

1 resposta

0

O problema é que você atribui a $SAM após consultá-lo em sua atribuição a $body .

$Users = Import-Csv "C:\PSScripts\Create\users.csv" -header("lastname","firstname","program","password","supervisor")
foreach ($User in $Users) 
{  
    $OU = "OU=users,DC=Contoso,DC=local"
    $UserFirstname = $User.Firstname 
    $UserLastname = $User.LastName 
    $Supervisor = $User.Supervisor
    $subject = "New Account Creation Completed"  

    #moved before $body= .... $SAM ...
    $SAM =  $UserFirstname + "." + $UserLastname 

    $body = "Good Morning! This e-mail is to alert you that your new staff person $SAM has been granted Contoso.org e-mail access. To log in to outlook web application, their username is $SAM and their temporary password is ChangeMe . They will be prompted to change it upon successful login."
    $smtp = "10.10.1.79"
    Send-MailMessage -to [email protected] -Subject $subject -body $body -SmtpServer $smtp -from [email protected]
    }
    
por 03.12.2015 / 00:38