PowerShell jak wiadomo to potężne i niemal nieograniczone w swych możliwościach narzędzie dla administratorów i programistów. Ciekawym dodatkiem zwiększającym jego możliwości jest rozszerzenie o nazwie Netcmdlets.
NetCmdlets oferuje łatwy dostęp do wszystkich najważniejszych technologii internetowych z poziomu PowerShell, takich jak: SNMP, LDAP, DNS, Syslog, HTTP, WebDAV, FTP, SMTP, POP, IMAP, Rexec/RShell, Telnet, SSH, VPN, Whois, UDP, Email, Ping, Rshell, RSS, SMS, Time, Trace, Trap, TFTP i innych.
W okresie świąt Bożego Narodzenia producent przeprowadził ciekawą akcję promocyjną dla tego pakietu. Otóż można było otrzymać jego darmową licencję po zarejestrowaniu się na stronie producenta. Mam nadzieję, że to nie jedyna taka akcja i jeszcze nie raz Netcmdlets będzie udostępniony wszystkim fanom PowerShell. W chwili obecnej pakiet ponownie dostępny jest jedynie w wersji komercyjnej na stronie: http://www.powershellinside.com/powershell/netcmdlets/, możliwe jest pobranie wersji próbnej pakietu.
Cmdlety dostępne w pakiecie Netcmdlets
Poniżej niektóre Cmdlety dostępne w tym pakiecie:
[get/set]-snmp : Zarządzanie urządzeniami sieciowymi z wykorzystaniem protokołu SNMP bezpośrednio z PowerShell.
[get/send]-trap : Monitorowanie i wysyłanie pułapek SNMP.
[invoke]-ssh : Secure Shell - czyli zdalny dostęp do hosta za pomocą protokołu SSH.

[invoke]-rexec : Zdalne wykonanie przez Rexec.
[invoke]-rshell : Zdalne wykonanie przez Rshell.
[get/set]-ftp : Przesyłanie i pobieranie plików z wykorzystaniem protokołu FTP.
[get/set]-ldap : Dostęp do usługi Active Directory lub serwera OpenLDAP.
[get/send]-udp : Wysyłanie i odbieranie datagramów UDP.
[get/send]-nntp : Przeglądanie i wysyłanie wiadomości do grup dyskusyjnych.
[get/send]-syslog : Serwer i klient Syslog - monitorowanie zdarzeń.
[get/set]-tftp : Obsługa TFTP.
[convert]-data : Kodowanie i dekodowanie przy wykorzystaniu Base64, SHA1, MD5, BinHex i wielu innych.
[read/write]-zip : Kompresja i dekompresja plików. Wspierane metody kompresji: Zip, Tar, Gzip i Jar.
[get/set]-webdav : Klient WebDav.
[get]-http : Klient sieci Web z zaawansowaną obsługą proxy.

[get]-packet : Monitor ruchu w sieci.
[get]-time : Synchronizacja czasu hosta z wykorzystaniem serwerów czasu.
[get]-rss : Klient RSS, umożliwiający pobieranie i dystrybuowanie treści.
[get]-whois : Protokół wykorzystywany do wysyłania zapytań do baz danych DNS po to, by poznać właściciela domeny, adres IP lub inne informacje.
[send]-im : Klient Jabber (XMPP).
[send]-sms : Wysyłanie SMS’ów (SMPP)
[send]-ping : Diagnozowania połączeń sieciowych.
[get]-trace : Badanie trasy pakietów w sieci IP.
[send]-email : Wysyłanie poczty elektronicznej z załącznikami, obsługuje HTML i SSL.
[get/set]-imap : Pobieranie i zarządzanie wiadomościami poczty elektronicznej w serwerach IMAP.
[get]-pop : Pobieranie i zarządzanie wiadomościami w serwerach POP.
Przykłady użycia pakietu NetCmdlets w PowerShell
1. Lista plików na zdalnym serwerze.
PS C:\> get-ftp -server nazwa_serwera -user uzytkownik -password haslo
2. To samo, ale przy użyciu protokołu SSL.
PS C:\> get-ftp -server nazwa_serwera -user uzytkownik -password haslo -ssl explicit
3. Poniższy przykład korzysta z protokołu SSH 2.0.
PS C:\> get-ftp -server nazwa_serwera -user uzytkownik -password haslo -ssh
4. Usuwanie plików na zdalnym serwerze FTP:
send-ftp -server nazwa_serwera -user uzytkownik -password haslo -delete plik_do_skasowania.exe
5. Sposób na odnalezienie wszystkich przechowywanych lokalnie plików tekstowych z rozszerzeniem .txt i przesłanie ich na zdalny serwer FTP.:
PS C:\> get-childitem *.txt | select Name | set-ftp -server nazwa_serwera -user uzytkownik –password haslo -localfile $_ -remotefile $_
Wraz z pakietem NetCmdlets, instalowane są ciekawe demonstracje pozwalające w pełni poznać możliwości nowych cmdletów w języku PowerShell.
Zasoby w sieci na temat NetCmdlets
Cmdlets for Internet Communications & Messaging
NetCmdlets: Getting Started
Pobierz wersję trial NetCmdlets v3