次の方法で共有


Windows PowerShell コマンドレットの作成


WEB キャスト

このデモの内容

ここでは、稼働中のプロセス情報の一覧を取得する簡単な Windows PowerShell のコマンドレットを作成することで、その手順をご紹介していきます。
このデモで使用している Windows PowerShell Visual Studio 2005 Templates は、以下のサイトから入手可能です。
(デモでは Visual Studio 2005 を使用していますが、Visual Studio 2008 でも作成/動作させることができます)

Channel9 Forums 「Windows PowerShell Visual Studio 2005 Templates (C# and VB.NET)」 (英語)

デモでご紹介しているソースコード

【カスタムのスナップインクラスの実装 (C#)】

using System;
using System.Collections.Generic;
using System.Text;
using System.Management.Automation;
using System.ComponentModel;
namespace MyShell1
{
    [RunInstaller(true)]
    public class MyShell1SnapIn : PSSnapIn
    {
        public override string Name
        {
            get { return "MyShell1"; }
        }
        public override string Vendor
        {
            get { return "Microsoft"; }
        }
       public override string VendorResource
        {
            get { return "MyShell1,Microsoft"; }
        }
        public override string Description
        {
            get { return "Registers the CmdLets and Providers in this assembly"; }
        }
        public override string DescriptionResource
        {
            get { return "MyShell1,Registers the CmdLets and Providers in this assembly"; }
        }
    }
}

【カスタムのPowerShellコマンドレットクラスの実装 (C#)】

using System;
using System.Collections.Generic;
using System.Text;
using System.Management.Automation;
using System.Collections;
namespace MyShell1
{
    [Cmdlet(VerbsCommon.Get, "MyGetProc", SupportsShouldProcess = true)]
    public class MyGetProc : PSCmdlet
    {
        #region Parameters
        /*
        [Parameter(Position = 0,
            Mandatory = false,
            ValueFromPipelineByPropertyName = true,
            HelpMessage = "Help Text")]
        [ValidateNotNullOrEmpty]
        public string Name
        {
        }
 */
        #endregion
        protected override void ProcessRecord()
        {
            try
            {
                WriteObject(System.Diagnostics.Process.GetProcesses(), true);
            }
            catch (Exception)
            {
            }
        }
    }
}

ページのトップへ