במאמר זה, למד כיצד להשתמש ב-PowerShell כדי לקבל ערך מרשומות ברישום ולשאול על רשומות ברישום באמצעות מגוון של שיטות.
בואו נתחיל!
דרישות מוקדמות
כל הדוגמאות במאמר זה יוצגו באמצעות PowerShell 7.1, שהוא ברגע שכתבתי את המאמר, הגרסה האחרונה. תוכל גם להשתמש ב-Windows PowerShell 5.1 אם תבחר. יש לך גם יכולת בסיסית להבין נהיגת PowerShell.
כמה דוגמאות עשויות לא לעבוד בלעדיו של המנהל.
קבלת מפתחות רישום וערכים עם Get-ChildItem
אחת מהדרכים הקלות ביותר למצוא מפתחות וערכים ברישום היא להשתמש ב-cmdlet של Get-ChildItem
. זה משתמש ב-PowerShell לקבל ערך מרשומות ועוד על ידי ספירת פריטים בנהיגות PowerShell. במקרה זה, זו נהיגת PowerShell הנמצאת על ידי הפעלת Get-PSDrive
.
הפעל את הפקודה הבאה בקונסולת PowerShell.
בצילום המסך למטה, תוכל לראות:
- נתיב המפתח המלא למפתח ה- WindowsUpdate ברישום
- המפתח AU
- רשימת רשומות ברישום במפתח AU עם ערכים תואמים

אחת קטנה בנוגע לתמונה לעיל. עשוי להיות שתוצאת הפלט קצת מבלבלת. כללית, פלט עטיפת כוננות PowerShell מייצג תכונות של אובייקט. Get-ChildItem
מתנהגת באופן שונה במקרה זה מאחר ואובייקט זה אינו מכיל ממשק תכונות. פקודות נוספות רצות ברקע על מנת ליצור עיצוב תצוגה שאתה רואה.
קשור: איך לבדוק אם יש הפעלה מחדש ממתנה ברגיסטרי של Windows
קבלת ערכי רגיסטר עם Get-ItemProperty
המשך עם אותו מפתח רגיסטר כמו שהיה לפני, בואו נשתמש ב־Get-ItemProperty
cmdlet הפעם ונגרום לפלט להיות קריא יותר.
שימוש ב־Get-ItemProperty
הוא הטוב ביותר לקבלת מאפיין פריט ולקבל מפתחות וערכים שלהם בתוך הרגיסטר. הריצו את הפקודה למטה:
בתמונת המסך למטה, אתה רואה רשימה של המפתחות והערכים:
- לתוך הכונן AU
- תכונות הקשורות ל־PowerShell שכולן מתחילות ב־PS

כאלטרנטיבה, תוכל גם לציין את נתיב פריט הרגיסטר כדי לקבל את אותו פלט, רק מעט יותר מהיר על ידי שימוש ב־.NET. הפקודה למטה משתמשת ב־.NET Registry Class ב־PowerShell כדי לקבל ערך מהרגיסטר:
קבלת ערכי רגיסטר עם Get-ItemPropertyValue
כעת הגיע הזמן להסתכל על ערכים מרכזיים. באמצעות הפקודה Get-ItemPropertyValue
עם תיקיית הרישום אותה ראינו קודם, בואו נסתכל על הערך של המפתח NoAutoUpdate
. הריצו את הפקודה הבאה בפוורשל:
באמצעות Get-ItemPropertyValue
, תקבלו פלט יותר תמציתי שרק מראה את הערך ולא כל המידע האחר שראיתם קודם.

שאילתת הרישום ללא כונני PS
במהלך המדריך הזה, השתמשתם בכונני פוורשל כדי לעבוד עם הרישום. עשיית זה בדרך זו אינה הדרך היחידה; תוכל גם לנצל .NET ולקבל מידע על הרישום דרך כיתות .NET גם כן!
לדוגמה, אולי תצטרך להשתמש בפוורשל כדי לקבל ערך של הרישום בנתיב HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\ : AutoUpate במחשב מרוחק.
תוכל לעשות זאת עם .NET על ידי:
- 1. פתיחת חיבור הרישום במחשב המרוחק.
2. פתיחת המפתח של הרישום הספציפי שאתה מחפש.
3. שימוש בשיטת GetValue()
כדי לשאול את הערך של הרישום בתוך המפתח של הרישום.
שימוש ב-.NET במקום כונני פוורשל הוא מעט מהיר יותר והוא דרך קלה להתחבר ולהשתמש בפוורשל כדי לשאול מפתחות רישום וערכים במחשבים מרוחקים.
בדיקת ערכי הרישום עם Test-Path
לפעמים פשוט צריך לוודא אם ערך הרישום קיים. הדרך לעשות זאת היא עם הפקודה Test-Path
.
המשך עם התיק WindowsUpdate, בדוק האם קיים התיק AU באמצעות הפקודה הבאה בפוורשל:
אם התוצאה היא True, המפתח או התיק קיימים. אך מה אם תרצה לבדוק האם ערך או רשומה קיימים? בוא נבנה פונקציה מותאמת אישית עבור בדיקה זו:
באמצעות הפונקציה המותאמת, אתה מזין נתיב ושם של המפתח או התיק, והערך שאתה מחפש, והפונקציה המותאמת תחזיר True או False (3) כפי שמוצג בתמונת המסך למטה:

שלבים הבאים
ידעת שאתה יכול להשתמש בפקודות Get-ChildItem
, Get-ItemProperty
, ו־Get-ItemPropertyValue
בפוורשל כדי לקבל ערך רשומות ומפתחות, מה עוד תוכל לעשות?
אם תרצה ללמוד עוד על העבודה עם הרשומות באמצעות פוורשל, בדוק את המאמר במסמך מיקרוסופט בשם "עבודה עם מפתחות רשומות". תוכל גם למצוא הדגמה מצוינת להגדרת ערכי רשומות בפוסט בבלוג ATA של איך להגדיר ערך רשומה בכל הקבצים של המשתמשים הכוללים.
Source:
https://adamtheautomator.com/powershell-to-get-a-registry-value/