10 คำสั่ง PowerShell ของ Office 365 ที่ใช้บ่อยที่สุด
PowerShell ยังคงเป็นเครื่องมืออันทรงคุณค่าสำหรับผู้ดูแลระบบ Office 365 แม้ว่าโซลูชันระบบคลาวด์จะบ่งบอกถึงความเรียบง่ายและความสะดวกในการใช้งาน ซึ่งไม่ได้อธิบายโดยทั่วไปเกี่ยวกับ Windows PowerShell แต่ก็มี Office 365 PowerShell cmdlets ที่มีประโยชน์สำหรับผู้ดูแลระบบ นอกจากนี้ แทนที่จะค้นหาตัวเลือกต่างๆ ที่มีอยู่ในพอร์ทัล Office 365 บางครั้งผู้ดูแลระบบพบว่าการพิมพ์โค้ดสองสามบรรทัดเพื่อให้ได้สิ่งที่ต้องการนั้นง่ายกว่า หลังจากดูคำสั่งเหล่านี้แล้ว คุณจะเห็นว่า PowerShell แม้จะใช้งานไม่ตรงไปตรงมา แต่ก็สามารถเป็นเครื่องมือที่มีค่าได้ แม้แต่สำหรับระบบบนคลาวด์ก็ตาม
อีกทางเลือกหนึ่งที่ตรงไปตรงมามากกว่าสำหรับการใช้ PowerShell สำหรับการรายงาน Office 365 คือการใช้ Lepide Auditor สำหรับ Office 365 ซึ่งเราจะพิจารณาในตอนท้ายของบทความนี้
คำสั่ง PowerShell ของ Office 365 10 อันดับแรก
ด้านล่างนี้คือรายการ PowerShell cmdlets สิบรายการที่ใช้บ่อยที่สุดใน Office 365
1. การเชื่อมต่อกับอินสแตนซ์ Office 365 ด้วย PowerShell
ขั้นตอนแรกคือการติดตั้งโมดูล Office 365 สำหรับ Windows PowerShell และเชื่อมต่อกับอินสแตนซ์ Office 365:
- ดาวน์โหลดและติดตั้งผู้ช่วยลงชื่อเข้าใช้ Microsoft Online Services สำหรับผู้เชี่ยวชาญด้านไอที RTW
-
นำเข้าโมดูล Online Services PowerShell สำหรับ Microsoft Azure Active Directory และ Office 365:
Install-Module -Name AzureAD Install-Module -Name MSOnline - ป้อนข้อมูลประจำตัวผู้ดูแลระบบ Office 365 ของคุณ:
$Cred=รับข้อมูลรับรอง - เชื่อมต่อกับบริการ Office 365 ทั้งหมด:
<รหัส>เชื่อมต่อ-MsolService -ข้อมูลประจำตัว $O365
เมื่อนำเข้าโมดูลสำหรับ Windows PowerShell แล้ว เราจะสามารถจัดการอินสแตนซ์ Office 365 ของเราได้
2. การเชื่อมต่อกับ Exchange Online และ SharePoint Online ด้วย PowerShell
นอกจากนี้เรายังสามารถเชื่อมต่อกับ Microsoft Exchange Online และ Microsoft SharePoint Online แยกกันได้ การเชื่อมต่อกับ Exchange Online ด้วย PowerShell นั้นเหมือนกับการเชื่อมต่อกับ Office 365 โดยพื้นฐานแล้ว:
$Cred = Get-Credential
Connect-ExchangeOnline -Credential $Credential -ShowBanner:$Falseการเชื่อมต่อกับ SharePoint Online จะแตกต่างออกไปเล็กน้อย ในการจัดการผู้เช่า SharePoint Online ของคุณ คุณต้องดาวน์โหลดและติดตั้งฟีเจอร์ SharePoint Online Management Shell ก่อน จากนั้นเรียกใช้สคริปต์ PowerShell ต่อไปนี้:
$admin="username@lepidesoftware.onmicrosoft.com"
$orgname="lepidesoftware"
$userCred = Get-Credential -UserName $admin -Message "Type the password."
Connect-SPOService -Url https://lepidesoftware-admin.sharepoint.com -Credential $userCred3. รับรายการ Office 365 PowerShell cmdlets ที่พร้อมใช้งาน
เรียกใช้ Get-Command cmdlet เพื่อรับรายการคำสั่ง Office 365 PowerShell ที่มีอยู่ทั้งหมด:
<รหัส>รับคำสั่ง-โมดูล MSOnline
เรายังสามารถรับรายการ cmdlets สำหรับ Azure Active Directory:
<รหัส>รับคำสั่ง-โมดูล AzureAD
4. รับรายชื่อผู้ใช้ Office 365 ทั้งหมดที่มี PowerShell
หากคุณต้องการสร้างรายชื่อผู้ใช้และใบอนุญาต Office 365 ให้ใช้ Get-MsolUser cmdlet ซึ่งจะดึงข้อมูลผู้ใช้ทั้งหมดที่มีสิทธิ์การใช้งานที่ถูกต้องในผู้เช่า Office 365 พร้อมด้วยพารามิเตอร์ DisplayName เมือง แผนก และ ObjectID
Get-MsolUser -maxresults 100 | Select DisplayName, Department, ObjectID
Get-MsolUser -EnabledFilter EnabledOnly -MaxResults 100 หากต้องการดูจำนวนใบอนุญาตของบัญชี คุณต้องเรียกใช้ cmdlet ต่อไปนี้:
<รหัส>รับ-MsolAccountSku
หากต้องการแสดงรายการบริการที่ใช้ได้ ให้รันสคริปต์ต่อไปนี้:
<รหัส>รับ-MsolAccountSku | เลือก -ExpandProperty ServiceStatus
5. การสร้างผู้ใช้ใหม่ใน Office 365 ด้วย PowerShell
ในการสร้างผู้ใช้ใหม่ เราใช้คำสั่ง New-MsolUser:
<รหัส>MsolUser ใหม่ -UserPrincipalName JSmith@lepidesoftware.onmicrosoft.com -DisplayName "John Smith" -FirstName “John” -LastName “Smith”
ระบบจะส่งออกข้อมูลรหัสผ่านและข้อมูลสถานะใบอนุญาตของผู้ใช้
6. การลบผู้ใช้ออกจากไซต์ทั้งหมดด้วย PowerShell
หากต้องการลบผู้ใช้ออกจากไซต์ทั้งหมดพร้อมกัน เราสามารถใช้คำสั่งต่อไปนี้:
$AdminSiteURL="https://lepidesoftware-admin.sharepoint.com"
$UserAccount = "username@lepidesoftware.onmicrosoft.com"
Connect-SPOService -URL $AdminSiteURL -Credential (Get-Credential)
$SitesCollections = Get-SPOSite -Limit ALL
ForEach($Site in $SitesCollections)
{
Write-host -f Yellow "Checking Site Collection:"$Site.URL
$User = Get-SPOUser -Limit All -Site $Site.URL | Where {$_.LoginName -eq $UserAccount}
If($User)
{
Remove-SPOUser -Site $Site.URL -LoginName $UserAccount
Write-host -f Green "`tUser $($UserAccount) has been removed from Site collection!"
}
}
7. การเปลี่ยนรหัสผ่านใน Office 365 ด้วย PowerShell
หากคุณต้องการเปลี่ยนรหัสผ่านสำหรับบัญชี ให้ใช้ Set-MsolUserPassword cmdlet
คุณสามารถระบุรหัสผ่านใหม่ตามตัวอย่างด้านล่าง หรือละเว้นพารามิเตอร์ -NewPassword เพื่อให้ระบบสร้างรหัสผ่านแบบสุ่มโดยอัตโนมัติ
Set-MsolUserPassword -UserPrincipalName JSmith@lepidesoftware.onmicrosoft.com -NewPassword 2wsx@WSX@128. การจัดการสมาชิกกลุ่มใน Office 365 ด้วย PowerShell
กลุ่ม Office 365 สามารถจัดการได้โดยใช้ PowerShell cmdlets หากต้องการดึงรายชื่อกลุ่มทั้งหมดใน Office 365 เพียงใช้คำสั่ง Get-MsolGroup หากต้องการเพิ่มผู้ใช้ในกลุ่ม ให้ใช้คำสั่ง Add-MsolGroupMember:
คำสั่งนี้ให้กลุ่มผู้ใช้ทั้งหมดในผู้เช่า:
<รหัส>เชื่อมต่อ-MsolService
รับ-MsolGroup
เมื่อต้องการเพิ่มสมาชิกในกลุ่ม Office 365:
$Credential = Get-Credential
Connect-ExchangeOnline -Credential $Credential -ShowBanner:$False
Add-UnifiedGroupLinks -Identity "Groupemail@lepidesoftware.onmicrosoft.com" -LinkType "Members" -Links "membername@lepidesoftware.onmicrosoft.com"GroupObjectId คือ ID เลขฐานสิบหกของกลุ่ม ซึ่งคุณสามารถรับได้จากคำสั่ง Get-MsolGroup GroupMemberObejctId คือ ID อ็อบเจ็กต์ผู้ใช้ ซึ่งคุณสามารถค้นหาได้โดยการรันคำสั่งนี้:
<รหัส>รับ-MsolUser | เลือก ObjectID
หากต้องการลบผู้ใช้ออกจากกลุ่ม ให้ใช้ Remove-MsoGroupMember cmdlet
9. การสร้างคอลเลกชันไซต์ SharePoint ด้วย PowerShell
เรายังสามารถสร้างคอลเลกชันไซต์ SharePoint โดยใช้ PowerShell ได้:
Connect-SPOService -url https://lepidesoftware-admin.sharepoint.com
New-SPOSite -Url "https://lepidesoftware.sharepoint.com/sites/PowershellSite1" -Owner "ownername@lepidesoftware.onmicrosoft.com" -StorageQuota "100" -Title "Powershell Site1"10. การสร้างรายงานใน Office 365 ด้วย PowerShell
PowerShell สามารถใช้สร้างรายงานต่างๆ ได้ ต่อไปนี้เป็นรายงาน Office 365 ที่มีประโยชน์ซึ่งทำผ่าน PowerShell:
รายละเอียดเกี่ยวกับกล่องจดหมายทั้งหมด:
<รหัส>รับกล่องจดหมาย | รับ MailboxStatistics
รายการกล่องจดหมายทั้งหมดที่ยังไม่ได้เข้าสู่ระบบในช่วง 30 วันที่ผ่านมา:
get-mailbox -resultsize unlimited |Get-MailboxStatistics | where {$_.LastLogonTime -lt (get-date).AddDays(-7)} | ft displayName,lastlogontime,lastloggedonuseraccount,servernameรายงานเกี่ยวกับผู้ส่งและผู้รับปริมาณสูงสุด:
รับ MailTrafficSummaryReport - ประเภท TopSpamRecipient
โปรดทราบว่า cmdlet การรายงานส่วนใหญ่เลิกใช้แล้วในเดือนมกราคม 2018 และแทนที่ด้วย MS Graph Reporting API ใหม่ ดังนั้น รายงานบางฉบับจึงพร้อมใช้งานใน Office 365 Security & Compliance Center เท่านั้น

