Expand your capabilities with SCCM 2012 SP1 PowerShell cmdlets

6 במרץ 2013

 

קובי לוי מאת: קובי לוי, מיקרוסופט ישראל

אחד החידושים המעניינים, לדעתי, ב-Configuration Manager 2012 SP1 הוא היכולת להשתמש ב-PowerShell על מנת להרחיב את יכולות הניהול של המוצר. PowerShell הוצג כבר בגרסת 2007 של המוצר, אבל ההבדל בין הגרסאות משמעותי מאוד, מספיק להבין שבגרסה הישנה היינו עושים שימוש ב-WMI ואילו היום PowerShell הוא חלק מובנה מהמוצר.

חשוב לי להבהיר כבר בהתחלה, מטרת המאמר היא לאפשר לכם הצצה ליכולת החדשה הזו מבלי לאבד אתכם בעוד מספר משפטים או פסקאות, אין בכוונתי לפרט את כל הפקודות החדשות….הרי ברור שיהיה לי קשה (וגם לכם) לעבור על 471 פקודות מובנות! המטרה היא להציג בפניכם מספר יכולות ולתת לכם כלים להמשיך ולחקור את השאר.

למה PowerShell ?

® Windows PowerShell היא שפה המבוססת על משימות של שורת פקודה ומעטפת scripting המיועדת בעיקר לניהול מערכות. היא מבוססת על NET Framework. ובכך מאפשרת לאנשי ה-IT לשלוט ולמכן את הניהול של המערכת ויישומים המבוססים על מערכות ההפעלה של Windows.

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

איך זה עוזר לי לנהל את ה- Configuration Manager?

מנהלני Configuration Manager יסכימו איתי שניהול המוצר טומן בתוכו פעולות חוזרות ונשנות של תחזוקה וניהול. הרשימה הבאה מתארת חלק מהם:

  • Create a console folder
  • Create and Import Boundaries
  • Create DP Groups
  • Add DP to DP Group
  • Remove a package from a DP
  • Clear a PXE Flag
  • Create multiple collections
  • Approve/Deny approval requests
  • E-mail on a status message

האם לא היה נוח יותר לבצע חלק מהפעולות באמצעות Script קבוע? (אני מניח שחלקכם בוודאי מהנהנים בהסכמה), תחשבו על כמות הזמן שאתם יכולים לפנות לעצמכם, או אולי להעביר את המשימה למישהו אחר שכל מה שעליו לעשות הוא הפעיל תהליך (אולי אפילו באמצעות System Center Orchestrator)

איך מתחילים?

פשוט מאוד, דרך ממשק המשתמש נפתח PowerShell Console עבור SCCM

clip_image002

האם באמת יש לנו 471 פקודות מובנות?

clip_image004

ישן מול חדש

הדוגמה הבאה תמחיש את השינוי בצורה הטובה ביותר.

על מנת להציג את ה-ResourceId של מחשב מנוהל ב-SCCM היינו בעבר צריכים להריץ את סט הפקודות הבא תוך שימוש בפניה ל – WMI:

clip_image006

בגרסת CM2012SP1 נעשה שימוש ב-CMDLET שיאפשר לנו לקבל את הנתון בצורה פשוטה יותר:

clip_image008

אכן קצר ונוח יותר.

כפי שכבר ניתן להבין, אפשר לעשות שימוש בפקודות המובנות על מנת לפשט תהליכים אם עבור עבודה יום יומית ואם עבור בניית תהליכי אוטומציה מורכבים יותר.

אז אילו פעולות ניתן לבצע באמצעות PowerShell?

כמעט הכל, שורות הפקודה הבאות מאפשרות להציג את סט הפקודות המטפלות בתכונה מסוימת במערכת (cmdlets) ואת הפעולות שניתן לבצע     (Verbs)

clip_image010

דוגמה לתהליך מלא – אוטומציה של תהליך הכולל בנייה של Collection מבוסס Query, בניית חבילה והפצתה:

 

# Step 1: Creating a New Device Collection

 New-CMDeviceCollection -Name "All Site1 Systems" -LimitingCollectionName "All Systems"

 

# Step 2: Let's see the properties of our new Collection

Get-CMDeviceCollection -Name "All Site1 Systems"

 

# Step 2: Assigning this to a Variable

$Site1Collection = Get-CMDeviceCollection -Name "All Site1 Systems"

 

# adding Query Membership Rule for the Device Collection we just created

Add-CMDeviceCollectionQueryMembershipRule -Collection $Site1Collection -RuleName "Query all Site1 systems" -QueryExpression 'Select * from SMS_R_System inner join SMS_G_System_SYSTEM on SMS_G_System_SYSTEM.ResourceId = SMS_R_System.ResourceId where SMS_G_System_SYSTEM.Domain = "Kobile"'

 

# Create a CM Package for 7 Zip

New-CMPackage –Name “7ZIP X64 – Created by PowerShell Script” –Path “\\kobi-sccm2012\apps\7Zip"

 

# Set the properties for the Package

Set-CMPackage -Name "7ZIP X64 – Created by PowerShell Script" -DistributionPriority High

 

# Creating a New Program

New-CMProgram -PackageName "7ZIP X64 – Created by PowerShell Script" -StandardProgramName "7ZIP – Program" -CommandLine "msiexec.exe /I 7zip.msi /quiet /norestart"

 

# Set Program Properties

Set-CMProgram -Name "7ZIP X64 – Created by PowerShell Script" -StandardProgramName "7ZIP – Program" -ProgramRunType WhetherOrNotUserIsLoggedOn -RunMode  RunWithAdministrativeRights

 

# Distributing 7Zip to a distribution point group

Start-CMContentDistribution -PackageName  "7ZIP X64 – Created by PowerShell Script" -DistributionPointGroupName "All My DP's Servers"

 

clip_image012

זהו להפעם:)

מקורות מידע נוספים

TechNet Gallery – Resources for IT Professionals

http://technet.microsoft.com/en-us/library/jj849987.aspx

http://blogs.technet.com/b/manojnair/

קובי לוי הוא ארכיטקט תשתיות בקבוצת הייעוץ (Microsoft Consulting Services – MCS) של מיקרוסופט ישראל ומתמחה במערכות שליטה, בקרה וניהול ומייעץ לפרויקטים בתחו

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *