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

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

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 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 Codice 10 Suggerimenti per la produttività essenziali per il codice di Visual Studio Il codice di Visual Studio fa saltare fuori dall'acqua altri editor di testo di programmazione. È gratuito, open source, fulmineo e ricco di funzioni di produttività. Leggi di più e altre lingue.

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 di solito: Get, Set e New.

Get-Command ti permette di vedere ogni comando disponibile. 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?

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

Get-Help Ottieni-Comando

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.

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 a -Proprietà parametro per permetterti 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 Get-ChildItem comando. 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 -Ricorso parametro. Quindi, esegui:

Get-ChildItem -Path E: \ -Recurse

I 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 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 -ricorso se volevi 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 -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 comando -Vigore parametro.

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 Copy-Item cmdlet.

Monitoraggio e utilizzo di processi e servizi

Ogni utente Windows conosce Task Manager 5 Potenti alternative al Task Manager di Windows 5 Potenti alternative all'attività Task Manager di Windows Killer sarebbe un nome migliore per il Task Manager di Windows nativo, in quanto 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, c'è un modo più rapido per vedere 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.

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

Get-Process | Prodotto Select-Object, NPM, CPU, Nome, ID | CPU oggetto-ordinamento -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

Sostituire 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: \ Programmi (x86) GoogleChromeApplicationchrome.exe"

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

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

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 mostra un elenco di tutti i servizi in esecuzione sul tuo computer. Lo stesso vale per i servizi di avvio e arresto, che è possibile utilizzare Start-Service e Stop-Servizio.

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 quei casi, vuoi usare il Sort-Object. È 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 -Discendente.

Quando si collegano i cmdlet a Get-Member, esistono più proprietà rispetto all'output predefinito. Si seleziona proprietà specifiche utilizzando 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.

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

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

Quello -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à, eseguire il piping del cmdlet su Format-List.

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 di 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.

Scopri di più su: PowerShell, Scripting.