Wissen/X05_Technology_WMI&CIM.ps1

# ? TITEL WIM&CIM
# ? DESCRIPTION Windows Management Instrumentation (WMI (alt)) alias CIM (neu) nutzen
# ? TAGS CIM WMI
# ? VERSION 2019.11.08

# ! * CIM ist unter Windows eine der wichtigsten Schnittstellen für die Administration und Fernwartung
# ! von Workstations und Servern mittels Skriptsprachen.
# ! * Über CIM kann lesend und schreibend, lokal oder vom Netzwerk aus, auf nahezu alle Einstellungen
# ! eines Windows-Computers zugegriffen werden.

# ? Welche sinnvollen CIM-Klassen gibt es
Get-CimClass -ClassName win32_* 

# ? z.Bsp. daraus konkrete Klassen
Get-CimClass -ClassName Win32_Processor
Get-CimInstance -ClassName Win32_PhysicalMemory | Measure-Object -Property Capacity -Sum
Get-CimInstance -ClassName Win32_Product | Select-Object -First 1 | Format-List -Property *
Get-CimInstance -ClassName Win32_Printer

# ? CIM-Objekt analysieren
Get-CimInstance -ClassName Win32_Product | Select-Object -First 1 | Format-List -Property *

# ? WMI-Klasse Hilfe aufrufen
$wmiClassName = "win32_product"
$uri = "https://www.bing.com/search?q={0}+site:docs.microsoft.com" -f $wmiClassName
$url = (Invoke-WebRequest -Uri $uri -UseBasicParsing).Links |
  Where-Object href -like 'https://docs.microsoft.com/*' |
  Select-Object -ExpandProperty href -First 1
Start-Process -FilePath $url

# ? Eine CIM-Methode ausführen
 Get-CimInstance -Query "SELECT * FROM Win32_Process WHERE name like 'notepad%'" | 
  Invoke-CimMethod -MethodName GetOwner

# ? Über ein CIM-Event informiert werden
Unregister-Event -SourceIdentifier * 
$action = {
    $e = $Event.SourceEventArgs.NewEvent
    "Neuer Process gestartet, ID: {0} | NAME: {1}" -f $e.ProcessId, $e.ProcessName | Write-Warning
}
Register-CimIndicationEvent -ClassName Win32_ProcessStartTrace -SourceIdentifier ProcessStarted -Action $action # ! ADMIN-Rechte
Get-EventSubscriber -SourceIdentifier ProcessStarted
Start-Process -FilePath calc
Unregister-Event -SourceIdentifier ProcessStarted 

# ? REZEPT: Windows Lizenzstatus abfragen
Get-CimInstance -ClassName SoftwareLicensingService
Get-CimInstance -ClassName SoftwareLicensingProduct | Select-Object -Property Description, LicenseStatus

# ? REZEPT: Energieoptionen => Übersicht
(Get-CimInstance -Namespace root\CimV2\power -Class Win32_PowerPlan).ElementName

# ? REZEPT: Energieoptionen => Aktuell
$powerPlan = (Get-CimInstance -Namespace root\CimV2\power -Class Win32_PowerPlan -Filter 'isActive=True').ElementName
"Aktuell: $powerPlan"

# ? REZEPT: Energieoptionen => Ändern
Get-CimInstance -Namespace root\CimV2\power -Class Win32_PowerPlan -Filter 'ElementName="Ausbalanciert"' |
  Invoke-CimMethod -MethodName Activate

# ? REZEPT: Video Auflösung ermitteln
Get-CimInstance -Class Win32_VideoController | Select-Object -Property Name, CurrentHorizontalResolution, CurrentVerticalResolution, CurrentRefreshRate, DriverVersion

# ? REZEPT: Ein MSI-Paket installieren
$msi = "c:\temp\7z920-x64.msi"
$produkte = Get-CimClass -ClassName Win32_Product
"Installation läuft ...."
$ergebnis = $produkte.Install($msi)
"... Installation fertig mit dem Ergebnis {0}" -f $ergebnis.ReturnValue
Get-CimInstance -ClassName Win32_Product | Where-Object -Property Name -like -Value "*7-zip*" | Get-Member
# ReturnValue siehe http://msdn.microsoft.com/en-us/library/aa390890(v=vs.85).aspx

<# TODO ÜBUNG CIM A
    ! VERTIEFUNG: CIM
    ? Erzeugen Sie eine verwertbare Übersicht der installierten Produkte
    ? mit folgenden Informationen: Name, InstallDate, InstallAgeInDays
      TIPPS: Get-Command, Get-Help, Get-Member; Select-Object => Hilfe (Optional)
             Get-CimInstance -ClassName Win32_Product => Obligatorisch
             Select-Object; @{Label="" ; Expression={} }; PSCustomObject => Testing bzw. Praktisch (Optional)
    * LÖSUNG: 76492d1116743f0423413b16050a5345MgB8AE8ANgBQADYARgBiAEUATwArADEARwBmAFUARwB6AE4ATQB1AC8AcQBBAFEAPQA9AHwAOAA1AGIAYQA3ADcAOQA2ADcAOQAwADUAYQAyAGMAOQBjADQAMAA3ADUANgBmADcAZgAxAGYAZgA0ADcAZQBlADMAYQBhAGEAZABlADIAYQAxADUAMgBmADYAYQBhAGYAMgA4AGIAMQBmAGMAZQAxADMAZgA0ADEAYwAyAGIAZgA0AGIAMgA5ADgAMAAyADEAYQAxADIANwAwAGYAYgBlAGUAOQBiADQANAA5AGMANQAyAGYANABjADUAMgBhADQANwBkAGEAYwBiAGEANgA5AGQAYQAwADAAYwA2ADkAMQBhADUAMgBhAGUAOABhAGUAYQAzADIANwA1AGQAZABiADUAZQA4ADAANQBiAGIAYwBjAGEAZAAzADEAZQA0ADQAZgAyAGYAMgAzAGEAYgAzADEAOQAyAGUAYQBiADEAMwAzADcAMgBmAGUAOQBjAGUAZAA0ADIAMwAxADgAOAA1AGUAYwA0AGQANwA3ADgAZAA0ADIAMAA0ADcAMAA1ADAAYgA3ADUANQBmADMANAAwADMAOQBlAGMAZAA5AGYAOQBiAGQAYwBiADYAYwBlADUAMABlAGYAMgBkADEANQA3ADMAMQAyADEAZAAzAGEAZQAzADMAOAA2ADgAMgAzADgAZAAxAGQAZABhAGQAMgA3ADQAMAAwADEAYQAwADIANAA2AGMAMwBkADAAYwBjAGIAMABhADMANwBjADkANQAyADUAMgAzAGQAMgA5AGEANQAyADkAOQAzADMAMwAyADYAMAAwAGIAYgA2AGMANwA2ADcAMQA3AGIAYwBhADQAZAA3ADEANwAzADkANQA0ADYANwA5ADUAOQA3AGQAYgAwADAAZQAxADYAYgBhADYAZABjAGIAMQAzADcAZAA5ADcAZQBmADcAMABlADgAOQA2ADcAMgBhAGIAYQAxADIAZABhAGQAMAA0ADkAZABkADMAMQA3AGIAYgAxADIAMgA2ADMAZAA2AGIAZQAzADMANABlAGQANQA3AGQAMAA4ADcAOAAwADkAOABiADQAMQAyADgAOABhADcANQBiADgANgBjAGEAYgAyADYAYQA2AGQANgA0AGIAZAAxADIAYwBhADkAZgBmADcAZABhAGQAZgAyAGUAYgAyADAANABjAGYAMwA4ADYANgAyAGMAZABmAGUAMQAzAGIAOQAwADEAOABkADcAZQBjAGIAYgA1ADMAMQAwAGUANQA3ADcAYwA4ADAAZQA1AGUANAA4ADAAZgAzADAAYwAyADgAMgA2ADEAYwBlADIAMgBkADkANgAyADIANgAzAGIAZAA2ADAAYgAyADEANwA3ADEAZAA5ADYAYgA1AGYAZAAyAGUAYwA3AGUAMABhADUAOAAzAGQAOQA0ADgAMQBhADIAZQBhADIAZAA2AGYAYgAwADAANgBiAGIAMwBlADEAZAAwAGEAYwBlADEANgBmAGEANwAxADMANAAzADYAOAA2ADEAZABkADAAYQAzAGUAOQA5ADIAOABjAGYAZABjADgAMQA3ADkAMAA3AGIAMgA1ADMAZAA3ADMAYgAxADQAYgBiAGMANQBkADAAZQA0ADEAMwBhAGIAYgA1AGMANwBhADYAOAAyADkAMgA0ADkAOABhADcANQA4ADcANQAwADkANQBkADQAYwBjAGQANwA2ADgAMgBkAGEANQBmADMAYgA4ADYANAA1AGIAMwA3AGQAOQBlADMAMwA0ADUANQAxADgAZQA3AGEAOQBkAGQAZABmADEAYwBhADIAYwAwADMAZABjAGYAMgBiADEAMABkADEAZQBmADcANwA0AGQAMABjAGEAOAA4AGUAMAA4ADQANwA4AGYAYwA4ADEAZQAwADYANgBmADkAZgA1ADgAZgBiADYANgA0AGEAYwA2ADQAOAA3ADIAMwA3AGIAZABjADcAYQA2AGEANQA0ADYAOAAxAGQAMQAzAGUAYgBhAGQAZABkADQANQA0AGYAOQBiADUAZQBkADMAMwA0AGMAOAA2AGIAZgAxAGEANgAxADMANwBhADgAYwA1ADMAYgA4AGEAZgAwAGQAMgBhADMAOQBjAGEAMgA0ADUAMwBhAGEANAA1ADcANQA3ADYANwA5ADUAMgAzADMANwA5ADcAYQBmADIANQBjAGEAZgBkADgAYwBjADkANAA2ADUANgA3AGIANQAwADUANQBjAGEANgA0AGUAYgBhADYANgA1AGYANAAyADYAMABmAGIAYwBmAGIANwAxADcAYgAwADQAMwA2ADkAYwA2AGQAMQBjADQANQBlADIANwBlADUAZgA4AGQAYwA2AGEAYwBhADMANgA3ADgAMQA1ADEANAAwAGYAYgA2ADUAMQA0ADgAOAA3ADkAZAA4AGUAZQA2ADEAZAAxAGMAMwA2ADYANAAzADYAYgA5ADEAOQAzADcAZAAxAGUAMABmADQAZQA5ADgAYwBjAGEAYQA1ADAAZgBkADgAYwA5AGIANgBiAGQAMwA5ADYAOAA0ADIAMgBkADMAZgA0ADQAZAAyADcAMQA1ADUAOQA1AGEAOQA2ADUAZAA4AGUAMAA0ADAANQBmADUAYwAxAGIAMQBiADQAMQBjADcAYwA4AGYANgAxAGQAOQBhADQAYwA1ADEANwA2AGQAZgBiADQAMQBkADIANQAxADEAMwA0ADAAYgA1AGYAYgBkADMAZQAwADAAYQAwADAANwBkADMAMAAzADQAZgBmADYAZABiADkANQA1AGQAOQA1ADYAMwA3ADcAYgBiADQAMQA1ADQANgBiADEAYwBjAGUANwA2ADcANQA5ADUAZQAwAGYAMABmAGUANABjAGMAYQBhADIANABhADEAYgAxAGEANgA1ADYAZABjADkAOQA3ADgAOQA0AGEANAAyADgAMAA1ADIAMQBkADAANgBiAGQAMAA2ADgANQBlADkANQBiADgAMAA3ADUAMgA3ADMANAAxADgANAAzADcAMAA0ADgAMAAzAGYAMAA1ADkANwBkADUAMwAwADYANQBjADkAOQAzADgAYgBiADEAMQAyADMAMwBlADcAOAAyADQAYQA0ADkANQA0AGIANQBhADgAOQBkADUAYQA5ADMAMwBmAGUAOAAyAGYAMwBiAGIANwA0ADMAOQBkAGUAYQBhADQAYQBjAGIAOABkADEAYQAxADUAYwA0AGMAZgBkAGYAYgA4ADgAMQA3AGEANQA5ADAANwBiAGYAMgA4AGEAOQAxADAAYQBhADMAMgAxADQAOQA3ADIAYgAxADUAMAAzADEANgAwAGQAZgBjADgAYQA0AGUAMgAzAGIANgAzADMAYQAzADkANgBlAGYANwAzADEAMQBhADIAYgAxADEAMgA1ADEAOABkAGQAOABmAGEANgBkADMAYQBkAGQANwA2AGMANgBkAGQAZAA3ADQANABlADkANQA4AGQAZQBjADcAMQA4AGQAOAAwADAAMAAyADEAYQA3ADgAZQBmADQAOQBmADAANAA0ADgAOQA0AGYAMwA3AGQAOAA1ADAAZAA4ADAAMAA0ADkANQA2ADEAYgA4ADMAMABlADgAMwA5ADAAZAA2AGYAMAA5AGMAZAA2AGEANwA4ADMAZABjAGMAYgBiADEAZQA2ADcAMQA4AGYAYgA2ADMAYgA1AGMAOQAwADcAZABhAGUAOABjAGYAZAAyADQAYQAyADAAMgA2ADQAYwA0ADYAMABkAGYAZQBhADEAMgBkADEAYQBlADAAOQAzADIAYgA1ADUAMwBmAGMANgA0ADQAMwBhADYAMQBiAGMANQBiADIAMwBhADUAYwBlAGQAMAAxADQAZQAyADQAZABlAGQAYQAxADUANwBkAGEAZQBlADUAMwAxADMANAAwADQAZABjAGIAZAA5AGUAZQA2AGMAMAA4ADYAYwAwADkAYwAyADQAMwA4ADAANQBjAGYAZQA5AGEAZgAzADgANQBmADAANQBhAGMAYwBjADEAOABkAGEANwAwADcAMQBlAGIAMAA0AGIAYQAyADUAMwBkADgAMwA4ADEAOAAwAGEAMABlAGIAZQAxADcAMwAyAGQAYwBhADkA
#>