Seit SCCM 2012 ist bei der Installation das SCCM PowerShell Modul enthalten. In diesem Artikel, möchte ich euch dazu eine Einführung mit Befehlen und Beispielen geben. Die PowerShell kann einige Arbeiten erleichtern. Z.B. kann man darüber Anwendungen exportieren und importieren oder Computer aus einer Text-Datei einer Sammlung hinzufügen.
SCCM PowerShell Modul laden
Es gibt 2 Möglichkeiten das PowerShell Modul für SCCM zu laden:
Über die SCCM Konsole:
Über folgende Befehle:
Powershell Modul laden: Import-Module -Name "$(split-path $Env:SMS_ADMIN_UI_PATH)\ConfigurationManager.psd1"
(Optional) Aktiven Powershell Module auflisten: Get-module
Mit SCCM verbinden: Set-location <SiteCode>:
Hinweis: Wenn die SCCM Konsole installiert ist, wird die Umgebungsvariable SMS_ADMIN_UI_PATH
automatisch erstellt. Dort ist die Datei ConfigurationManager.psd1
zu finden.
PowerShell Befehle finden
Viele werden es schon kennen, aber für Powershell Neulinge ist es sicherlich hilfreich. Über den Befehl Get-Command können Powershell Commandlets gefunden werden. Um die Ausgabe zu filtern können die Parameter -Noun
und -Verb
verwendet werden. Wildcard-Symbol ist ein „*“.
Beispiel: Get-Command -module ConfigurationManager –Noun *collection* -verb get
Die Hilfe für das Commandlet kann so aufgerufen werden: get-help <Commandlet>
Eine Liste von Powershell Befehlen für SCCM erhaltet ihr auch im Technet: https://technet.microsoft.com/library/jj821831(v=sc.20).aspx
SCCM PowerShell Beispiele
Info zur aktuellen Site:
Get-CMSite
Applications, die „adobe“ beinhalten finden und als Tabelle ausgeben:
Get-CMApplication -name *adobe* | Select-Object LocalizedDisplayName,SoftwareVersion,NumberOfDeployments | ft -autosize
Pakete importieren/exportieren:
Import-CMApplication -FilePath "<Pfad>.zip"
Export-CMApplication -Name "<Anwendungsname>" -Path "<Pfad>.zip"
Computer über <username>
(letzter angemeldeter Benutzer) finden:
Get-CMDevice | select name, username | Where-Object {$_.username -match "<username>" }
SCCM Client installieren:
Install-cmclient -AlwaysInstallClient $true -Devicename <Computername> -IncludeDomainController $false -sitecode <Sitecode>
Computer aus „.txt“-Datei zur Sammlung <CollectionName>
hinzufügen:
Get-Content "<Pfad>.txt" | foreach { Add-CMDeviceCollectionDirectMembershipRule -CollectionName "<CollectionName>" -ResourceID (Get-CMDevice -Name $_).ResourceID }