# Get-Module

`Get-Module` listet PowerShell-Module auf. Standardmäßig werden **nur bereits geladene Module** angezeigt.

Mit zusätzlichen Parametern lassen sich auch **installierte, aber noch nicht geladene Module** oder bestimmte Module anhand ihres Namens ermitteln.

Ein Modul stellt Funktionen, Cmdlets, Variablen, Aliase und weitere Inhalte bereit, die PowerShell erweitern.

---

## **Grundlagen**

#### Bereits geladene Module anzeigen

```powershell
Get-Module
```

Ausgabe (Beispiel)

```text
ModuleType Version Name
---------- ------- ----
Manifest   7.0.0.0 Microsoft.PowerShell.Management
Manifest   7.0.0.0 Microsoft.PowerShell.Utility
Script     2.2.5   PSReadLine
```

---

#### Alle installierten Module anzeigen

```powershell
Get-Module -ListAvailable
```

Hierbei werden auch Module angezeigt, die aktuell **nicht geladen** sind.

---

#### Ein bestimmtes Modul anzeigen

```powershell
Get-Module Microsoft.PowerShell.Utility
```

oder

```powershell
Get-Module -Name Microsoft.PowerShell.Utility
```

---

### Wildcards verwenden

```powershell
Get-Module Microsoft.*
```

---

## **Parameter**

<table id="bkmrk-parameter-beschreibu"><thead><tr><th>Parameter</th><th>Beschreibung</th></tr></thead><tbody><tr><td>`-Name`</td><td>Gibt nur Module mit dem angegebenen Namen zurück. Wildcards sind möglich.</td></tr><tr><td>`-ListAvailable`</td><td>Zeigt alle installierten Module an.</td></tr><tr><td>`-All`</td><td>Zeigt alle Versionen eines geladenen Moduls an.</td></tr><tr><td>`-FullyQualifiedName`</td><td>Sucht anhand eines Modulnamens und optional einer Version oder GUID.</td></tr><tr><td>`-Refresh`</td><td>Aktualisiert Informationen über dynamische Module.</td></tr><tr><td>`-PSEdition`</td><td>Filtert nach der unterstützten PowerShell-Edition (`Desktop` oder `Core`).</td></tr></tbody></table>

---

# Eigenschaften

Die von `Get-Module` zurückgegebenen Objekte besitzen unter anderem folgende Eigenschaften.

<table id="bkmrk-eigenschaft-beschrei"><thead><tr><th>Eigenschaft</th><th>Beschreibung</th></tr></thead><tbody><tr><td>`Name`</td><td>Name des Moduls</td></tr><tr><td>`Version`</td><td>Versionsnummer</td></tr><tr><td>`ModuleType`</td><td>Typ des Moduls</td></tr><tr><td>`Path`</td><td>Speicherort der Moduldatei</td></tr><tr><td>`Guid`</td><td>Eindeutige Modul-ID</td></tr><tr><td>`Description`</td><td>Beschreibung des Moduls</td></tr><tr><td>`Author`</td><td>Autor des Moduls</td></tr><tr><td>`CompanyName`</td><td>Herausgeber</td></tr><tr><td>`PowerShellVersion`</td><td>Erforderliche PowerShell-Version</td></tr><tr><td>`ClrVersion`</td><td>Erforderliche .NET-CLR-Version</td></tr><tr><td>`ExportedFunctions`</td><td>Exportierte Funktionen</td></tr><tr><td>`ExportedCmdlets`</td><td>Exportierte Cmdlets</td></tr><tr><td>`ExportedAliases`</td><td>Exportierte Aliase</td></tr><tr><td>`ExportedVariables`</td><td>Exportierte Variablen</td></tr></tbody></table>

---

# Beispiele

## Geladene Module anzeigen

```powershell
Get-Module

```

---

## Alle installierten Module anzeigen

```powershell
Get-Module -ListAvailable

```

---

## Nur Module eines Herstellers anzeigen

```powershell
Get-Module Microsoft.* -ListAvailable

```

---

## Informationen zu einem Modul abrufen

```powershell
Get-Module PSReadLine

```

---

## Alle installierten Versionen anzeigen

```powershell
Get-Module PSReadLine -ListAvailable -All

```

---

## Exportierte Funktionen eines Moduls anzeigen

```powershell
(Get-Module PSReadLine).ExportedFunctions.Keys

```

---

## Exportierte Cmdlets anzeigen

```powershell
(Get-Module Microsoft.PowerShell.Management).ExportedCmdlets.Keys

```

---

## Installationspfad eines Moduls anzeigen

```powershell
(Get-Module PSReadLine).Path

```

---

# ModuleType

Die Eigenschaft `ModuleType` beschreibt, aus welcher Art von Modul die Informationen stammen.

<table id="bkmrk-typ-beschreibung-man"><thead><tr><th>Typ</th><th>Beschreibung</th></tr></thead><tbody><tr><td>`Manifest`</td><td>Modul basiert auf einer Manifestdatei (`.psd1`).</td></tr><tr><td>`Script`</td><td>PowerShell-Skriptmodul (`.psm1`).</td></tr><tr><td>`Binary`</td><td>Kompiliertes .NET-Modul (`.dll`).</td></tr><tr><td>`Dynamic`</td><td>Zur Laufzeit erzeugtes Modul.</td></tr><tr><td>`Cim`</td><td>CIM-Modul (selten verwendet).</td></tr></tbody></table>

---

# Hinweise

- Ohne Parameter werden **nur geladene Module** angezeigt.
- `-ListAvailable` durchsucht die Verzeichnisse aus `$env:PSModulePath`.
- Ein installiertes Modul erscheint erst ohne `-ListAvailable`, nachdem es mit `Import-Module` geladen wurde.
- Ein Modul kann in mehreren Versionen gleichzeitig installiert sein.
- `Get-Module` liefert Objekte vom Typ **`System.Management.Automation.PSModuleInfo`** zurück.

---

# Verwandte Befehle

<table id="bkmrk-befehl-beschreibung-"><thead><tr><th>Befehl</th><th>Beschreibung</th></tr></thead><tbody><tr><td>`Import-Module`</td><td>Lädt ein Modul in die aktuelle Sitzung.</td></tr><tr><td>`Remove-Module`</td><td>Entfernt ein geladenes Modul aus der Sitzung.</td></tr><tr><td>`Get-Command`</td><td>Zeigt die Befehle eines Moduls an.</td></tr><tr><td>`Get-InstalledModule`</td><td>Zeigt mit PowerShellGet installierte Module an.</td></tr><tr><td>`Find-Module`</td><td>Sucht Module in einem Repository (z. B. PSGallery).</td></tr></tbody></table>

---

## Typische Kombinationen

```powershell
# Alle installierten Module
Get-Module -ListAvailable

# Alle Befehle eines Moduls
Get-Command -Module Microsoft.PowerShell.Management

# Modul laden
Import-Module PSReadLine

# Danach prüfen, ob es geladen wurde
Get-Module PSReadLine

```