Table of contents : Copertina Frontespizio Colophon Prefazione Parte I Introduzione 1 Installazione e primo avvio Windows Management Framework Installazione Requisiti minimi per l’installazione Installazione del framework Microsoft .NET Installazione di Windows Management Framework Disinstallazione di PowerShell 1.0 Abilitazione di PowerShell su Windows Server 2008 Avviare PowerShell L’interfaccia a console L’interfaccia a finestre Interfacce alternative 2 Concetti di base La riga di comando Il prompt I cmdlet I parametri Ottenere informazioni sui comandi Recupero dei comandi disponibili Ottenere informazioni dalla guida I comandi esterni alla shell Parte II Sintassi di base 3 Oggetti e tipi di oggetto Le modalità di parsing Gli oggetti Le proprietà d’istanza I metodi d’istanza Il metodo ToString() Recuperare i membri di un oggetto Le variabili L’assegnazione Le variabili automatiche Recupero dei valori da console I tipi di oggetto I tipi primitivi New-Object Proprietà e metodi statici Riferimenti nulli Il cast I type accelerator L’Extended Type System Gli operatori 4 Lavorare con gli script Gli script esterni I commenti I criteri di esecuzione Hello, world Lo scope Global scope e script scope Il local scope Il private scope Il dot sourcing I parametri L’istruzione param I parametri fortemente tipizzati Informazioni sullo script corrente L’indicazione dei prerequisiti 5 Gli alias Gestire gli alias Creare nuovi alias Modificare gli alias esistenti Rimuovere gli alias Alias persistenti 6 Un po’ di logica La logica booleana Confrontare le espressioni Gli operatori -eq e -ne Gli operatori -lt e -gt Gli operatori -le e -ge Gli operatori -like e -notlike Gli operatori -match e -notmatch Gli operatori -is e -isnot Gli operatori case sensitive Verificare più condizioni L’operatore -and L’operatore -or L’operatore -xor L’operatore -not 7 Il flusso di esecuzione I blocchi condizionali Il blocco if/else/elseif Il blocco switch I cicli II ciclo while Il ciclo do..while Il ciclo do..until Il ciclo for Il ciclo foreach Variare il flusso dei cicli con break e continue 8 La pipeline Aggregare i cmdlet La pipeline e i parametri dei cmdlet Ispezionare l’associazione dei parametri La pipeline in azione Where-Object Sort-Object Select-Object ForEach-Object Group-Object 9 L’output La visualizzazione Visualizzare i tipi primitivi Visualizzare i tipi complessi Format-Table Format-Wide Format-List Viste predefinite Proprietà predefinite L’ultimo caso Consumare l’output Out-Host Out-GrìdVìew Out-String Out-Null Out-File Parte III Elaborazione dei dati 10 Gli array La creazione La visualizzazione Recupero e impostazione degli elementi Recupero di elementi multipli L’operatore di range numerico Unire array e aggiungere elementi Rimuovere elementi Lo splitting L’operatore di sottoespressione di array Filtrare gli elementi Gli operatori -contains e -notcontains Metodi di rilievo Metodo Index0f() Metodo LastlndexOf() Metodo Reverse() 11 Gli array associativi La creazione La visualizzazione Recupero e impostazione degli elementi L’operatore punto Rimuovere elementi ConvertFrom-StringData Metodi e proprietà di rilievo Proprietà Keys Proprietà Values Metodo GetEnumerator() Metodo ContaìnsKeyO Metodo ContaìnsValue() 12 Le stringhe La creazione Il carattere di escape Le sequenze di escape Le stringhe here Stringhe vuote e stringhe nulle L’ìndexer L’operatore -join L’operatore -split L’operatore -replace La formattazione L’operatore -f Metodi di rilievo Metodi ToUpper() e ToLower() Metodo ToCharArray() Metodo SubstrìngO Metodo Remove() Metodi Trìm(), TrìmStart() e TrìmEndQ Metodi IndexOf() e LastIndexOf 13 Wildcard ed espressioni regolari I wildcard Wildcard * Wildcard ? Wildcard [] Le espressioni regolari Pattern . Pattern [] I punti dì ancoraggio I quantificatori Classi di carattere Le alternanze Il carattere di escape Le sequenze di escape I gruppi Select-String 14 I numeri Tipi numerici Byte e SByte Int16 e Ulnt16 Int32 e Ulnt32 Int64 e Ulnt64 Single Double Decimal Conversioni tra tipi Operazioni fondamentali Gli operatori aritmetici Le notazioni numeriche I suffissi per i multipli binari Gli operatori binari L’operatore -band L’operatore -bor L’operatore -bxor L’operatore -bnot Il tipo System.Math Costanti matematiche Metodo Pow() Metodo Sqrt() Metodo Truncate() Metodi Floor(), Ceìlìng() e Round() Il tipo System.Random Metodo Next() 15 Le date e gli intervalli temporali Get-Date Formattare le date Manipolare le date Gli anni bisestili Ora solare e ora legale Gli intervalli temporali Set-Date 16 Funzioni e filtri Le funzioni Lo scope Recuperare le funzioni disponibili I parametri I parametri posizionali La validazione dei parametri Interagire con la pipeline I filtri Parte IV Amministrazione del sistema 17 I provider L’architettura I provider II provider FileSystem Il provider Registry Il provider Variable Il provider Alias Il provider Function Il provider Environment Il provider Certificate Il provider WSMan Gestire il percorso di lavoro corrente Get-Location Set-Location Recuperare gli elementi Get-ChildItem Get-Item Manipolare gli elementi New-Item Remove-Item Rename-Item Copy-Item Move-Item Set-Item Invoke-Item Manipolare le proprietà degli elementi Get-ItemProperty Set-ltemProperty New-ltemProperty Remove-ItemProperty Rename-ItemProperty Copy-ItemProperty Move-ItemProperty I parametri di attenuazione dei rischi Switch -WhatIf Switch -Confirm 18 WMI L’architettura Recuperare le informazioni PowerShell WMI Explorer Get-WmiObject Filtrare gli oggetti WMI I type accelerator per WMI Manipolare gli oggetti WMI Invocare i metodi WMI Invoke-WmìMethod Remove-WmiObject Set-WmiInstance 19 COM Recuperare i componenti installati Creazione delle istanze Alcuni casi d’uso Interagire con Explorer Gestire le unità di rete con WshNetwork Interagire con Excel Interagire con Word Utilizzare le funzionalità di text to speech di Windows Gestire il firewall di Windows 20 Leggere e scrivere file File di testo e file binari Le codifiche I cmdlet per l’elaborazione dei file Get-Content Set-Content Add-Content Clear-Content Out-File Reindirizzare l’output Operatore > Operatore >> Operatore 2> Operatore 2>> Operatore 2>&1 21 Gestire processi e servizi I processi Start-Process Get-Process Stop-Process Wait-Process I servizi Get-Service Start-Service Stop-Service Suspend-Service e Resume-Service Restart-Service Set-Service 22 XML, XPath e XSLT Recuperare le informazioni Il DOM XPath e le query complesse Select-Xml Modificare elementi e attributi Creare nuovi nodi Eliminare i nodi esistenti Trasformare i documenti XSLT 23 Il registro eventi di Windows Recuperare i log e gli eventi Get-EventLog Get-WìnEvent Filtrare gli eventi tramite XPath Filtrare gli eventi tramite array associativo Recuperare i provider disponibili Recuperare gli eventi da file Gestire i log degli eventi New-EventLog Write-EventLog Limit-EventLog Remove-EventLog Parte V Funzionalità avanzate 24 Internet e la shell Utilizzare il protocollo ICMP Fare il ping di una macchina Utilizzare il protocollo HTTP Download di file via HTTP Elaborazione di un feed RSS Invocare un web service Rispondere alle richieste HTTP Interrogare il DNS Risoluzione DNS Inviare e-mail 25 Interagire con l’host Personalizzare l’ambiente La console testuale PowerShell ISE Intervenire sulle funzionalità Il profilo utente Customizzare il prompt Customizzare il completamento automatico 26 Job in background I job La configurazione di WinRM Il ciclo di vita dei job L’avvio Il recupero dei risultati L’attesa del completamento Oggetti deserializzati La gestione Interruzione ed eliminazione 27 Eseguire task in remoto Eseguire comandi in remoto La configurazione di WinRM Invoke-Command Esecuzione su più macchine Esecuzione in background Criteri di esecuzione e limiti Sessioni remote New-PSSessìon Get-PSSession Utilizzare la sessione in Invoke-Command Remove-PSSessìon Sessioni remote interattive Enter-PSSession Exìt-PSSessìon 28 La gestione degli errori Errori sintattici Errori di runtime Errori logici Errori fatali ed eccezioni Throw Trap Try/catch/finally Cause degli errori fatali Errori non fatali Write-Error Variare il comportamento nei cmdlet Cause degli errori non fatali Strutture degli errori Variabili automatiche e preferenze $Error $MaximumErrorCount $LastExìtCode $? $ErrorActionPreference