CLSID für COM-Komponenten finden

Der folgende Praxistipp ist sehr speziell und allenfalls für Entwickler interessant, die noch mit COM-Komponenten zu tun haben. Er zeigt aber schön, wie sich mit den Mitteln der PowerShell keine Tools zusammenstellen lassen, ohne dafür ein richtiges Programm schreiben zu müssen.

Im Folgenden wird eine kleine Funktion vorgestellt, die zu einer bereits registrierten COM-Komponente über ihren Dateinamen die CLSID aus der Registry liest und ausgibt.

<#
.Synopsis
CLSID für eine Komponente abfragen
#>

function Get-CLSID
{
  param($COMLibName)
  „Suche wird gestartet… es kann eine Weile dauern“
  $CLSID = dir hklm:\Software\Classes\CLSID\`{*`}\InprocServer32 | `
   where { („Registry::$($_.Name)“ | Get-Itemproperty -Name „(Default)“ -Ea 0) `
    -Match „$COMLibName“ }  | Select @{Name=“Path“;Expression={$_.PSParentPath}} | Split-Path -Leaf
   „Fertig…“
  if ($CLSID)
  { $CLSID }
  else { „Keine CLSID gefunden – Komponente ist nicht registriert.“ }
}

Get-CLSID -ComlibName VB6Lib.dll

Schreibe einen Kommentar

Bitte logge dich mit einer dieser Methoden ein, um deinen Kommentar zu veröffentlichen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s