switch ($cmdlet) { "Get-ChildItem" { if ($argument) { Get-ChildItem -Path $argument } else { Get-ChildItem } } "Get-Process" { if ($argument) { Get-Process -Name $argument } else { Get-Process } } "Get-Service" { if ($argument) { Get-Service -Name $argument } else { Get-Service } } default { Write-Host "Invalid cmdlet" } } } Here are some example use cases:

The function also includes input validation and provides meaningful error messages.

# Get all services Execute-Cmdlet -cmdlet "Get-Service"