将参数集从CmdLet复制到新的CmdLet

时间:2014-06-18 20:14:33

标签: powershell parameters cmdlet

我想为Write-Error创建替换函数。为此,它必须支持与原始CmdLet相同的参数集。

我可以使用

查看Write-Error支持的参数集
Get-Help Write-Error

technet

上的在线
  

NAME       写入错误

     

概要       将对象写入错误流。

     

SYNTAX       写错误[-Message] [-Category] ​​[-CategoryActivity] [-CategoryReason]        [-CategoryTargetName] [-CategoryTargetType] [-ErrorId] [-RecommendedAction] [ -       TargetObject] []

Write-Error [-Category <ErrorCategory>] [-CategoryActivity <String>] [-CategoryReason <String>] [-CategoryTargetNam
e <String>] [-CategoryTargetType <String>] [-ErrorId <String>] [-Message <String>] [-RecommendedAction <String>] [-
TargetObject <Object>] -Exception <Exception> [<CommonParameters>]

Write-Error [-CategoryActivity <String>] [-CategoryReason <String>] [-CategoryTargetName <String>] [-CategoryTarget
Type <String>] [-RecommendedAction <String>] -ErrorRecord <ErrorRecord> [<CommonParameters>]

但是,如何轻松创建使用完全相同的参数集(包括必需参数和默认值)的新PowerShell脚本CmdLet?

1 个答案:

答案 0 :(得分:2)

这是代理功能的完美用例。您可以使用命令元数据创建代理功能:

$command = Get-Command Write-Error
$proxy = [System.Management.Automation.ProxyCommand]::Create($command)

一些有助于解释它的链接:

还有PowerShell模块(pspx)可以帮助您入门。