איפה הסקריפטים שלי 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 ואפשר לראות את כל הסקריפטים שהוגדר אי פעם על אותו טננט.

2020-01-25_08h34_56

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

2020-01-25_08h29_35

אפשר לתשאל ולעשות אחלה דברים מדהימים עם 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

2020-01-25_08h44_45



:קטגוריותMicrosoft Endpoint Manager

תגים: , ,

מה דעתך?

This site uses Akismet to reduce spam. Learn how your comment data is processed.