<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: powershell code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Sat, 26 Jul 2008 12:38:58 GMT</pubDate>
    <description>DZone Snippets: powershell code</description>
    <item>
      <title>Windows Powershell Cmdlet - Creation and Registration</title>
      <link>http://snippets.dzone.com/posts/show/2578</link>
      <description>Adapted from "Windows PowerShell Programmer's Guide", at http://windowssdk.msdn.microsoft.com/en-us/library/ms714674.aspx&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;// Reference added to "System.Management.Automation.dll" in "C:\Program Files\Windows PowerShell\v1.0":&lt;br /&gt;using System.Management.Automation;&lt;br /&gt;&lt;br /&gt;namespace CmdletTest&lt;br /&gt;{&lt;br /&gt;    [Cmdlet(VerbsCommon.Get, "Hjnntaao")]&lt;br /&gt;    public class GetHjnntaaoCommand : Cmdlet&lt;br /&gt;    {&lt;br /&gt;        // BeginProcessing - pre-processing/set-up&lt;br /&gt;&lt;br /&gt;        // If accepts pipeline input, must override ProcessRecord and, optionally, EndProcessing&lt;br /&gt;&lt;br /&gt;        // If does not take pipline input, should override EndProcessing&lt;br /&gt;&lt;br /&gt;        // Cmdlets should never call WriteLine, or equivalent.&lt;br /&gt;        protected override void ProcessRecord()&lt;br /&gt;        {&lt;br /&gt;            Process[] processes = Process.GetProcesses();&lt;br /&gt;&lt;br /&gt;            &lt;br /&gt;            WriteObject(processes);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    /* &lt;br /&gt;       This method of registering the Cmdlet with PowerShell extends the shell using snap-ins. This should&lt;br /&gt;       be the default way of registering Cmdlets. The other way, registering with a custom shell,&lt;br /&gt;       should only be used to create executable files.&lt;br /&gt;     &lt;br /&gt;       To install:&lt;br /&gt;       1) installutil CmdletTest.dll&lt;br /&gt;       2) Verify the snap in is in the list of registered snap-ins awaiting to be loaded by&lt;br /&gt;          running "get-pssnapin -registered"&lt;br /&gt;       3) Add the snap in to the shell by using "add-pssnapin "GetHjnntaaoPSSSnapIn01"&lt;br /&gt;     */&lt;br /&gt;    [RunInstaller(true)]&lt;br /&gt;    public class GetHjnntaaoPSSnapIn01 : PSSnapIn&lt;br /&gt;    {&lt;br /&gt;        public override string Name&lt;br /&gt;        {&lt;br /&gt;            get { return "GetHjnntaaoPSSnapIn01"; }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public override string Vendor&lt;br /&gt;        {&lt;br /&gt;            get { return "HjnntaaoCorp"; }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public override string Description&lt;br /&gt;        {&lt;br /&gt;            get { return "Hjnntaao's Cmdlet"; }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sun, 10 Sep 2006 18:58:49 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/2578</guid>
      <author>hjnntaao (hjnntaao)</author>
    </item>
  </channel>
</rss>
