SharePoint Online: Azure Otomasyonunu Kullanarak PowerShell Betiği Nasıl Planlanır?


Gereksinim: Azure Otomasyonunu kullanarak SharePoint Online için PowerShell betiklerini zamanlayın.

SharePoint Online için PowerShell Betiklerini Planlamak amacıyla Azure Otomasyonu nasıl kullanılır?

Windows Görev zamanlayıcı aracılığıyla şirket içi sunucunuza veya sanal makinelerinize herhangi bir bağımlılık olmadan yinelenen PowerShell görevlerinizi doğrudan bulutta zamanlamak istiyorsanız Azure Otomasyonu mükemmel bir seçenektir. Azure'da çalışacak bir PowerShell betiğinin zamanlanması, Azure ortamınızdaki görevleri ve süreçleri otomatikleştirmenize olanak tanır. Biraz kurulumla PowerShell komut dosyalarınızı belirli zamanlarda veya aralıklarla çalışacak şekilde kolayca zamanlayabilirsiniz, bu da çok çeşitli görevleri ve süreçleri otomatikleştirmeyi kolaylaştırır. Bu kılavuzda, bir runbook oluşturma, zamanlamayı yapılandırma ve betiği test etme de dahil olmak üzere Azure'da çalışacak bir PowerShell betiğini ayarlama ve zamanlama adımlarını açıklayacağız.

Mevcut bir Azure aboneliğiniz olduğunu varsayarak Azure'da yüksek düzeyde otomatik zamanlanmış bir görev oluşturma adımları aşağıda verilmiştir:

  1. Azure Otomasyon Hesabı Oluşturma
  2. SharePoint Online'a bağlanmak için Kimlik Bilgilerini Ayarlayın
  3. Gerekli Modülleri İçe Aktarın
  4. Runbook oluşturun ve çalıştırılacak komut dosyalarını ekleyin
  5. PowerShell Komut Dosyasını Zamanlama

1. Adım: Azure Otomasyon Hesabı Oluşturun

Mevcut herhangi bir Azure otomasyon hesabınız yoksa öncelikle bir tane oluşturmanız gerekir.

  1. Azure Portal'da oturum açın https://portal.azure.com
  2. "Kaynak oluştur" düğmesini tıklayın >> "Otomasyon"u arayın ve bulun >> Yeni bir otomasyon hesabı oluşturmak için "Ekle"yi tıklayın.

  3. Benim durumumda "SharePoint-Online-Reporting" adında bir otomasyon hesabı oluşturdum. Oluşturulduktan sonra oluşturulan otomasyon hesabı sayfasına yönlendirileceksiniz.

Adım 2: Gerekli PowerShell Modüllerini İçe Aktarın

PowerShell scriptimizde SharePoint Online için PnP PowerShell modülünü kullanacağız. Bu yüzden önce onu çevremize ithal etmeliyiz.

  1. Oluşturulan Otomasyon hesabını açın >> Sol gezinme bölümündeki “Modüller Galerisi”ne tıklayın.
  2. “SharePointPnPPowerShellOnline”ı (veya başka bir ilgili modülü) arayın ve bulun >> Modül bağlantısına tıklayın >> modülü içe aktarmak için “İçe Aktar” düğmesini kullanın.

  3. Bu biraz zaman alacak ve seçilen modülü içe aktaracaktır.

3. Adım: Hesap Olarak Çalıştırmak için Kimlik Bilgilerini Ekleyin

Azure Otomasyon Runbook'unda PowerShell betiğini çalıştırmak için kimlik bilgilerini ayarlamamız gerekiyor. Yani fikir şudur: PowerShell betiğimiz, depolanan kimlik bilgilerini Azure otomasyon hesabından alır, SharePoint Online kiracısına bağlanır, tüm siteler için depolama raporu oluşturur ve ardından her gün bir e-posta gönderir.

  1. Otomasyondan, hesaptan, hızlı başlatmadaki “Kimlik Bilgileri” bağlantısını tıklayın.
  2. “Kimlik bilgisi ekle” düğmesine tıklayın. Gerekli erişime sahip tüm geçerli kimlik bilgilerini sağlayın. Benim durumumda, SharePoint Çevrimiçi Yönetici rolüne sahip bir hesap kullandım. Bir kimlik bilgisi oluşturmak için “Oluştur” düğmesine tıklayın.

Artık bu kimlik bilgisini PowerShell betiklerimizde kullanabiliriz!

4. Adım: PowerShell Betiği ile Runbook Oluşturun

Runbook, adından da anlaşılacağı gibi çalıştıracağımız betiğin kapsayıcısıdır. Runbook, otomasyon için kullanılabilen tüm yayımlanmış Runbook'ları listeler.

  1. Oluşturulan Azure Otomasyonu hesabını açın >> Süreç otomasyonu altında “Runbook'lar”a tıklayın.
  2. “Runbook Oluştur” seçeneğine tıklayın >> Bir ad atayın ve türünü PowerShell olarak seçip “Oluştur” butonuna tıklayın.

PowerShell Runbook'u oluşturulduktan sonra, çalıştırılacak PowerShell betiğini düzenlemek için sayfaya yönlendirilirsiniz. Otomasyon için gerekli PowerShell betiklerini yazın. Benim durumumda, kiracıdaki tüm siteler için bir depolama raporu oluşturmak ve bir e-posta göndermek için aşağıdaki PowerShell betiğini yazdım.


#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 betiğini kaydedip test etmek için “Kaydet”e ve kod düzenleyicideki “Test bölmesi” düğmelerine tıklayın. Komut dosyasını tamamladığınızda Runbook'u yayınlamak için "Yayınla"yı tıklayın; çünkü planların oluşturulabilmesi için Runbook'un yayınlanması gerekir.

Adım 5: PowerShell Betiğinize Zamanlama Ekleme

Son adım olarak PowerShell betiğine bir zamanlama eklememiz gerekiyor. Azure Runbook için zamanlamayı nasıl oluşturacağınız aşağıda açıklanmıştır.

  1. Oluşturulan Runbook'tan "Zamanlamalar"a tıklayın >> "Zamanlama ekle" bağlantısına tıklayın.
  2. "Bir Planlamayı runbook'unuza bağlayın" seçeneğini seçin >> "Yeni bir program oluştur" bağlantısını tıklayın.
  3. Programınız için ad, açıklama, başlangıç tarihi, saat, saat dilimi ve yinelenme ayrıntıları gibi gerekli ayrıntıları girin. Benim durumumda program, bitiş tarihine kadar her gün verilen saatte çalışacaktır.

Tamam, şimdi Azure otomasyonunda PowerShell betiğini yapılandırdık. Planlanan işin çalışmasını bekleyin ve işte planlanmış iş e-postalarım çalışıyor:

Bir PowerShell betiği zamanlamak istiyorsanız, Windows Görev zamanlayıcısını da kullanabilirsiniz: Windows Görev Zamanlayıcı ile PowerShell Betiği için Zamanlanmış Görev Nasıl Oluşturulur?

Çözüm

Sonuç olarak, bir PowerShell betiğini Azure'da çalışacak şekilde zamanlamak, Azure ortamınızdaki görevleri ve süreçleri otomatikleştirmenin yararlı bir yolu olabilir. Bu kılavuzda özetlenen adımları takip ederek PowerShell betiklerinizi belirli zamanlarda veya aralıklarla çalışacak şekilde zamanlayabilir, tekrarlanan veya zaman alan görevleri otomatikleştirerek zamandan ve emekten tasarruf edebilir ve Azure ortamınızın sorunsuz ve verimli bir şekilde çalışmasını sağlayabilirsiniz.

İlgili makaleler