Articles

Che cosa è PowerShell?

  • 05/22/2020
  • 5 minuti per leggere
    • j

PowerShell è un cross-piattaforma di automazione delle attività di configurazione e di gestione quadro composto di shell della riga di comando e un linguaggio di scripting. A differenza della maggior parte delle shell, che accettano e restituiscono il testo, PowerShell è costruito sulla parte superiore del. NET Common Language Runtime (CLR), e accetta e restituisce .NETobjects., Questo cambiamento fondamentale porta strumenti e metodi completamente nuovi per l’automazione.

L’output è basato su oggetti

A differenza delle tradizionali interfacce a riga di comando, i cmdlet PowerShell sono progettati per gestire objects.An l’oggetto è un’informazione strutturata che è più della semplice stringa di caratteri che appare sullo schermo. L’output del comando porta sempre informazioni extra che puoi usare se ne hai bisogno.

Se hai utilizzato strumenti di elaborazione del testo per elaborare i dati in passato, scoprirai che si comportano in modo diverso quando vengono utilizzati in PowerShell., Nella maggior parte dei casi, non sono necessari strumenti di elaborazione del testo per estrareinformazioni specifiche. Si accede direttamente a porzioni dei dati utilizzando PowerShell objectsyntax standard.

La famiglia di comandi è estensibile

Interfacce comecmd.exe non forniscono un modo per estendere direttamente il commandset incorporato. È possibile creare strumenti da riga di comando esterni che vengono eseguiti in cmd.exe. Ma questi strumenti esterninon hanno servizi, come l’integrazione della guida. cmd.exe non sa automaticamente che questi strumenti esterni sono comandi validi.,

I comandi in PowerShell sono noti come cmdlet. È possibile utilizzare ciascun cmdlet separatamente, ma loroil potere si realizza quando li si combina per eseguire attività complesse. Come molte shell, PowerShell dàaccedi al file system sul computer. I provider PowerShell consentono di accedere ad altri archivi di dati, come il registro e gli archivi di certificati, con la stessa facilità con cui si accede al filesystem.

È possibile creare il proprio cmdlet e moduli funzione utilizzando codice compilato o script. I moduli possono aggiungerecmdlet e provider alla shell., PowerShell supporta anche script analoghi agli script UNIXshell ecmd.exe file batch.

Supporto per gli alias dei comandi

PowerShell supporta gli alias per fare riferimento ai comandi con nomi alternativi. L’aliasing consente agli utenti con esperienza in altre shell di utilizzare nomi di comandi comuni che già conoscono per operazioni simili in PowerShell.

L’aliasing associa un nuovo nome a un altro comando. Ad esempio, PowerShell ha una funzione interna denominata Clear-Host che cancella la finestra di output., È possibile digitare l’aliascls oclear al prompt dei comandi. PowerShell interpreta questi alias ed esegue la funzioneClear-Host.

Questa funzione aiuta gli utenti a imparare PowerShell. Innanzitutto, la maggior parte degli utenticmd.exe e Unix hanno un largerepertoire di comandi che gli utenti già conoscono per nome. Gli equivalenti di PowerShell potrebbero non produrrerisultati identici. Tuttavia, i risultati sono abbastanza vicini da consentire agli utenti di lavorare senza conoscere il nome del comando PowerShell., “Memoria muscolare” è un’altra importante fonte di frustrazione quando si impara un nuovocomando shell. Se hai usato cmd.exeper anni, potresti digitare in modo riflessivo il comando cls per chiarire lo schermo. Senza l’alias per Clear-Host, si riceve un messaggio di errore e non si sa cosa fare per cancellare l’output.

PowerShell gestisce l’input e il display della console

Quando si digita un comando, PowerShell elabora sempre direttamente l’input della riga di comando. powershellformatta anche l’output che vedi sullo schermo., Questa differenza è significativa perché essoriduce il lavoro richiesto da ciascun cmdlet. Assicura che puoi sempre fare le cose allo stesso modocon qualsiasi cmdlet. Gli sviluppatori di Cmdlet non hanno bisogno di scrivere codice per analizzare gli argomenti della riga di comando o formattare l’output.

Gli strumenti tradizionali della riga di comando hanno i propri schemi per la richiesta e la visualizzazione di aiuto. Alcuni strumenti a riga di comando usano/? per attivare la visualizzazione della Guida; altri usano-?,/H, o anche//., Alcuni visualizzeranno la Guida in una finestra della GUI, piuttosto che nel display della console. Se si utilizza il parametro thewrong, lo strumento potrebbe ignorare ciò che è stato digitato e iniziare a eseguire automaticamente un’attività.Poiché PowerShell analizza ed elabora automaticamente la riga di comando, il parametro-? significa sempre “mostrami aiuto per questo comando”.

Nota

Se si esegue un’applicazione grafica in PowerShell, si apre la finestra per l’applicazione.PowerShell interviene solo quando si elabora l’input della riga di comando fornito o l’applicationoutput restituito alla finestra della console., Non influisce sul modo in cui l’applicazione funziona internamente.

PowerShell ha una pipeline

Le pipeline sono probabilmente il concetto più prezioso utilizzato nelle interfacce a riga di comando. Se utilizzate correttamente, le pipeline riducono lo sforzo di utilizzare comandi complessi e rendono più facile vedere il flusso di lavoro. Ogni comando in una pipeline passa il suo output, elemento per elemento, al comando successivo. Commandsdon’t devono gestire più di un elemento alla volta. Il risultato è ridotto consumo di risorse ela capacità di ottenere immediatamente l’output.,

La notazione utilizzata per le pipeline è simile alla notazione utilizzata in altre shell. A prima vista, potrebbe non essere evidente come le pipeline siano diverse in PowerShell. Anche se si vede il testo sullo schermo,PowerShell tubi oggetti, non testo, tra i comandi.,

Per esempio, se si utilizza il tag Out-Host cmdlet per forza una pagina di visualizzazione di output fromanother comando, l’uscita sembra proprio come un normale testo visualizzato sullo schermo, suddiviso intopages:

Get-ChildItem | Out-Host -Paging

Paging, inoltre, riduce l’utilizzo della CPU a causa di elaborazione trasferimenti per il Out-Host cmdlet quando venne una pagina completa pronto per la visualizzazione. I cmdlet che lo precedono nella pipeline mettono in pausa l’esecuzionefino a quando la pagina successiva di output è disponibile.,

Oggetti nella pipeline

Quando si esegue un cmdlet in PowerShell, viene visualizzato l’output di testo perché è necessario rappresentare oggetti come testo in una finestra della console. L’output di testo potrebbe non visualizzare tutte le proprietà dell’oggetto in output.

Ad esempio, si consideri il cmdletGet-Location. L’output di testo è un riepilogo delle informazioni, non una rappresentazione completa dell’oggetto restituito da Get-Location. L’intestazione nell’output viene aggiuntadal processo che formatta i dati per la visualizzazione su schermo.,

Get-Location
Path----C:\

Convogliare l’output nel cmdletGet-Membervisualizza le informazioni sull’oggetto restituito daGet-Location.

Get-Location | Get-Member

Get-Location restituisce un oggetto PathInfo che contiene il percorso corrente e altre informazioni.

Sistema di aiuto integrato

Simile alle pagine Unixman, PowerShell include articoli di aiuto dettagliati che spiegano PowerShellconcepts e sintassi dei comandi., Utilizzare il cmdlet Get-Help per visualizzare questi articoli in commandprompt o visualizzare le versioni aggiornate più recenti di questi articoli nella documentazione powershellonline.

Per ulteriori informazioni su PowerShell, vedere la sezione Learning PowerShell di questo sito.