SharePoint Online: วิธีกำหนดเวลาสคริปต์ PowerShell โดยใช้ Azure Automation ได้อย่างไร
ข้อกำหนด: กำหนดเวลาสคริปต์ PowerShell สำหรับ SharePoint Online โดยใช้ Azure Automation
วิธีใช้ Azure Automation เพื่อกำหนดเวลาสคริปต์ PowerShell สำหรับ SharePoint Online
Azure Automation เป็นตัวเลือกที่ยอดเยี่ยมหากคุณต้องการกำหนดเวลางาน PowerShell ที่เกิดซ้ำในระบบคลาวด์โดยตรง โดยไม่ต้องพึ่งพาเซิร์ฟเวอร์ภายในองค์กรหรือเครื่องเสมือนผ่านตัวกำหนดเวลางานของ Windows การจัดกำหนดการสคริปต์ PowerShell ให้ทำงานใน Azure ช่วยให้คุณสามารถทำงานและกระบวนการต่างๆ ในสภาพแวดล้อม Azure ของคุณได้โดยอัตโนมัติ ด้วยการตั้งค่าเพียงเล็กน้อย คุณสามารถกำหนดเวลาให้สคริปต์ PowerShell ของคุณทำงานตามเวลาหรือช่วงเวลาที่กำหนดได้อย่างง่ายดาย ทำให้ง่ายต่อการทำงานและกระบวนการต่างๆ โดยอัตโนมัติ ในคู่มือนี้ เราจะอธิบายขั้นตอนการตั้งค่าและกำหนดเวลาสคริปต์ PowerShell ให้ทำงานใน Azure รวมถึงการสร้างรันบุ๊ก การกำหนดค่ากำหนดการ และการทดสอบสคริปต์
สมมติว่าคุณมีการสมัครใช้งาน Azure อยู่แล้ว ต่อไปนี้เป็นขั้นตอนในการสร้างงานตามกำหนดการอัตโนมัติใน Azure ในระดับสูง:
- สร้างบัญชี Azure Automation
- ตั้งค่าข้อมูลรับรองเพื่อเชื่อมต่อกับ SharePoint Online
- นำเข้าโมดูลที่จำเป็น
- สร้าง Runbook และเพิ่มสคริปต์เพื่อเรียกใช้
- กำหนดเวลาสคริปต์ PowerShell
ขั้นตอนที่ 1: สร้างบัญชี Azure Automation
หากคุณไม่ได้สร้างบัญชีการทำงานอัตโนมัติของ Azure ไว้ คุณต้องสร้างบัญชีก่อน
- เข้าสู่ระบบพอร์ทัล Azure https://portal.azure.com
คลิกที่ปุ่ม "สร้างทรัพยากร" >> ค้นหาและค้นหา "การทำงานอัตโนมัติ" >> คลิกที่ "เพิ่ม" เพื่อสร้างบัญชีการทำงานอัตโนมัติใหม่
ในกรณีของฉัน ฉันได้สร้างบัญชีอัตโนมัติเป็น "SharePoint-Online-Reporting" เมื่อสร้างแล้ว คุณจะถูกนำเข้าสู่หน้าบัญชีอัตโนมัติที่สร้างขึ้น
ขั้นตอนที่ 2: นำเข้าโมดูล PowerShell ที่จำเป็น
เราจะใช้โมดูล PnP PowerShell สำหรับ SharePoint Online ในสคริปต์ PowerShell ของเรา ดังนั้นเราต้องนำเข้ามันเข้าสู่สภาพแวดล้อมของเราก่อน
- เปิดบัญชี Automation ที่สร้างขึ้น >> คลิกที่ “Modules Gallery” ในการนำทางด้านซ้าย
ค้นหาและค้นหา “SharePointPnPPowerShellOnline” (หรือโมดูลอื่นๆ ที่เกี่ยวข้อง) >> คลิกที่ลิงค์โมดูล >> ใช้ปุ่ม “นำเข้า” เพื่อนำเข้าโมดูล
- ขั้นตอนนี้จะใช้เวลาสักครู่และนำเข้าโมดูลที่เลือก
ขั้นตอนที่ 3: เพิ่มข้อมูลรับรองสำหรับการเรียกใช้เป็นบัญชี
เราจำเป็นต้องตั้งค่าข้อมูลรับรองเพื่อเรียกใช้สคริปต์ PowerShell ใน Azure Automation Runbook แนวคิดก็คือสคริปต์ PowerShell ของเรารับข้อมูลประจำตัวที่เก็บไว้จากบัญชีอัตโนมัติ Azure เชื่อมต่อกับผู้เช่า SharePoint Online สร้างรายงานที่เก็บข้อมูลสำหรับไซต์ทั้งหมด จากนั้นส่งอีเมลทุกวัน
- จากระบบอัตโนมัติ บัญชี คลิกลิงก์ "ข้อมูลรับรอง" ในการเปิดใช้งานด่วน
คลิกที่ปุ่ม "เพิ่มข้อมูลประจำตัว" ระบุข้อมูลประจำตัวที่ถูกต้องซึ่งมีการเข้าถึงที่จำเป็น ในกรณีของฉัน ฉันใช้บัญชีที่มีบทบาทผู้ดูแลระบบ SharePoint Online คลิกที่ปุ่ม "สร้าง" เพื่อสร้างข้อมูลรับรอง
ตอนนี้เราสามารถใช้ข้อมูลรับรองนี้ในสคริปต์ PowerShell ของเราได้แล้ว!
ขั้นตอนที่ 4: สร้าง Runbook ด้วยสคริปต์ PowerShell
ตามชื่อของมัน Runbook คือคอนเทนเนอร์ของสคริปต์ที่เรากำลังจะเรียกใช้ Runbook แสดงรายการ Runbooks ที่เผยแพร่ทั้งหมดที่พร้อมใช้งานสำหรับระบบอัตโนมัติ
- เปิดบัญชี Azure Automation ที่สร้างขึ้น >> คลิกที่ “Runbooks” ภายใต้กระบวนการอัตโนมัติ
คลิกที่ "สร้าง Runbook" >> กำหนดชื่อและเลือกประเภทเป็น PowerShell และคลิกที่ปุ่ม "สร้าง"
เมื่อสร้าง PowerShell Runbook แล้ว ระบบจะนำคุณไปยังหน้าเพื่อแก้ไขสคริปต์ PowerShell เพื่อเรียกใช้ เขียนสคริปต์ PowerShell ที่จำเป็นสำหรับระบบอัตโนมัติ ในกรณีของฉัน ฉันได้เขียนสคริปต์ PowerShell ด้านล่างเพื่อสร้างรายงานพื้นที่เก็บข้อมูลสำหรับไซต์ทั้งหมดในผู้เช่าและส่งอีเมล
#Get Stored Credentials
$CrescentCred = Get-AutomationPSCredential -Name "StorageRptCred"
#Set Variables
$TenantAdminURL = "https://crescent-admin.sharepoint.com"
$EmailTo = "Salaudeen@crescent.com"
#Connect to PnP Online
Connect-PnPOnline -Url $TenantAdminURL -Credentials $CrescentCred
$CSSStyle = "<style>
table {font-family: Arial, Helvetica, sans-serif; border-collapse: collapse; width: 100%;}
table td, th {border: 1px solid #ddd; padding: 8px;}
table tr:hover {background-color: #ddd;}
table th { padding-top: 12px; padding-bottom: 12px; text-align: left; background-color: #4CAF50; color: white;}
</style>"
#Get the Site collection Storage details
[string]$EmailBody = Get-PnPTenantSite | Select @{Label="Title";Expression={$_.Title}},
@{Label="URL";Expression={$_.URL}},
@{Label="Allocated (GB)";Expression={$_.StorageMaximumLevel/1MB}},
@{Label="Used (MB)";Expression={$_.StorageUsage}},
@{Label="Warning Level (GB)";Expression={$_.StorageWarningLevel/1MB}} |
ConvertTo-Html -Title "Crescent Inc. Storage Report" -Head $CSSStyle -PreContent "Sites Storage Report"
#Send Email
Send-PnPMail -To $EmailTo -Subject "Storage Report" -Body $EmailBody
บันทึกและทดสอบสคริปต์ PowerShell โดยคลิกที่ปุ่ม "บันทึก" และคลิกปุ่ม "บานหน้าต่างทดสอบ" ในตัวแก้ไขโค้ด เมื่อสคริปต์เรียบร้อยดีแล้ว ให้คลิก "เผยแพร่" เพื่อเผยแพร่ Runbook เนื่องจากจะต้องเผยแพร่ Runbook เพื่อสร้างกำหนดการ
ขั้นตอนที่ 5: เพิ่มกำหนดการให้กับสคริปต์ PowerShell ของคุณ
ในขั้นตอนสุดท้าย เราต้องเพิ่มกำหนดการให้กับสคริปต์ PowerShell ต่อไปนี้เป็นวิธีสร้างกำหนดการสำหรับ Azure Runbook
- คลิกที่ “Schedules” จาก Runbook ที่สร้างขึ้น >> คลิกที่ลิงค์ “Add a schedule”
- เลือก "เชื่อมโยงกำหนดการไปยัง Runbook ของคุณ" >> คลิกที่ลิงก์ "สร้างกำหนดการใหม่"
ป้อนรายละเอียดที่จำเป็นสำหรับกำหนดการของคุณ เช่น ชื่อ คำอธิบาย วันที่เริ่มต้น เวลา โซนเวลา และรายละเอียดการเกิดซ้ำ ในกรณีของฉัน ตารางจะทำงานทุกวันตามเวลาที่กำหนดจนถึงวันหมดอายุ
เอาล่ะ ตอนนี้เราได้กำหนดค่าสคริปต์ PowerShell ในระบบอัตโนมัติของ Azure แล้ว รอให้งานที่กำหนดเวลาไว้ทำงาน และนี่คืออีเมลงานที่กำหนดเวลาไว้ของฉันในการดำเนินการ:
หากคุณต้องการกำหนดเวลาสคริปต์ PowerShell คุณสามารถใช้ตัวกำหนดเวลางานของ Windows ได้เช่นกัน: วิธีสร้างงานที่กำหนดเวลาไว้สำหรับสคริปต์ PowerShell ด้วย Windows Task Scheduler
บทสรุป
โดยสรุป การตั้งเวลาสคริปต์ PowerShell ให้ทำงานใน Azure อาจเป็นวิธีที่มีประโยชน์ในการทำงานและกระบวนการต่างๆ ในสภาพแวดล้อม Azure ของคุณโดยอัตโนมัติ ด้วยการทำตามขั้นตอนที่ระบุไว้ในคู่มือนี้ คุณสามารถกำหนดเวลาให้สคริปต์ PowerShell ของคุณทำงานในช่วงเวลาหรือช่วงเวลาที่ระบุได้ คุณสามารถประหยัดเวลาและความพยายามโดยการทำงานที่ซ้ำซ้อนหรือใช้เวลานานโดยอัตโนมัติ และตรวจสอบให้แน่ใจว่าสภาพแวดล้อม Azure ของคุณทำงานได้อย่างราบรื่นและมีประสิทธิภาพ






