Cmdlet di PowerShell che miglioreranno le tue abilità di amministrazione di Windows

Powershell è lo strumento da riga di comando e il linguaggio di scripting delle parti uguali. Ti dà la possibilità di automatizzare il tuo computer tramite gli stessi comandi che usi per amministrarlo.

Powershell è lo strumento da riga di comando e il linguaggio di scripting delle parti uguali.  Ti dà la possibilità di automatizzare il tuo computer tramite gli stessi comandi che usi per amministrarlo.
Annuncio pubblicitario

Powershell è un modo perfetto per iniziare un nuovo coder su Windows. Powershell è lo strumento da riga di comando e il linguaggio di scripting delle parti uguali. Ti dà la possibilità di automatizzare il tuo computer tramite gli stessi comandi che usi per amministrarlo. Prompt dei comandi e Windows PowerShell: qual è la differenza? Prompt dei comandi e Windows PowerShell: qual è la differenza? Gli utenti Windows possono cavarsela senza usare il prompt dei comandi o PowerShell. Ma con Windows 10 e le nuove funzionalità dietro l'angolo, forse è ora che impariamo. Leggi di più . Se hai un moderno sistema Windows, hai già PowerShell. La maggior parte dei suoi usi sono incentrati su Windows, ma è possibile installare PowerShell su un computer Mac o Linux. Come installare e utilizzare PowerShell su Linux Come installare e utilizzare PowerShell su Linux Nel 2016, PowerShell open source Microsoft e ha debuttato un'iterazione multipiattaforma . In questo articolo ho intenzione di mostrarvi come installare, eseguire e utilizzare PowerShell su Linux! Leggi di più pure.

Funzionando con PowerShell

Esistono due modi per utilizzare Powershell. C'è la finestra di base della riga di comando, che è usata per eseguire comandi o invocare script pre-scritti. Poi c'è l'ISE, che combina la finestra CLI con un ambiente di sviluppo di base. Usando questo, puoi scrivere e testare i tuoi script.

L'ISE ha un elenco di comandi ricercabili e puoi usare la finestra del terminale senza un file aperto. L'elenco comandi consente di costruire il comando e inserirlo. Se stai facendo uno sviluppo più avanzato, installa il codice di Visual Studio di Microsoft. Il codice include il supporto per il controllo della versione di Git 10 Suggerimenti per la produttività essenziale per Visual Studio Code 10 Suggerimenti per la produttività essenziali per il codice Visual Studio Il codice Visual Studio blows altri editor di testo di programmazione fuori dall'acqua. È gratuito, open source, fulmineo e ricco di funzioni di produttività. Leggi di più e altre lingue.

riga di comando di PowerShell

Powershell è unico in quanto è interamente costruito con comandi, Microsoft li chiama Cmdlet. Questi comandi sono gli stessi se si sta lavorando tramite riga di comando o scrivendo script complessi. Quindi, quando usi questi comandi, puoi pensare a metterli insieme per creare i tuoi primi script.

Nozioni di base: Get-Command, Get-Help, Get-Member

Tutti i comandi di Powershell assumono la forma di Verb-Noun. I verbi sono solitamente: Get, Set e New .

Get-Command ti consente di visualizzare tutti i comandi disponibili. Quando esegui Get-Command, vedi che ci sono tantissimi comandi che iniziano con questi.

Avanzando ulteriormente dai soli nomi dei cmdlet, inizierai a vedere che tutti hanno una struttura simile. Li invochi per nome, proprio come hai fatto con Get-Command. L'uso dei parametri cambia le informazioni che ottieni. Tuttavia, se hai sempre usato il comando con le opzioni predefinite, come scopri come utilizzare i parametri avanzati?

powershell get-help

Utilizzando il cmdlet Get-Help con Get-Command vengono visualizzate ulteriori informazioni sul cmdlet. Usiamo il cmdlet con la seguente sintassi:

Get-Help Get-Command 

Quindi vedi le informazioni di base sui parametri. Se si desidera visualizzare i dettagli dei parametri e alcuni esempi di utilizzo, aggiungere il parametro -Full.

Se vuoi solo vedere gli esempi, puoi eseguire:

 Get-Help Get-Command -Examples 

Questo cmdlet restituisce solo gli esempi dal file della guida. Questi esempi sono molto utili perché includono descrizioni. Questo testo guida spiega cosa fanno il cmdlet e i parametri quando vengono eseguiti.

finestra di aiuto

Se vuoi far apparire il file di aiuto in una finestra separata, puoi usare -ShowWindow . Quindi se corri:

 Get-Help Get-Command -ShowWindow 

Powershell apre una finestra con il file di aiuto completo. Non è necessario utilizzare il parametro Full qui, poiché la finestra estrae l'intero articolo.

Man mano che si diventa più avanzati con Powershell, scoprirai che usi Get-Member più spesso. È un modo semplice per vedere quali campi sono disponibili dai dati restituiti, nonché altri metodi che è possibile eseguire. Spesso, i cmdlet avranno un parametro -Property che consente di chiamarli.

Lavorare con i file: Get-ChildItem, Remove-Item, Move-Item, Copy-Item

Ora che hai un'idea di come funzionano i cmdlet e come ottenere aiuto, eseguiamo le modifiche. È possibile ottenere il contenuto di qualsiasi cartella utilizzando il comando Get-ChildItem . Ad esempio, è possibile ottenere i file di un'intera unità utilizzando la lettera di unità. Accedere:

 Get-ChildItem E:\ 

Che è l'abbreviazione di:

 Get-ChildItem -Path E:\ 

Quando si esegue questo comando, si ottiene un elenco di file con il suo Ultimo tempo di scrittura, la dimensione sotto la proprietà Lunghezza, Nome e Modalità. La modalità è gli attributi di un file o una cartella AttributeMagic Free: Modifica proprietà file in Windows AttributeMagic gratuito: modifica proprietà file in Windows Ulteriori informazioni. Le voci possibili sono:

  • Sola lettura
  • Nascosto
  • Sistema
  • elenco
  • Archivio
  • Dispositivo
  • Normale
  • Temporaneo
  • file sparso
  • ReparsePoint
  • compressa
  • disconnesso
  • NotContentIndexed
  • Encrypted

Se si desidera ottenere il contenuto di tutte le sottodirectory in un percorso, si desidera utilizzare il parametro -Recurse . Quindi, esegui:

 Get-ChildItem -Path E:\ -Recurse 

I file vengono quindi visualizzati come elenchi separati per ogni cartella nel percorso.

powershell get-childitem

Per limitare i dati restituiti è possibile utilizzare alcuni parametri diversi: -File, -Hidden e -ReadOnly . Se stai cercando di filtrare i nomi dei file, puoi utilizzare i caratteri jolly nel parametro Path. Per restituire tutti i file .doc in una directory, immettere:

 Get-ChildItem -Path E:\*.doc 

Ancora una volta, aggiungi -recurse se vuoi tutto anche dalle sottocartelle.

Se si desidera eliminare un file, utilizzare:

 Remove-Item -Path E:\OldFile.txt 

Per saltare la conferma di ogni file, aggiungi il parametro -Confirm $ false (Powershell ha due costanti per i valori booleani: $ true e $ false). Per forzare la rimozione di file di sola lettura o nascosti, utilizzare il parametro -Force .

Spostare i file è altrettanto facile. Per spostare qualsiasi cosa dall'unità Flash all'unità locale in una cartella, utilizzare:

 Move-Item -Path E:\* -Destination C:\FlashDriveArchive 

Puoi anche nominare un singolo file in -Path per spostare solo quel file. Per copiare il file anziché spostarlo, si utilizza la stessa sintassi con il cmdlet Copy-Item .

Monitoraggio e utilizzo di processi e servizi

Ogni utente di Windows conosce Task Manager 5 Potenti alternative al Task Manager di Windows 5 Potenti alternative al task Task Manager di Windows Killer sarebbe un nome migliore per il Task Manager di Windows nativo dal momento che l'abbiamo richiamato solo per eliminare i processi che non rispondono. I Task Manager alternativi ti consentono di gestire effettivamente i tuoi processi. Leggi di più . Tuttavia, esiste un modo più rapido per visualizzare i processi attualmente in esecuzione da Powershell, Get-Process . Se vuoi sapere che cosa significano tutte le voci di questa tabella, invia il comando a Get-Member . Inserisci il cmdlet:

 Get-Process | Get-Member 

Get-member produce un elenco di metodi e proprietà associati a Get-Process. Le informazioni in alto sono ciò che ti interessa. Vedi i vari tipi di memoria hanno alias.

powershell get-process

Possiamo anche vedere da questo output che possiamo ottenere la proprietà Product per ottenere un nome più amichevole per i processi. Cambiamo l'output, quindi abbiamo informazioni migliori per noi con cui lavorare:

 Get-Process | Select-Object Product, NPM, CPU, Name, ID | Sort-Object CPU -Descending 

(Ci sono più informazioni su Select-Object e Sort-Object nella prossima sezione.)

Ora che si dispone dell'ID del comando Get-Process, è possibile arrestarlo utilizzando il cmdlet Stop-Process. Quindi, se scopri che un processo di Chrome sta masticando tutte le tue risorse, trova l'ID nel comando precedente. Quindi, esegui:

 Stop-Process -ID 45960 

Sostituisci 49560 con l'ID della tua risorsa hog.

Utilizzando il percorso del file, è possibile avviare un processo utilizzando Powershell. Per avviare Chrome, esegui il seguente comando:

 Start-Process -Filepath "C:\Program Files (x86) GoogleChromeApplicationchrome.exe" 

(È necessario avere le virgolette attorno al percorso del file a causa degli spazi.) Il parametro -ArgumentList consente di passare le opzioni della riga di comando all'applicazione. Nel caso di Chrome, puoi forzarlo ad avviarsi in modalità di navigazione in incognito usando il flag -incognito . L'intero cmdlet è:

 Start-Process -Filepath "C:\Program Files (x86) GoogleChromeApplicationchrome.exe" -ArgumentList "--incognito" 

powershell get-service

Puoi fare la maggior parte di queste stesse cose con i servizi Come controllare i servizi in esecuzione con il comando SC [Windows] Come controllare i servizi in esecuzione con il comando SC [Windows] Una delle cose che mi ritrovo a fare molto più spesso da quando mi immergo nell'IT sta monitorando e controllando lo stato dei servizi in esecuzione su computer che sono in esecuzione in tutta la società. C'è ... Leggi altro. Get-Service ti mostra un elenco di tutti i servizi in esecuzione sul tuo computer. Lo stesso vale per i servizi di avvio e arresto, è possibile utilizzare Start-Service e Stop-Service .

Lavorare con i dati: Sort-Object, Select-Object, Where-Object

Quando si lavora con i dati da un cmdlet, potrebbe non essere sempre l'ordine desiderato. In questi casi, si desidera utilizzare l' oggetto Sort . È possibile chiamare Sort-Object su una variabile creata dall'utente, ma principalmente viene utilizzata eseguendo il piping di un altro cmdlet. Come nell'esempio di cui sopra, canalizziamo l'output di un oggetto su un altro e lo ordiniamo. Creiamo un array di tre numeri casuali e lo colleghiamo a Sort-Object.

Tutto ciò che è in parentesi viene eseguito per primo. Crea un array semplice con:

 $(Get-Random), $(Get-Random), $(Get-Random) 

Assicurati di notare le virgole che separano i valori. Quindi per vedere i numeri casuali ordinati esegui:

 $(Get-Random), $(Get-Random), $(Get-Random) | Sort-Object 

Il cmdlet restituisce i numeri dal più piccolo al più grande, se si desidera invertire aggiungere -Descending .

Oggetto di ordinamento di PowerShell

Quando si collegano i cmdlet a Get-Member, esistono più proprietà rispetto all'output predefinito. Si selezionano proprietà specifiche usando Select-Object .

Proprio come Sort-Object, si usa Select-Object tramite un cmdlet con piping. Ad esempio, per generare una tabella di servizi e il loro stato utilizzare:

 Get-Service | Select-Object DisplayName, Status 

L'output di tutti questi dati è piacevole, cosa succede se si desidera visualizzare solo dati specifici? Get-ChildItem ha alcuni filtri incorporati, ma la maggior parte dei comandi no. In quei casi, usi Where-Object .

PowerShell dove-oggetto

Ritornando ai servizi, questa volta si otterranno solo i servizi in esecuzione. Inserisci il cmdlet:

 Get-Service | Where-Object Status -eq "Running" 

Quel -eq nel confronto è Powershell per = . In PowerShell, esegui confronti con combinazioni di lettere:

  • eq: uguale a
  • ne: non uguale
  • lt: meno di
  • gt: maggiore di
  • ge: maggiore o uguale a
  • le: minore o uguale a
  • come: usare come nei confronti con caratteri jolly

Aiuto per la formattazione: Format-Table e Format-List.

Per questi vari cmdlet, la maggior parte dell'output era in formati tabella. Questo visualizza i dati in righe e colonne con intestazioni. Per visualizzare le voci elencate singolarmente con le loro proprietà, reindirizzare il cmdlet a Format-List .

lista di formati di powershell

A volte hai un output che diventa troppo largo per la finestra di PowerShell. Quando ciò accade, Powershell lo impone in un output di lista. Per assicurarti di mantenerlo nel formato tabella, invia il tuo output a Format-Table .

Dalla riga di comando allo scripting: passi successivi

Una volta che sei a tuo agio, lo scripting consiste nell'inserire i cmdlet. Aumentare la produttività con Windows Gli script di PowerShell aumentano la produttività con gli script di Windows PowerShell E se potessi portare la produttività di Linux a Windows? La maggior parte delle distribuzioni Linux viene fornita con la potente shell di Bash. PowerShell è un terminale altrettanto potente per Windows. Leggi di più in un file di testo e salvalo. Se sei preoccupato di provare lo scripting, non farlo. Microsoft ha un'enorme quantità di documentazione su ogni cmdlet. Questo è al di sopra di questa già lunga documentazione di aiuto, quindi assicurati di controllare Technet.

Se stai imparando Powershell, facci sapere nei commenti cosa sei più eccitato di fare. Se hai ancora un po 'di esperienza, ci piacerebbe conoscere argomenti più avanzati che vorresti vedere trattati.

In this article