# PowerShell in Maguyva: codegrafen voor scripts en modules

Canonical source: https://maguyva.ai/nl/languages/powershell

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Maguyva ondersteunt PowerShell met AST, symbolen en graaf, zodat AI-agents functies, klassen en cmdlet-aanroepen volgen in scripts en modules.

## Ondersteuningsoverzicht

- Tier: AST- en symboolondersteuning
- Shell
- Extensies: .ps1, .psd1, .psm1
- Echte AST-parsing voor syntaxbewust zoeken en structurele context.
- Benoemde symbolen voeden semantische lookup en kruisverwijzingen. Graafnavigatie is beschikbaar wanneer relatie-extractie is ingeschakeld.
- Deze taal draagt symbolen en relaties bij aan graafbewust zoeken; ondersteunde kanttypen variëren met de eigen constructies van de taal.
- Zowel AST-parsing als symboolextractie zijn beschikbaar.

## Beste toepassing

- Infrastructuur- en operationsteams met grote verzamelingen `.ps1`- en `.psm1`-bestanden waarvan de scripts elkaars functies aanroepen.
- PowerShell-modules opgebouwd uit advanced functions, klassen en enums.
- Automatiseringsrunbooks waarbij agents vóór een wijziging moeten zien welke scripts een service, een bestandsshare of een registersleutel raken.

## Agentworkflows

- Alle aanroepers van een advanced function vinden voordat de parameters veranderen.
- Opsommen welke scripts een cmdlet zoals `Restart-Service` aanroepen voordat een runbook verandert.
- In kaart brengen welke functies naar een gedeelde variabele schrijven voordat een module wordt gerefactord.

## Waar PowerShell oppervlakkige AI-tools laat struikelen

Je eigen functies en de ingebouwde cmdlets volgen dezelfde naamgeving. `Get-Invoice` en `Get-ChildItem` zien er hetzelfde uit, dus een tool die "ingebouwde" commando's op werkwoord wegfiltert, gooit je eigen functies ook weg. Scripts mengen bovendien code op moduleniveau, functies, klassen en scriptblokken in één bestand, waardoor moeilijk te zien is bij welke functie een regel hoort.

Maguyva houdt beide soorten aanroepen vast en wijst elke aanroep toe aan de functie waarin hij staat.

## Wat Maguyva in PowerShell extraheert

Maguyva dekt `.ps1`-, `.psm1`- en `.psd1`-bestanden. Functies en klassemethoden worden als callables geëxtraheerd, klassen en enums als types. Script- en methodeparameters worden gevolgd, en lees- en schrijfacties binnen een functie worden aan die functie toegewezen in plaats van aan de module.

Cmdlet-aanroepen blijven in de graaf. PowerShell past het standaardbibliotheekfilter dat de meeste talen gebruiken niet toe, dus `Write-Host`, `Get-ChildItem` en `Restart-Service` verschijnen als aanroepedges naast je eigen `Get-*`- en `Set-*`-functies. Een agent kan vragen welke scripts een service herstarten, of welke functies naar de console schrijven, en krijgt een structureel antwoord.

Voor PowerShell is geen relatietype als niet van toepassing gemarkeerd, dus de graaf legt ook klasse-overerving en interface-implementatie, instantiatie, control flow en lees- en schrijfacties vast.

## Voorbeeldprompts voor agents

- "Wie roept `Invoke-Backup` aan, en vanuit welke geplande scripts?" (`find_symbol`, daarna `dependency_search` incoming)
- "Welke functies roepen `Restart-Service` aan?" (`dependency_search`)
- "Volg wat `Deploy-Site` van begin tot eind doet." (`get_task_context`)

## Bekende beperkingen

- Omdat cmdlet-aanroepen behouden blijven, hebben zeer gangbare zoals `Write-Host` en `Select-Object` enorm veel inkomende edges. Begin bij je eigen functie als je een gerichte aanroepgraaf wilt.
- `Import-Module` en dot-sourcing zijn gewone commando's, dus de preset `imports` in `structural_search` selecteert niets. Gebruik `text_pattern_search` om ze op te sommen.

## Volgende stappen

Koppel een repository via de [snelstart](/nl/docs/quickstart) en bekijk daarna de ondersteuningsmatrix op de [compatibiliteitspagina](/nl/docs/compatibility). Lees voor .NET-code die je scripts aanroepen de [C#-gids](/nl/languages/csharp).

## Enginedetails

- PowerShell-ondersteuning omvat `.ps1`, `.psm1` en `.psd1`. Functies en klassemethoden zijn callables, klassen en enums zijn types.
- Voor PowerShell staat het standaardbibliotheekfilter uit, dus cmdlet-aanroepen zoals `Get-ChildItem` blijven in de graaf naast je eigen functies.
- Lees- en schrijfacties binnen een functie worden aan die functie toegewezen in plaats van aan de module.

## Nuttige MCP-instappunten

- `find_symbol`: Gebruik het voor een advanced function of klasse wanneer je de definitie en aanroepers nodig hebt.
- `dependency_search`: Gebruik incoming-traversal op een cmdlet zoals `Restart-Service` om te zien welke scripts hem aanroepen.
- `get_task_context`: Gebruik het voor prompts als "volg wat `Deploy-Site` van begin tot eind doet."
