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