11/09/2009

PowerShell 2.0 - Cosa c'è di nuovo?

A cura di Efran Cobisi


Pagina 1 di 4

Con l’uscita di Windows 7 e Windows Server 2008 R2, questa estate, ha fatto il suo debutto anche la versione 2.0 di Windows PowerShell, portando con sé un ricco ventaglio di nuove ed interessanti funzionalità. Chi possiede versioni più recenti di Windows – in particolare Windows XP e Windows Server 2003 – potrà presto installare la nuova shell anche su questi sistemi operativi poiché recentemente Microsoft ne ha rilasciato il port in versione RC.

Con oltre tre volte il numero di cmdlet disponibili nella versione precedente, il supporto per la remotizzazione dei comandi, per i job in background, le transazioni, il supporto eventi, la possibilità di creare cmdlet mediante script ed il debug da shell le novità non mancano: in questo articolo ne vedremo le principali.


PowerShell Remoting


Forse la più importante tra le innovazioni di PowerShell 2.0, PowerShell Remoting consente di eseguire un blocco di comandi a fronte di uno o più sistemi remoti, recuperandone successivamente l’eventuale risultato: l’avvio dei comandi ed il recupero dei risultati può essere effettuato – e questo è il valore aggiunto – attraverso un’unica shell. Lo scenario del sistemista con il dono dell’ubiquità, quindi, diventa sempre meno realistico e all’orizzonte tutti noi possiamo intravedere la possibilità di amministrare da remoto qualsiasi aspetto dei sistemi Windows all’interno della nostra rete. Senza utilizzare nessuna interfaccia grafica e senza acquistare alcun software di terze parti.

Supponiamo, a titolo di esempio, di voler recuperare il processo più avido di memoria virtuale in due particolari server (SRV01 e SRV02), lanciando uno script PowerShell dalla nostra postazione:

$command = {
	Get-Process |
		Sort-Object WorkingSet -Descending |
		Select-Object -First 1
}

Invoke-Command SRV01,SRV02 $command

La prima parte dello script è familiare per chi proviene dalla versione precedente della shell; abbiamo attribuito alla variabile $command un blocco di codice, blocco che potremmo eseguire nel sistema locale utilizzando l’operatore &:

&$command

Ma non è questo il caso. Il punto di giunzione tra la tecnologia precedente e quella nuova si trova celato all’interno del nuovo cmdlet Invoke-Command (alias icm): questo comando si occupa, di fatto, di gestire la comunicazione dei comandi tra i sistemi coinvolti, serializzando e deserializzando i dati. Questa tecnologia si basa su Windows Remote Management (WinRM), l’implementazione Microsoft di WS-Management, uno standard aperto basato sul protocollo SOAP, nato per gestire server, device ed applicazioni tramite un sistema sicuro di comunicazione firewall-friendly. Per far funzionare PowerShell Remoting è quindi necessario che il servizio WinRM sia attivo nei sistemi interessati.

Pagina 1 di 4

Commenti



Nessun commento disponibile.

Cobisi EmailVerify.NET is a Microsoft .NET software component that validates email addresses. valid email