PowerShell คือ Shell Script ที่ Microsoft สร้างขึ้นมาเพื่อใช้ในการควบคุมการทำงานหลายๆผลิตภัณฑ์ของ Microsoft บางครั้งรูปแบบการควบคุมการทำงาน ไม่สามารถทำได้บนระบบ GUI(Graphical User Interface) จึงจำเป็นที่จะต้องใช้ PowerShell เข้ามาช่วย
ในระบบ Microsoft 365 บางครั้งสิ่งที่เราต้องการควบคุม ไม่สามารถทำได้บนระบบ GUI ดังนั้นจึงจำเป็นที่จะต้องใช้ PowerShell Script
เนื้อหาในบทความนี้จะเป็น จะรวบรวม PowerShell Script ที่ใช้กับ Microsoft 365 ที่ทางเน็ตเวย์เก็บรวบรวมไว้ใช้เอง และเพื่อเผยแพร่ให้ทุกคนสามารถนำไปประยุกต์ใช้กับ Microsoft 365 ได้
กรณีเครื่องคอมพิวเตอร์ยังไม่มีโปรแกรม PowerShell หรือยังไม่สามารถใช้งาน PowerShell ได้ ให้ตรวจสอบการติดตั้งจากข้อมูล วิธีการติดตั้ง PowerShell สำหรับเชื่อมต่อ Microsoft 365 admin
หลายครั้ง Script ที่เราต้องการใช้ หาไม่พบบน PowerShell จำเป็นที่จะต้องเปิด Session ของ Services นั้นๆเสียก่อนเสียก่อนเพื่อเรียกใช้งาน โดยวิธีการคือต้องเปิด PowerShell ในสิทธิ์ admin โดยทำการคลิ๊กขวาที่โปรแกรมแล้วเลือก run as administrator หลังจากนั้นใช้คำสั่งตามรายละเอียดด้านล่าง
เริ่มใช้งาน ให้ทำการ Connect to Exchange Online PowerShell (ทำทุกครั้ง)
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Set-ExecutionPolicy RemoteSigned
Import-PSSession $Session -DisableNameChecking
Add-Remove alias Microsoft 365 Group
Get-UnifiedGroup -Identity <UnifiedGroupIdParameter> | select-object displayname,Emailaddresses | FL
Set-UnifiedGroup -Identity <UnifiedGroupIdParameter> -EmailAddresses @{Add="address@yourdomain.com"}
Set-UnifiedGroup -Identity <UnifiedGroupIdParameter> -EmailAddresses @{Remove="address@yourdomain.com"}
Set TimeZone
<For All User>
Get-Mailbox -ResultSize Unlimited | Get-MailboxRegionalConfiguration
Get-Mailbox -ResultSize Unlimited | Set-MailboxRegionalConfiguration -TimeZone <"Time Zone">
<For Individual User>
Get-MailboxRegionalConfiguration <Identity>
Set-MailboxRegionalConfiguration <Identity> -TimeZone <"Time Zone">
กรณีประเทศไทยให้ใส่ค่า -TimeZone "SE Asia Standard Time"
Time Zones: https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-time-zones
Set Language
<For All User>
Get-Mailbox -ResultSize Unlimited | Get-MailboxRegionalConfiguration
Get-Mailbox -ResultSize Unlimited | Set-MailboxRegionalConfiguration -DateFormat <"Date Format"> -Language <Language Code>
<For Individual User>
Get-MailboxRegionalConfiguration <Identity>
Set-MailboxRegionalConfiguration <Identity> -DateFormat <"Date Format"> -Language <Language Code>
กรณีภาษาไทยให้ใส่ค่า -DateFormat "dd MMM yyyy" -Language th-TH
Language: https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-input-locales-for-windows-language-packs
Change Address mail group
Get-UnifiedGroup #เพื่อตรวจสอบว่ามี Group ใดอยู่บ้าง
Set-UnifiedGroup -Identity <Alias> -PrimarySmtpAddress <New-Email>
ตัวอย่าง
Set-UnifiedGroup -Identity ITSGroup -PrimarySmtpAddress ITS-New@netway.co.th
Upgrade distribution lists to Microsoft 365 Groups
Get-DistributionGroup #เพื่อตรวจสอบว่ามี Group ใดอยู่บ้าง
Upgrade-DistributionGroup -DlIdentities \<Dl SMTP address\>
ตัวอย่าง
Upgrade-DistributionGroup -DlIdentities its@netway.co.th
Prevent Users from Changing Photo in OWA
Get-OWAMailboxPolicy | Set-OWAMailboxPolicy -SetPhotoEnabled $False
Remove User Photo
Remove-UserPhoto- "user name"
Move/copy mailbox from one user to another
Search-Mailbox -Identity “Old User” -TargetMailbox “Current User” -TargetFolder “Old-Mailbox” -LogLevel Full