如何创建cmdlet?

时间:2008-12-12 05:28:37

标签: powershell cmdlet pssnapin

我用c#.net编写了我的程序。我想将其转换为PowerShell cmdlet。我被指示使用pssnapin和getproc程序。任何人都可以帮我解决..

此致 阿伦

6 个答案:

答案 0 :(得分:3)

要创建PowerShell cmdlet,我建议您阅读Bart De Smet撰写的Easy Windows PowerShell cmdlet development and debugging(B#),这是创建和调试cmdlet的一个很好的步骤(它在锡上说的是什么!)

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

答案 1 :(得分:2)

所以,这是PSCmdlet-Class [来自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);
    }
}

为了加载cmdlet,您需要另外签名,因为Powershell不会执行未签名的代码。

答案 2 :(得分:1)

安装windows powershell模板,因此你将获得pssnapin程序,使用它可以将.cs文件转换为dll。然后在msdn中搜索getproc程序。我不记得确切,但会有一个方法将在第一个执行。你用那种方法调用你的DLL文件。我不记得代码,但这是要做的程序。

答案 3 :(得分:1)

看看这篇文章Creating PowerShell Cmdlets in VB 2005。它使用VB 2005,但C#的过程是相同的。

完整的披露,我写了这篇文章,但是你看着它并没有得到报酬。 :)

答案 4 :(得分:0)

同时检查http://blogs.msdn.com/daiken/。特别是从2007年2月到2007年6月的所有月份。您将找到Visual Studio模板链接(2005年,也适用于Express),以及几个示例/实验。

答案 5 :(得分:0)

PowerTime项目(http://code.google.com/p/powertime/)是开源的,它实现了许多cmdlet。很适合让你前进的演示。