יצירת דוחות מדיניות קבוצת פעולה פעילה ב-Active Directory עם PowerShell (GPO)

צור דוחות מדיניות קבוצת המשתמשים ב- Active Directory עם PowerShell. בעזרת הפקודה Get-GpoReport, אנו יכולים ליצור דוחות על מדיניותי קבוצה (GPO), החל מדוחות טקסט פשוטים ועד דוחות HTML מלאים. בנוסף, נוכל לאוטומציה של תהליך יצירת הדוח הזה בעזרת PowerShell. כדי לחסוך זמן ולקבל מידע חשוב על מערכת ה- Active Directory (AD) שלך. במאמר זה, נלמד כיצד לייבא את מודול ה- PowerShell של מדיניות הקבוצה, לייצא GPOs, ולקשר GPOs ל- יחידת ארגון (OU). זה ישמש כדוגמה, כדי שכולם יעבדו יחד כדי להפיק דוחות מעולים.

האם נתחיל עם כיצד ליצור דוחות מדיניות של Active Directory עם PowerShell.תקרא גם מצא SID במשתמשי Active Directory ומחשבים בעזרת PowerShell

יצירת דוחות מדיניות קבוצה של AD (GPO) באמצעות PowerShell

דרישות קדימונים

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

  • מודול PowerShell למדיניות קבוצה. אם אתם משתמשים ב-Windows 10, נוכל למצוא את זה על ידי הורדה והתקנת RSAT, או אם אתם משתמשים ב-Windows Server, נוכל להשתמש ב-פקודת PowerShell למטה:
Install-WindowsFeature -Name GPMC
  • A computer member of the same AD domain from which we will query GPOs.
  • מחשב שנצמד ל-AD עם חשבון משתמש בתוך התחום עם זכויות לקרוא GPOs.

יצירת דוחות HTML עם Get-GpoReport

ראשית כל, נניח שיש לנו GPO יחיד. לכן, תרצה לצפות בהגדרות ממנו (וגם ליצור דוח HTML) כדי להתחיל לעבוד. מזל שGet-GpoReport יכול לגלות GPO בכל אחד ולהשתמש ב-PowerShell כדי לייצא אותם. כדי לעשות זאת, נצטרך את שם ה-GPO או את זיהוי המזהה הגלובלי (GUID) של ה-GPO.

לכן, תצטרך להשתמש לפחות בשלושה פרמטרים כדי ליצור דוח HTML מפורט:

  • שם או Guid כדי לאתר את ה-GPO.
  • פרמטר ReportType לציון סוג הדוח ליצירה. אנו יכולים לבחור בין HTML או XML (שפת סימון רחבה).
  • נתיב לציון המקום שבו נרצה לשמור את הדוח.

אולי יש לנו GPO בסביבתך. לדוגמה, ניתן לציין את ReportType בערך HTML לדיווח מסוג HTML ואת הנתיב שבו תרצה לשמור את קובץ ה-HTML הזה אם נכיר את שם ה-GPO, כפי שנעשה בדוגמה זו.

Get-GPOReport -Name 'Sample GPO' -ReportType 'HTML' -Path 'C:\Temp\SampleReport.html'

בנוסף, נוכל להשתמש בפרמטר Guid כדי למצוא את ה-GPO, אך זהו שלב נוסף בשימוש בדוגמה הבאה.נוכל לצפות בדוח בדפדפן המועדף עליך כאשר הוכן.

$gponame = (Get-GPO -Name 'Sample GPO').Id
Get-GPOReport -Guid $gponame -ReportType 'HTML' -Path 'C:\Temp\SampleReport.html'

ניתן לצפות בדו"ח בדפדפן הבחירה שלך ברגע שהוא מוכן.

יצירת דוחות HTML עבור כל GPO

כפול, כדי ליצור דו"ח בכל התחום עבור GPOs. במצב זה, עלינו להשתמש בארגומנט All כדי לשאול את כל GPO בתחום. עם זאת, הפעם, במקום להשתמש באפשרות Name או Guid לציין GPO ספציפי, אנו משתמשים בפרמטר המתג All כדי למצוא אותם.

Get-GPOReport -All -ReportType Html -Path "C:\Temp\All-SampleReport.html"

כאשר משתמשים בסביבה AD, פקודת ה- Get-GPOReport מתקשרת ל- ממשק תחזוקה של תחום (DC) המסומן על ידי פרמטר ה- Server כדי לקרוא GPOs. לאחר מכן, DC עם התפקיד PDC Emulator ישמש כברירת מחדל אם אין שרת.

הלאה עם איך ליצור Active Directory Policy Reports עם PowerShell הוא ליצור דוחות XML.

יצירת דיווחי XML עם Get-GpoReport

בדרך כלל, ברגע שייבאנו את מודול GPO ב-PowerShell, יש עוד דברים שGet-GPOReport יכול לעשות. זאת אומרת, מעבר לייצאת GPOs וייצורדיווחי HTML. בנוסף, נוכל גם לייצר דיווחים XML. למשל, נצטרך לשנות את הערך של פרמטר ReportType מ-HTML ל-XML אם רצינו ליצורדו"כ XML עבור GPO ספציפי.

לדוגמה, להלן אנו מחפשים GPO קיים, דוח דוגמה, כדי לייצר דו"כ XML. לאחר מכן, אנו פותחים את הדו"כ באמצעות הפקודהInvoke-Item ביישום הברירת המחדל של הקובץ XML:

Get-GPOReport -Name 'Sample GPO' -ReportType Xml -Path "C:\temp\SampleReport.xml"
Invoke-Item -Path "C:\Temp\SampleReport.xml"

כשתסתיים, נראה את קובץ ה-XML כמו בצילום המסך למטה.

ראשית, אנו מזהים כי קובץ ה-XML של GPO מכיל הכול. בתוך זה, אנו יכולים למצוא דברים כמו מזהה (ה-GUID של GPO), שם (שם ה-GPO), כלול הערותדגשי אבטחה מזההSDDL ועוד מידע רב.

דו"ח XML של GPO

למעט התבנית, מה מבדיל את דו"ח ה-XML הזה מה-HTML? בגדול, התכונות הנראות בדו"ח ה-HTML גם נמצאות בדו"ח ה-XML. אך הן מובנות יותר ונוחות יותר לניתוח.

  • גירסת הספרייה גירסה של ה-GPO שמאוחסנת במסד הנתונים של AD.
  • גרסת מערכת ה-Sysvol – גרסת ה-GPO שמאוחסנת ב-SYSVOL.
  • מופעל – אם מושבת, מנוע העיבוד של GPO במחשב הלקוח לא יחולים את ההגדרות בחלק המתאים של המדיניות.

חשוב לציין כי גרסת המדיניות (למחשב או למשתמש) מתרבית כאשר אנו משנים GPO. לכן, מנוע עיבוד מדיניות הקבוצה יכול להחליט מתי להחיל הגדרות חדשות ומתי מדיניות השתנתה. בנוסף, ההתנהגות הזו תאפשר לנו להפעיל את gpupdate.exe לאחר שינוי GPO מבלי להשתמש במפתח /force.

בדוק דיווחי מדיניות קבוצת ה-Active Directory באמצעות InfraSOS

נסו אותנו בחינם, גישה לכל התכונות. – יש 200+ תבניות דיווחי AD זמינות. התאמה אישית של דוחות AD.




GMPC

אנו יכולים להציג את גרסת ה-GPO (ל-AD ול-SYSVOL) ואת מצבו ב-GPMC.

על פי המדיניות, המחשב של הלקוח ימשיך לעבד גם כאשר VersionDirectory ו־VersionSysvol מקבלים ערך של 0, אך Enabled הוא true. המערכת תודיע למנוע העיבוד שאין לנו צורך ליישם את חלקו הרלוונטי של ה־GPO. שינוי ההגדרה לא ישפיע על ביצועי מחשב מהיר ברשת ניכרת יחסית. בכל זאת, זה עדיין יכול לחסוך המון שניות יקרות ל־GPO כאלה, במיוחד עבור מחשבים ישנים ברשתות איטיות.

לכן, מנוע העיבוד במחשב הלקוח לא ייישם מדיניות עם VersionDirectory ו־VersionSysvol גבוהים מ־0 אך Enabled מוגדר כ־false. יתכן שנשאל למה חלק מההגדרות אינם נכנסים לתוקפם. לכן חשוב לחקור האם מדובר בתקלה או במכוון.

אם אנו מכירים את פעולתם הפנימית של ה־GPO, נוכל להשתמש בפקודת Get-GPOReport. זה לצורך בדיקה של הגדרות אלו ישירות על ידי הפניה למאפיין במקום לניווט ל־GPMC.

בנוסף, נוכל לרצות להתמקד במספר הגדרות ב־GPO. או שבסופו של דבר נרצה לקשור GPO ליחידת ארגון באמצעות PowerShell, כך שלא נצטרך ליצור דוח.

  1. הסר את הפרמטר Path במקרה זה. שים לב להמרת [xml] ולחוסר פרמטר Path בדוגמה שלהלן.
[xml]$GpoXml = Get-GPOReport -Name 'Sample GPO' -ReportType Xml

2. עכשיו שהמרנו את תוצאת הפלט של Get-GPOReport לאובייקט XML, אנו יכולים להתייחס בקלות לתכונותיו הרבות באמצעות ריווח נקודה קצר.

$GpoXml.GPO.Computer
$GpoXml.GPO.User

3. הוסף לולאת foreach והשתמש בארגומנט All כדי לעבור דרך כל הפלט של GPO.

$AllGpos = Get-GPO -All
$GpoVersionInfo = foreach ($gpo in $gpos) {
    [xml]$g = Get-GPOReport -ReportType Xml -Guid $gpo.Id
    [PSCustomObject]@{
        "Name" = $g.GPO.Name
        "Comp-Ad" = $g.GPO.Computer.VersionDirectory
    }
}
$GpoVersionInfo | Sort-Object Name | Format-Table

פענוח דוחות GPO בפורמט XML

נוכל ללמוד על הרבה נושאים שונים של GPO שלך באמצעות פלט ה-XML שמייצר Get-GPOReport. בדוגמה הקודמת, אם נסתכל על פרופרטים $GPOXML.GPO.Computer ו-$GPOXML.GPO.User של הדגם הקודם, נראה פרופרטי ExtensionData כפי שמוצג למטה.

כפי שמוצג למטה, נוכל להתחיל ליצור את הדוחות שלך בהתבסס על הנתונים של XML על ידי גישה לצמתים אלה בפוורשל.

$PolicyDetails = foreach ($policy in $GpoXml.GPO.User.ExtensionData.Extension.Policy) {
    [PSCustomObject]@{
        "Name" = $policy.Name
        "State" = $policy.State
    }
}

$PolicyDetails

תודה שקראתם את בלוג המאמרים שלנו על איך ליצור דוחות פוליסת המדיניות בספריית הפעילה הפעילה עם פוורשל. בואו נסיים.

צור דוחות מדיניות קבוצה של Active Directory עם PowerShell. סיכום

בנוסף לממשק הניהול המובנה של מדיניות קבוצה (GPMC), מאמר זה דיבר על דרכים ליצור דוחות קומפרטיים על מדיניות קבוצה על ידי יצואם בפורמטים HTML ו-XML. דנו גם ב-Get-GpoReport פקודת ה- cmdlet. פקודה זו כעת יכולה לאחזר את אותו המידע כמו ה-GPMC דרך PowerShell. זה מאפשר לנו לשאול הרבה GPOs בו זמנית, מה שבהחלט יעזור לבנות דוחות מצויינים.

Source:
https://infrasos.com/create-active-directory-policy-reports-with-powershell/