Thank you again.

In the past when I coded compound IF statements, I tried to avoid the IF
AND NOT conditions as most offend they did not work.
Can you point me to some reading on how PowerShell interprets conditional
statements. I need to understand this before being able to code correctly.

Todd

On Thu, Nov 20, 2014 at 4:28 PM, Michael B. Smith <[email protected]>
wrote:

>  I’m very careful about such things:
>
>
>
> foreach( $user in $users )
>
> {
>
>                 If( $user.WindowsEmailAddress –and ( -not (
> [String]::IsNullOrEmpty( $user.WindowsEmailAddress.ToString() ) ) ) )
>
>                 {
>
>                                 $UPN = $user.WindowsEmailAddress.ToString()
>
> Write-Host "Setting " $UPN
>
> $user | Set-User -UserPrincipalName $UPN
>
>                 }
>
> }
>
>
>
>
>
> *From:* [email protected] [mailto:
> [email protected]] *On Behalf Of *Todd Lemmiksoo
> *Sent:* Thursday, November 20, 2014 5:19 PM
> *To:* [email protected]
> *Subject:* Re: [Exchange] Powershell help
>
>
>
> OK, Thank you.
>
> Now I find that a couple of accounts do not have an email address. To
> bypass them do I test for WindowsEmailAddress being not null right before
> foreach or part of the foreach statement.
>
> Like.... If (WindowsEmailAddress not null) { $UPN = }
>
> I am used to IF then next else end.
>
>  Todd Lemmiksoo
>
>
>
> On Thu, Nov 20, 2014 at 3:35 PM, Michael B. Smith <[email protected]>
> wrote:
>
> You are close.
>
>
>
> $users = Get-User –OrganizationalUnit “OU=Information 
> Technology,OU=BR-General,OU=Employees,OU=Accounts,DC=ghsbtr,DC=net”
> -ResultSize Unlimited
> foreach ($user in $users)
> {
>     $UPN = $user.WindowsEmailAddress.ToString()
>       Write-Host "Setting " $UPN
>     $user | Set-User -UserPrincipalName $UPN
> }
>
>
>
> *From:* [email protected] [mailto:
> [email protected]] *On Behalf Of *Todd Lemmiksoo
> *Sent:* Thursday, November 20, 2014 3:57 PM
> *To:* [email protected]
> *Subject:* [Exchange] Powershell help
>
>
>
> I am using a powershell script to update the UPN in AD for our Office 365
> migration. Below is the script.
>
>
> #
> $users = Get-User -Filter "distinguishedName -like 'CN=*,OU=Information
> Technology,OU=BR-General,OU=Employees,OU=Accounts,DC=ghsbtr,DC=net'"
> -ResultSize Unlimited
> foreach ($user in $users)
> {
>     $UPN = "$($user.WindowsEmailAddress)"
>       Write-Host "Setting " $UPN
>     $user | Set-User -UserPrincipalName $UPN
> }
>
>
>
> It errors out with this error:
> Setting
> Invoke-Command : Cannot bind parameter 'UserPrincipalName' to the target.
> Exception setting "UserPrincipalName": "The p
> roperty can't be empty."
> At C:\Users\lemmitt99\AppData\Roaming\Microsoft\Exchange\RemotePowerShell\
> ghsmsasex1.ghsbtr.net\ghsmsasex1.ghsbtr.net.p
> sm1:60853 char:29
> +             $scriptCmd = { & <<<<  $script:InvokeCommand `
>     + CategoryInfo          : WriteError: (:) [Set-User],
> ParameterBindingException
>     + FullyQualifiedErrorId :
> ParameterBindingFailed,Microsoft.Exchange.Management.RecipientTasks.SetUser
>
> Everyone in the IT OU has an email address.
>
> --
>
> T. Todd Lemmiksoo
>
>
>
>
> --
>
> T. Todd Lemmiksoo
>



-- 
T. Todd Lemmiksoo

Reply via email to