To discover which version of PowerShell you are running
$host
After EMS is loaded, you have the following variables:
$ExBin
$ExScripts
$ExInstall
$_
Get-CASMailbox | Where-Object{$_.owaEnabled} | Select Name
Get-User | Where-Object {$_.Department -eq ""} | Set-User -Department 'Network'
$u=(Get-User -ID rKing).Identity;Get-Group | Where-Object{$_.members -eq $U}
set-user rKing -Office "Building A"
get-user -filter {Office -eq "Building A"} | Set-User -Office "Building B"
get-mailbox | Get-MailboxFolderStatistics | Where-Object {$_.Name -eq 'Inbox' -and $_.itemsInfolder -lt 10} | Select Identity, itemsInFolder
get-mailbox | Get-MailboxFolderStatistics | Where-Object {$_.Name -eq 'Inbox' -and $_.itemsInfolder -gt 10} | Select Identity, itemsInFolder
Add a recipient photo
regsvr32 schmmgmt.dll
MMC --Add Active Directory Schema console
Attributes
Locate the ThumbnailPhoto attribute as shown:
![]()
![]()
The F:\Pictures folder includes the photos.
Import-RecipientDataProperty -Identity 'Rudy King' -Picture -FileData([Byte[]]$(Get-Content -Path 'F:\pictures\rKing.jpg' -Encoding Byte -ReadCount 0))
Import-RecipientDataProperty -Identity 'Administrator' -Picture -FileData([Byte[]]$(Get-Content -Path 'F:\pictures\Administrator.jpg' -Encoding Byte -ReadCount 0))
Set the ThumbnailPhoto to be offline accessible
$attributes = (Get-OfflineAddressBook “Default Offline Address Book”).ConfiguredAttributes
$attributes.Remove(“thumbnailphoto,Indicator”)
Set-OfflineAddressBook “Default Offline Address Book” -ConfiguredAttributes $attributes
$attributes.Add(“thumbnailphoto,Value”)
Set-OfflineAddressBook “Default Offline Address Book” -ConfiguredAttributes $attributes
Update-OfflineAddressBook “Default Offline Address Book”
Open outlook with Exchange configuration in cached mode, the photos for both Administrator and Rudy King will show.
new-mailboxdatabase -Server 'EX1' -Name 'TelusDataBase'
mount-database -Identity 'TelusDataBase'
Set $password variable first
$password=read-host "Enter password please!" –asSecureString
$firstName="George"
$lastName="Allistair"
$city="Vancouver"
$company="Telus"
$province="BC"
$department="Network"
New-Mailbox -Name "$firstName $lastName" -Alias "$firstName.$lastName" -OrganizationalUnit 'Lab.com/Test' -UserPrincipalName "$firstName.$lastName@Lab.com" -SamAccountName "$firstName.$lastName" -FirstName $firstName -Initials '' -LastName $lastName -Password $password -Database 'TelusDatabase'
set-user "$firstname $lastname" -Department $department
$firstName="Jim"
$lastName="Patterson"
$city="Vancouver"
$company="Telus"
$province="BC"
$department="Accounting"
New-Mailbox -Name "$firstName $lastName" -Alias "$firstName.$lastName" -OrganizationalUnit 'Lab.com/Test' -UserPrincipalName "$firstName.$lastName@Lab.com" -SamAccountName "$firstName.$lastName" -FirstName $firstName -Initials '' -LastName $lastName -Password $password -Database 'TelusDatabase'
set-user "$firstname $lastname" -Department $department
$firstName="Rob"
$lastName="Newman"
$city="Vancouver"
$company="Telus"
$province="BC"
$department="Accounting"
New-Mailbox -Name "$firstName $lastName" -Alias "$firstName.$lastName" -OrganizationalUnit 'Lab.com/Test' -UserPrincipalName "$firstName.$lastName@Lab.com" -SamAccountName "$firstName.$lastName" -FirstName $firstName -Initials '' -LastName $lastName -Password $password -Database 'TelusDatabase'
set-user "$firstname $lastname" -Department $department
$firstName="Algo"
$lastName="Clinton"
$department="Accounting"
New-Mailbox -Name "$firstName $lastName" -Alias "$firstName.$lastName" -OrganizationalUnit 'Lab.com/Test' -UserPrincipalName "$firstName.$lastName@Lab.com" -Office $office,SamAccountName "$firstName.$lastName" -FirstName $firstName -Initials '' -LastName $lastName -Password $password -Database 'TelusDatabase'
set-user "$firstname $lastname" -Department $department
Server-side filters and client-side filters
Filterable properties
The -Filter parameter is used in the following cmdlets:
Get-CASMailbox
Get-Contact
Get-DistributionGroup
Get-DynamicDistributionGroup
Get-Group
Get-Mailbox
Get-MailContact
Get-MailPublicFolder
Get-MailUser
Get-Recipient
Get-UMMailbox
Get-User
For example,
get-user -Filter {Department -eq 'accounting'} -resultsize 3
get-user -ResultSize 3 | where {$_.Department -eq 'Accounting'}

measure-command{Get-User -Filter {Department -eq 'Accounting'} | Set-Mailbox -ProhibitSendQuota 3000MB -UseDatabaseQuotaDefaults $False}
Days : 0
Hours : 0
Minutes : 0
Seconds : 0
Milliseconds : 801
Ticks : 8013554
TotalDays : 9.27494675925926E-06
TotalHours : 0.000222598722222222
TotalMinutes : 0.0133559233333333
TotalSeconds : 0.8013554
TotalMilliseconds : 801.3554
Measure-command{Get-User | Where{$_Department -eq 'Accounting'} | Set-mailbox -ProhibitSendQuota 1000MB -UseDatabaseQuotaDefaults $false}
Days : 0
Hours : 0
Minutes : 0
Seconds : 4
Milliseconds : 93
Ticks : 40936067
TotalDays : 4.73797071759259E-05
TotalHours : 0.00113711297222222
TotalMinutes : 0.0682267783333333
TotalSeconds : 4.0936067
TotalMilliseconds : 4093.6067
Server Size filter is more efficient than client side filter.
Get-User -Filter {Department -eq 'Accounting'} | Set-Mailbox -Office '8TH Floor'
Aliases:? and %
?=Where-object
%=ForEach-Object
(get-mailbox) | Where{(Get-MailboxStatistics $_).TotalItemSize -gt "10kb"}
get-mailbox | Where{(Get-MailboxStatistics $_).TotalItemSize -gt "10kb"}
(get-mailbox) | ?{(Get-MailboxStatistics $_).TotalItemSize -gt "10kb"}

%=ForEach-Object
Get-Mailbox "Rudy King" | %{ Set-Mailbox $_ -EmailAddresses ($_.EmailAddresses+'RK@LAB.COM')}
(Get-Mailbox) | %{ Set-Mailbox $_ -Office '9Th floor'}
Get-Mailbox | %{ Set-Mailbox $_ -Office '9Th floor'}----Error "Pipeline not executed because a pipeline is already executing."
("John Smith","Scott Culp","Algo Clinton"| Get-Mailbox) | %{ Set-Mailbox $_ -Office '6Th floor'}
("John Smith","Scott Culp","Algo Clinton"| Get-Mailbox) | Set-Mailbox -Office '8Th floor' ------better
("John Smith","Scott Culp","Algo Clinton"| Get-Mailbox) | Set-Mailbox -CustomAttribute1 'VP'
(Get-Mailbox -Filter {CustomAttribute1 -eq 'VP'} )| %{ Set-Mailbox $_ -Office '9Th floor'}
(Get-Mailbox -Filter {CustomAttribute1 -eq 'VP'} )| Set-Mailbox -Office '9Th floor' ----better