Powershell: Alle Sites von CAS extrahieren

Kurz und knackig:

Get-WmiObject -ComputerName '[Server-Name]' -Class 'SMS_SiteANDSubsites' -Namespace 'root\SMS\site_[Site-Code]' | 
    Select-Object ServerName, SiteName, SiteCode | 
    Export-Csv -Path C:\Temp\CM_Sites.csv
    
    
    

Natürlich müssen Server Namen und Site-Code geändert werden. Der Pfad für die CSV Datei kann, muss aber nicht gewählt werden.

Powershell: WMI Abfrage auf Sites in ConfigMgr 2012

Einfach den Server-Namen, SiteCode, Filter-Text anpassen und läuft.

$ServerName = <ServerName>
$SiteCode = <SiteCode>
$NameFilter = '<Naming Filter>'

Get-WmiObject -ComputerName $ServerName -Namespace "root\SMS\site_$SiteCode" -Class 'SMS_Site' -Filter "SiteName  like '%$NameFilter%'" | Select-Object SiteName, ServerName | Export-Csv -Path c:\temp\secsites.csv 


Könnte natürlich auch noch als Funktion ausgebaut werden. Für eine Quick-And-Dirty Anwendung reicht das sicher so.

Powershell: SQL Edition und Version live abfragen

In einer Hierarchie mit mehr als 70 Siteservern einer ConfigMgr 2012 R2 Umgebung stellt sich vielleicht mal die Frage der verwendeten Editionen und deren Versionen. Basierend auf einer schon früher veröffentlichten SQL Query Abfrage habe ich dann folgendes kurzes Script erstellt: Das Script holt sich aus der WMI des Servers eine Liste aller SiteServer (CAS more

Powershell: Datum der letzen Installation des Betriebssystems / Letzter Neustart

Sehr einfach rauszufinden: Das Datum / Uhrzeit der letzten Installation des Windows Betriebssystems.

$IsDate = Get-WmiObject -class win32_operatingSystem
$IsDate.ConvertToDateTime($IsDate.InstallDate)

Diese Information hilft beim Einschätzen wie lange der Rechner schon auf dem entsprechenden Build läuft.

Analog können natürlich weitere Infos aus der selben WMI Klasse ausgelesen werden, wie zum Beispiel das letzte Datum / Uhrzeit eines Neustarts.

$LastBoot = Get-WmiObject -class win32_operatingSystem
$LastBoot.ConvertToDateTime($LastBoot.LastBootUpTime)

Pendente Neustarts, verursacht durch Software Updates, Software Installationen oder Windows Updates können seltsame Verhalten hervorrufen. Immerhin werden ja auch Module, Dateien und Bibliotheken verändert, welche möglicherweise gerade in Nutzung sind.

 

Powershell: Installierte Software ausgeben

Über eine schöne WMI Abfrage kann Software, die auf einem Rechner installiert ist ausgegeben werden:

Get-WmiObject -Class Win32_Product | Select-Object -Property Name, Vendor, Version

Diese Basis kann einfach auch noch gefiltert werden um nur anzuzeigen, was wirklich gesucht wird.

Get-WmiObject -Class Win32_Product | 
    Select-Object -Property Name, Vendor, Version | 
    Where-Object Name -Like '*Software Name*'

 

Viel Spass beim herumprobieren!