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

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

Powershell è un modo perfetto per iniziare un nuovo programmatore su Windows. PowerShell è uno strumento da riga di comando in parti uguali e un linguaggio di scripting. Ti dà la possibilità di automatizzare il tuo computer tramite gli stessi comandi che usi per amministrarlo . Se hai un moderno sistema Windows, hai già Powershell. La maggior parte dei suoi usi sono incentrati su Windows, ma puoi installare Powershell anche su un computer Mac o Linux.





Lavorare con Powershell

Esistono due modi per utilizzare Powershell. C'è la finestra della riga di comando di base, che viene utilizzata 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 ed è possibile utilizzare la sua finestra Terminale senza aprire un file. L'elenco dei comandi ti consente di costruire il tuo comando e inserirlo. Se stai eseguendo uno sviluppo più avanzato, installa Visual Studio Code di Microsoft. Il codice include il supporto per il controllo della versione di Git e altre lingue.





Powershell è unico in quanto è costruito interamente con comandi, Microsoft li chiama cmdlet. Questi comandi sono gli stessi se lavori tramite riga di comando o scrivi script complessi. Quindi, mentre usi questi comandi, puoi pensare a come metterli insieme per creare i tuoi primi script.

Le basi: Get-Command, Get-Help, Get-Member

Tutti i comandi di Powershell assumono la forma di Verb-Noun. I verbi sono solitamente: Ottieni, imposta e nuovo .



Get-Comando ti permette di vedere ogni comando disponibile. Quando esegui Get-Command, vedi che ci sono tonnellate di comandi che iniziano con questi.

Scavando ulteriormente dai soli nomi dei cmdlet, inizi a vedere che hanno tutti 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 utilizzato il comando con le opzioni predefinite, come fai a sapere come utilizzare i parametri avanzati?





Usando il Ottenere aiuto Il cmdlet con Get-Command mostra ulteriori informazioni sul cmdlet. Usiamo il cmdlet con la seguente sintassi:

Get-Help Get-Command

Vengono quindi visualizzate le informazioni di base sui parametri. Se vuoi vedere i dettagli del parametro e alcuni esempi di utilizzo, aggiungi il parametro -Full.





Se vuoi vedere solo 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 della guida spiega cosa fanno il cmdlet e i parametri durante l'esecuzione.

Se vuoi far apparire il file della guida in una finestra separata, puoi usare -MostraFinestra . Quindi se corri:

Get-Help Get-Command -ShowWindow

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

Man mano che diventi più avanzato con Powershell, scoprirai che usi Get-Member più spesso. È un modo semplice per vedere quali campi sono disponibili dai dati restituiti, così come altri metodi che puoi eseguire. Spesso, i cmdlet avranno a -Proprietà parametro per consentirti 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 di come ottenere assistenza, apportiamo le modifiche. Puoi ottenere il contenuto di qualsiasi cartella usando il Get-ChildItem comando. Ad esempio, è possibile ottenere i file di un'intera unità utilizzando la lettera dell'unità. Accedere:

Get-ChildItem E:

Che è l'abbreviazione di:

Get-ChildItem -Path E:

Quando esegui questo comando, ottieni un elenco di file con l'ora dell'ultima scrittura, la dimensione sotto la proprietà Lunghezza, Nome e Modalità. La modalità è gli attributi di un file o di una cartella. Le voci possibili sono:

  • Sola lettura
  • Nascosto
  • Sistema
  • Directory
  • Archivio
  • Dispositivo
  • Normale
  • Temporaneo
  • SparseFile
  • ReparsePoint
  • compresso
  • disconnesso
  • Contenuti non indicizzati
  • Criptato

Se vuoi ottenere il contenuto di tutte le sottodirectory in un percorso, vuoi usare il -Ricorso parametro. Quindi esegui:

Get-ChildItem -Path E: -Recurse

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

Per limitare i dati restituiti puoi utilizzare alcuni parametri diversi: -File , -Nascosto , e -Sola lettura . Se stai cercando di filtrare i nomi del file, puoi usare i caratteri jolly nel parametro Path. Per restituire tutti i file .doc in una directory, inserisci:

Get-ChildItem -Path E:*.doc

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

Se vuoi eliminare un file usa:

Remove-Item -Path E:OldFile.txt

Per saltare la conferma di ogni file, aggiungi il parametro -Conferma $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 pulsante -Forza parametro.

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

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

Puoi anche nominare un singolo file in -Path per spostare solo quel file. Per copiare il file invece di spostarlo, usi la stessa sintassi con il Copia-Oggetto cmdlet.

Monitoraggio e utilizzo di processi e servizi

Ogni L'utente Windows conosce Task Manager . Tuttavia, esiste un modo più rapido per vedere i processi attualmente in esecuzione da Powershell, Get-Processo . Se vuoi sapere cosa significano tutte le voci in questa tabella, reindirizza il comando a Ottieni-membro . Inserisci il cmdlet:

Get-Process | Get-Member

Get-member restituisce un elenco di metodi e proprietà associati a Get-Process. Le informazioni in alto sono quelle che ti interessano. Vedi che i vari tipi di memoria hanno degli alias.

Possiamo anche vedere da questo output che possiamo ottenere il Prodotto proprietà per ottenere un nome più amichevole per i processi. Modifichiamo l'output, in modo che abbia informazioni migliori con cui lavorare:

guarda film gratis online senza registrazione
Get-Process | Select-Object Product, NPM, CPU, Name, ID | Sort-Object CPU -Descending

(Ci sono maggiori informazioni su Seleziona-Oggetto e Ordina-Oggetto nella prossima sezione.)

Ora che hai l'ID dal comando Get-Process, puoi interromperlo 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, eseguire:

Stop-Process -ID 45960

Sostituire 49560 con l'ID della tua risorsa.

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

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

(È necessario inserire le virgolette attorno al percorso del file a causa degli spazi.) -Elenco argomenti Il parametro consente di passare le opzioni della riga di comando all'applicazione. Nel caso di Chrome, puoi forzarne l'avvio in modalità di navigazione in incognito utilizzando il --incognito bandiera. L'intero cmdlet è:

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

Puoi fare la maggior parte di queste stesse cose con i servizi. Get-Service ti mostra un elenco di tutti i servizi in esecuzione sul tuo computer. Lo stesso con l'avvio e l'arresto dei servizi, è possibile utilizzare Start-Service e Stop-Service .

Lavorare con i dati: Ordina-Oggetto, Seleziona-Oggetto, Dove-Oggetto

Quando si utilizzano i dati di un cmdlet, potrebbe non essere sempre l'ordine desiderato. In questi casi, si desidera utilizzare il Ordina-Oggetto . È possibile chiamare Sort-Object su una variabile creata, ma principalmente viene utilizzata tramite pipe di un altro cmdlet. Come nell'esempio sopra, convogliamo l'output di un oggetto a un altro e lo ordiniamo. Creiamo un array di tre numeri casuali e reindirizzalo a Sort-Object.

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

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

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

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

Il cmdlet emette i numeri dal più piccolo al più grande, se vuoi invertirlo aggiungi -Discendente .

Quando si reindirizzano i cmdlet a Get-Member, sono presenti più proprietà rispetto all'output predefinito. Si selezionano proprietà specifiche utilizzando Seleziona-Oggetto .

Proprio come Sort-Object, usi Select-Object tramite un cmdlet con pipe. Ad esempio, per generare una tabella dei servizi e il loro stato utilizzare:

Get-Service | Select-Object DisplayName, Status

Sebbene l'output di tutti questi dati sia piacevole, cosa succede se si desidera visualizzare solo dati specifici? Get-ChildItem dispone di alcuni filtri incorporati, ma la maggior parte dei comandi no. In questi casi, usi Dove-Oggetto .

Tornando di nuovo ai servizi, questa volta otterrai solo servizi in esecuzione. Inserisci il cmdlet:

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

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

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

Guida alla formattazione: Format-Table e Format-List.

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

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

Dalla riga di comando allo scripting: passaggi successivi

Una volta che ti senti a tuo agio, lo scripting consiste nell'inserire i cmdlet in un file di testo e salvarlo. Se sei nervoso all'idea di provare lo scripting, non esserlo. Microsoft ha un'enorme quantità di documentazione su ogni cmdlet. Questo è al di là della già lunga documentazione di aiuto, quindi assicurati di controllare Technet [Non più disponibile].

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

Condividere Condividere Tweet E-mail Elimina questi file e cartelle di Windows per liberare spazio su disco

Hai bisogno di liberare spazio su disco sul tuo computer Windows? Ecco i file e le cartelle di Windows che possono essere eliminati in sicurezza per liberare spazio su disco.

Leggi Avanti
Argomenti correlati
  • finestre
  • Programmazione
  • PowerShell
  • Scripting
Circa l'autore Michael McConnell(44 articoli pubblicati)

Michael non ha usato un Mac quando erano condannati, ma può programmare in Applescript. È laureato in Informatica e Inglese; scrive da un po' di Mac, iOS e videogiochi; ed è stato una scimmia IT diurna per oltre un decennio, specializzato in scripting e virtualizzazione.

Altro da Michael McConnell

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti