Get-Help about_if
Get-Help about_comparison_operators

You can rewrite that statement without a complex condition, but it’s going to 
take 4 or 5 times as many lines.

From: [email protected] [mailto:[email protected]] On 
Behalf Of Todd Lemmiksoo
Sent: Friday, November 21, 2014 9:17 AM
To: [email protected]
Subject: Re: [Exchange] Powershell help

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]<mailto:[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]> 
[mailto:[email protected]<mailto:[email protected]>] 
On Behalf Of Todd Lemmiksoo
Sent: Thursday, November 20, 2014 5:19 PM
To: [email protected]<mailto:[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]<mailto:[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]> 
[mailto:[email protected]<mailto:[email protected]>] 
On Behalf Of Todd Lemmiksoo
Sent: Thursday, November 20, 2014 3:57 PM
To: [email protected]<mailto:[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<http://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