If you need assistance in compiling and testing the CmdLet code see Don Jones' Make-A-CmdLet blog.
I have included the Get-Computer.vb source file and the generated DLL "PSSExtensionsVB.DLL" to the zip file. You can load the DLL by following these instructions:
$dllpath=<path to saved dll> C:\Windows\Microsoft.NET\Framework\v2.0.50727\installutil $dllpath add-pssnapin PSSExtensionsVB
Now try the following commands:
Get-Computer
Get-Computer localhost
Get-computer comp1,comp2,comp3
Get-Computer -file c:\computers.txt
dir c:\computers.txt | Get_Computer.txt
$hosts = "host1",host2", "host3"
$hosts | Get-Computer
Any input object or collection where the object "name" property is a computer can feed this CmdLet.
Try the following:
PS>$mycomputer = Get-Computer localhost
VERBOSE: DefaultSet
PS>$mycomputer
Services Name IsPingable
-------- ---- ----------
{Alerter, ALG, AppMgmt, aspnet_state...} localhost True
PS>$mycomputer.Ping()
True
PS>$mycomputer.Services
Key Value
--- -----
Alerter \\OMEGA\root\cimv2:Win32_Service.Name="Alerter"
ALG \\OMEGA\root\cimv2:Win32_Service.Name="ALG"
AppMgmt \\OMEGA\root\cimv2:Win32_Service.Name="AppMgmt"
aspnet_state \\OMEGA\root\cimv2:Win32_Service.Name="aspnet_state"
AudioSrv \\OMEGA\root\cimv2:Win32_Service.Name="AudioSrv"
BITS \\OMEGA\root\cimv2:Win32_Servic="BITS"
Browser \\OMEGA\root\cimv2:Win32_Service.Name="Browser"
...
Use GM to explore the properties of $mycomputer.
Look at the code and see how little code is needed to create this much functionality. NET coupled with PowerShell is very powerful and flexible.
In the next installment I will explore more of the options available for creating powerful CmdLet's that help to simplify administration. Along the way I will add some more interesting abilities to the "Computer" object for fun and to help test the growing CmdLet design. Remember, we are only at the design stage. After we have tested all of the elements and chosen the final configuration we still have to complete the design. After the design is complete we will begin the final stage of code generation and testing.
No comments:
Post a Comment