איפה הסקריפטים שלי MEM

סדרת מאמרים קצרים (מיקרו-בלוג) לביצוע פעולות בסיסיות ומתקדמות באמצעות Microsoft Endpoint Manager.

המאמר הנוכחי מתמקד בהוצאת סקריפטים מתוך Device Configuration ומתוך תשתית Microsoft Graph API לקובץ CSV עם כל התוכן הקיים בסקריפט.

לאחר שמגדירים ומעלים קובץ PowerShell סקריפט אל Microsoft Endpoint Manager הסקריפט אינו זמין יותר בממשק, ובמקרים רבים אותו קובץ סקריפט לא נמשר ולכן אין אפשרות לבצע שינוי על אותה קונפיגורציה.

הקונפיגורציות של MEM ועוד הרבה דברים בענן נשמרים במקום אחד Microsoft Graph API שם ניתן למצוא את כל "הדברים שהלכו לאיבוד", ומכיוון שישנו מודול ותשתית עצומה של Graph API ניתן להוציא או לצפות בכל הנתונים שהוגדרו או שייכים להגדרות הקשורים לתשתית MEM או כל דבר אחר בענן כולל צד שלישי.

בדוגמה שלנו אנו צריכים לתשאל מהם הסקריפטים הקיימים בממשק ולכן נפנה לכתובת הבאה: https://graph.microsoft.com/beta/deviceManagement/deviceManagementScripts

כך זה נראה כאשר מתשאלים את deviceManagementScripts ואפשר לראות את כל הסקריפטים שהוגדר אי פעם על אותו טננט.

במסמכים הרשמיים של Microsoft Graph API ניתן לראות את כל המידע שניתן לתשאל מול MEM ובאופן כללי.

אפשר לתשאל ולעשות אחלה דברים מדהימים עם Microsoft Graph API.

איך לייצא את הסקריפטים

בכדי לייצא את כל הסקריפטים שאי פעם השתשמנו בפעם כולל הפקודות עצמם נפעל לפי הפעולות הבאות:

  • התקנה והתחברות למודול Microsoft.Graph.Intune
  • שינוי נתיב שמירה של קובץ CSV (בסקריפו המצורף מופנה אל C:\Temp)
# Connects to MEM PowerShell
#Install-Module Microsoft.Graph.Intune # Install for the first time only
$creds=Get-Credential
Connect-MSGraph -Credential $creds
# Get PowerShell Scripts
$request= Invoke-MSGraphRequest -HttpMethod GET -Url "deviceManagement/deviceManagementScripts" -Verbose
$allScripts= @()
$request.value.GetEnumerator() | ForEach-Object {
    $currentScript = Invoke-MSGraphRequest -HttpMethod GET -Url "deviceManagement/deviceManagementScripts/$($PSItem.id)"
    $allScripts += [PSCustomObject]@{
        id = $currentScript.id
        displayName = $currentScript.displayName
        description = $currentScript.description
        scriptContent = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($currentScript.scriptContent))
    }
}
# Export PowerSHell Scripts and Metadata to CSV file (C:\temp)
$AllScripts | Export-Csv -Path $(Join-Path -Path C:\temp -ChildPath "MEMPowerShellScripts.csv") -Delimiter ";" -NoTypeInformation

בסיום נוכל לצפות בכל הסקריפטים הקיימים מתוך קובץ MEMPowerShellScripts

מה דעתך?

אתר זה עושה שימוש באקיזמט למניעת הודעות זבל. לחצו כאן כדי ללמוד איך נתוני התגובה שלכם מעובדים.