Powershell 如何创建cmdlet?

Powershell 如何创建cmdlet?,powershell,cmdlet,pssnapin,Powershell,Cmdlet,Pssnapin,我已经用c#net编写了我的程序。我想将其转换为powershell cmdlet。我被指示使用pssnapin和getproc程序。有人能帮我吗 问候 Arun安装windows powershell模板,从而获得pssnapin程序,使用该程序,您可以将.cs文件转换为dll。然后在msdn中搜索getproc程序。我记不太清楚了,但是会有一个方法在第一时间执行。您可以使用该方法调用dll文件。我不记得代码了,但这是要执行的过程。因此,这里是PSCmdlet类[来自medata],您可以从中

我已经用c#net编写了我的程序。我想将其转换为powershell cmdlet。我被指示使用pssnapin和getproc程序。有人能帮我吗

问候
Arun

安装windows powershell模板,从而获得pssnapin程序,使用该程序,您可以将.cs文件转换为dll。然后在msdn中搜索getproc程序。我记不太清楚了,但是会有一个方法在第一时间执行。您可以使用该方法调用dll文件。我不记得代码了,但这是要执行的过程。

因此,这里是PSCmdlet类[来自medata],您可以从中继承

namespace System.Management.Automation
{
    public abstract class PSCmdlet : Cmdlet
    {
        protected PSCmdlet();

        public PSHost Host { get; }
        public CommandInvocationIntrinsics InvokeCommand { get; }
        public ProviderIntrinsics InvokeProvider { get; }
        public InvocationInfo MyInvocation { get; }
        public string ParameterSetName { get; }
        public SessionState SessionState { get; }

        public PathInfo CurrentProviderLocation(string providerId);
        public Collection<string> GetResolvedProviderPathFromPSPath(string path, out ProviderInfo provider);
        public string GetUnresolvedProviderPathFromPSPath(string path);
        public object GetVariableValue(string name);
        public object GetVariableValue(string name, object defaultValue);
    }
}
namespace System.Management.Automation
{
公共抽象类PSCmdlet:Cmdlet
{
受保护的PSCmdlet();
公共PSHost主机{get;}
public CommandInvocationIntrinsics InvokeCommand{get;}
公共ProviderIntrinsics调用Provider{get;}
公共调用信息MyInvocation{get;}
公共字符串参数setName{get;}
公共会话状态会话状态{get;}
公共路径信息CurrentProviderLocation(字符串providerId);
公共集合GetResolvedProviderPathFrompPath(字符串路径,out ProviderInfo提供程序);
公共字符串GetUnsolvedProviderPathFrompPath(字符串路径);
公共对象GetVariableValue(字符串名称);
公共对象GetVariableValue(字符串名称、对象默认值);
}
}

为了加载cmdlet,您需要对它们进行额外的签名,因为Powershell不会执行未签名的代码。

请阅读本文。它使用VB 2005,但过程与C#相同


完全公开,我写了这篇文章,但你看这篇文章并没有给我报酬。:)

也检查一下。特别是2007年2月至2007年6月的所有月份。您会发现Visual Studio模板链接(对于2005,在Express中也可以使用)和几个示例/实验室。

PowerTime项目()是开源的,它实现了许多cmdlet。演示很好。要创建PowerShell cmdlet,我建议您阅读Bart De Smet(B#)的文章。这是创建和调试cmdlet的一个很好的演练(按照tin上的说明执行!)


我还发现专业的Windows PowerShell编程软件ISBN 978-0470173930,(ISBN-10)0470173939非常适合创建cmdlet和提供程序。

默认情况下。。。请随意使用Set ExecutionPolicy,以允许您自行承担风险。您是否有任何理由不接受任何问题的答案?