Casa / Skype / Esegui il file PowerShell su Windows 7. Che cos'è Windows PowerShell ea cosa serve. Controllo remoto con PowerShell

Esegui il file PowerShell su Windows 7. Che cos'è Windows PowerShell ea cosa serve. Controllo remoto con PowerShell

In questo articolo, considereremo una tale tecnologia di Microsoft come Windows PowerShell , parleremo di cos'è PowerShell, cosa sono i cmdlet e la pipeline, come scrivere script e moduli e toccheremo anche altri ugualmente importanti e funzioni utili Windows PowerShell.

Prima dell'avvento di PowerShell, c'erano ( ed esiste) i seguenti strumenti per l'automazione e l'amministrazione dei servizi: riga di comando di Windows e Windows Script Host. Ma queste tecnologie hanno degli svantaggi.

In riga di comando Windows ha la capacità di eseguire alcune attività amministrative e la possibilità di scrivere un algoritmo di azione, salvandolo come script (file bat), mentre puoi utilizzare alcuni elementi di programmazione, ad esempio, utilizzare variabili, strutture condizionali e persino qualcosa come i loop .

Maggioranza prodotti software ha un'interfaccia console, ad es. possiamo controllare il programma utilizzando la riga di comando, risparmiando risorse per la mancanza di costi per l'interfaccia grafica. Microsoft per il sistema operativo server Windows Server rilascia anche edizioni senza interfaccia grafica ( Server Core, Windows Server 2016 ha anche Nano Server), ma tutto questo non basta, poiché le possibilità della riga di comando sono limitate, ovvero non saremo in grado di scrivere una logica complessa per automatizzare qualcosa e, se possiamo, avremo bisogno di tempo e conoscenze per questo.

Inoltre, lo svantaggio della riga di comando è che utilizziamo varie utilità di console di prodotti software per gestire completamente il server, e quindi è davvero difficile utilizzare la riga di comando per l'amministrazione, in quanto tutte queste utilità hanno una sintassi diversa , parametri, modalità di utilizzo e per svolgere compiti tipici, ad es. ogni giorno, devi tenere tutto a mente e, per eseguire attività non standard, devi prima leggere la guida o la documentazione.

La tecnologia Windows Script Host ti consente di eseguire tutte le attività amministrative svolte dalla riga di comando, inclusa la loro automazione scrivendo script WSH, ma qui possiamo già utilizzare linguaggi di programmazione a tutti gli effetti ( VBScript e JScript), cioè. puoi implementare logiche e algoritmi complessi. Inoltre, con l'aiuto di WSH, gestiamo i prodotti software attraverso un'interfaccia a oggetti, in altre parole, Windows Script Host è molto " più fresco' rispetto alla riga di comando. Ma questa tecnologia inoltre, non è diventato lo strumento di amministrazione e automazione ideale di questa amministrazione per gli amministratori di sistema, poiché Windows Script Host richiedeva la conoscenza dei linguaggi di programmazione di cui sopra, il che è in realtà superfluo per gli amministratori di sistema. Gli amministratori necessitano solo di un semplice strumento di amministrazione con la possibilità di programmare alcune azioni e non vogliono approfondire i modelli a oggetti dei prodotti software nei linguaggi di programmazione VBScript e JScript.

Di conseguenza, Microsoft aveva bisogno di sviluppare uno strumento di amministrazione per gli amministratori di sistema in grado di soddisfare al 100% tutte le esigenze degli amministratori di sistema, sia in termini di funzionalità di amministrazione e automazione, sia in termini di praticità e facilità d'uso, così è nato Windows PowerShell .

Che cos'è Windows PowerShell?

Windows PowerShellè un linguaggio di scripting e una shell dei comandi di Windows progettati per amministrare e configurare i sistemi operativi Windows. PowerShell si basa su CRL e .NET Framework e, a differenza della riga di comando che accetta e restituisce testo, Windows PowerShell funziona con gli oggetti. Ogni oggetto in PowerShell dispone di proprietà e metodi che puoi usare per manipolare tali oggetti.

In Windows PowerShell, Microsoft ha sviluppato il concetto di cmdlet ( cmdlet), che è un sistema di denominazione dei comandi " Verbo sostantivo». Questo sistema consente agli amministratori di sistema di apprendere rapidamente e semplificare il lavoro con PowerShell.

DA finestre PowerShell può:

  • Ottieni l'accesso al file system;
  • gestire il registro;
  • gestire i servizi;
  • gestire i processi;
  • Configurare il sistema operativo;
  • Installa il software;
  • Installare ruoli e componenti del server;
  • Amministrare e configurare ruoli e componenti del server;
  • Scrivere e utilizzare script per automatizzare la gestione e l'amministrazione;
  • Eseguire altre attività dell'amministratore di sistema.

Windows PowerShell contiene molte utilità e comandi di uso comune che possono essere eseguiti dalla riga di comando, ad esempio ipconfig, ping e altri. Questo viene fatto per facilitare la transizione degli amministratori di sistema dalla riga di comando a PowerShell.

Inoltre, per comodità, molti comandi e utilità utilizzati di frequente in PowerShell hanno sinonimi ( Alias), ad esempio, cls è sinonimo del cmdlet Clear-Host, dir è sinonimo di Get-ChildItem ( lista completa i sinonimi possono essere visualizzati eseguendo il cmdlet Get-Alias).

Per semplificare la ricerca del comando desiderato in PowerShell, è disponibile un apposito cmdlet Get-Command, con il quale è possibile cercare sia per verbo che per sostantivo. Tutti i comandi in Windows PowerShell sono raggruppati in moduli ( ad esempio Hyper-V, NetTCPIP), che rende anche più facile trovare il comando giusto.

Dopo aver trovato il comando desiderato, puoi vedere le istruzioni per lavorare con questo comando, ad es. help, esiste un cmdlet Get-Help speciale per questo scopo, ad esempio, il comando seguente visualizzerà la guida sul cmdlet Get-Command:

Ottieni-Aiuto Ottieni-Comando

La guida in Windows PowerShell può essere breve e dettagliata ( parametro -Dettaglio), completare ( -Piena opzione), e puoi anche visualizzare solo esempi ( parametro - Esempi). Il comando seguente mostrerà solo esempi di utilizzo del cmdlet Get-Command:

Get-Help Get-Command -Esempi

La Guida di PowerShell è aggiornabile, ad es. può essere aggiornato con il comando Update-Help.

Versioni di Windows PowerShell

La prima versione di PowerShell 1.0 è apparsa il 14 novembre 2006 ed è stata rilasciata come distribuzione separata che poteva essere installata nelle seguenti versioni dei sistemi operativi Windows: Windows XP Service Pack 2, Windows Server 2003 Service Pack 1 e Windows Vista.

In Windows Server 2008, PowerShell 1.0 è stato fornito come componente che doveva essere installato.

A partire da Windows 7 e Windows Server 2008 R2, PowerShell viene fornito come parte integrante del sistema ( quelli. preinstallato, non è necessario installarlo). Di seguito una tabella di corrispondenza tra la versione di PowerShell e la versione del sistema operativo Windows ( quelli. quale versione di PowerShell è installata per impostazione predefinita in quale Versioni di Windows ):

Versione PowerShell Versioni di Windows
PowerShell 2.0 Windows 7, Windows Server 2008 R2
PowerShell 3.0 Windows 8, Windows Server 2012
PowerShell 4.0 Windows 8.1, Windows Server 2012 R2
PowerShell 5.0 Windows 10, Windows Server 2016

Con ogni nuova versione PowerShell sta diventando uno strumento di amministrazione sempre più potente, rispetto all'originale PowerShell aveva circa 130 cmdlet e in PowerShell 5.0 ce ne sono già oltre 600!

Sapere Versione attuale PowerShell può usare la proprietà PSVersion della variabile incorporata $PSVersionTable, ad esempio, eseguire il comando seguente:

$PSVersionTable.PSVersion

Oppure esegui il cmdlet

Get-Variable -Name PSVersionTable –ValueOnly

dove, il valore PSVersion sarà la versione di PowerShell.

Linguaggio PowerShell

PowerShellè un linguaggio di programmazione di scripting orientato agli oggetti. Viene utilizzato per scrivere comandi per controllare tutti i componenti del sistema operativo Windows in Windows PowerShell e per scrivere script per automatizzare le attività amministrative in Windows PowerShell Integrated Scripting Environment (ISE). Sebbene il linguaggio PowerShell sia stato creato per attività di amministrazione, è un vero e proprio linguaggio di programmazione di scripting, poiché ha costrutti di programmazione presenti in ogni linguaggio di programmazione, come: condizioni, cicli, gestione degli errori, lavoro con variabili, oggetti, array .

Il linguaggio di PowerShell ha una sintassi unificata per la scrittura dei comandi e una struttura di denominazione per questi comandi secondo il principio " Verbo sostantivo”, che rende questo linguaggio intuitivo sia per i programmatori che per gli amministratori di sistema.

Shell di Windows PowerShell

Shell di Windows PowerShellè un ambiente di esecuzione per comandi e script scritti nel linguaggio PowerShell. Questa shell ha le stesse caratteristiche della riga di comando, come ad esempio: memorizzazione della cronologia dell'esecuzione dei comandi, impostazione aspetto esteriore shell, terminando i comandi con Ctrl+C, così come molte altre funzionalità che non sono nella shell della riga di comando, ad esempio una funzionalità meravigliosa come " evidenziazione della sintassi» ( apparso in PowerShell 5.0).

Puoi avviare una shell di PowerShell in diversi modi, ad esempio:

  • Dalla riga di comando digitando PowerShell;
  • Attraverso la finestra di dialogo Correre» ( scorciatoia da tastiera Win+R), anche digitando PowerShell;
  • In Windows 7 - Start->Tutti i programmi ->Accessori ->Windows PowerShell ->Windows PowerShell;
  • In Windows 8.1 o Windows Server 2012 R2 - Start->Tutti i programmi->Strumenti di sistema->Windows PowerShell;
  • Su Windows 10 o Windows Server 2016 - Start->Tutti i programmi -> Directory di Windows PowerShell ( nel girone W) -> Windows PowerShell.

Esempio di esecuzione di PowerShell in Windows Server 2016

Screenshot di PowerShell in Windows Server 2016

Cmdlet in PowerShell

cmdlet (cmdlet) - questo è squadra di Windows PowerShell, con cui puoi interagire con gli oggetti del sistema operativo per gestirli. Questi comandi fanno parte del linguaggio PowerShell. I cmdlet sono basati sul principio di " Verbo sostantivo”, separati da un trattino (-); in altre parole, indichiamo prima cosa fare, e attraverso un trattino - su cosa. Ad esempio, il cmdlet Get-Help, dove Get è un verbo che significa " Ottenere", e Aiuto è un sostantivo " Aiuto"nel contesto di PowerShell" Mostra aiuto". I cmdlet di PowerShell restituiscono risultati come oggetti, che è una delle principali differenze rispetto alla riga di comando di Windows, in cui i comandi restituiscono solo il testo sullo schermo.

Oltre ai cmdlet per ottenere dati (Get), esistono anche tipi di cmdlet come:

  • Aggiungi - aggiunta di dati;
  • Chiaro - chiaro;
  • Abilita - abilita;
  • Disabilita - disattiva;
  • Nuovo - crea;
  • Rimuovi - rimuovi;
  • Impostare - impostare;
  • Inizio - inizio;
  • Basta basta;
  • Esporta - esportazione;
  • Importazione - importazione;
  • E tanti altri.

È possibile visualizzare un elenco completo dei cmdlet in Windows PowerShell utilizzando il cmdlet Get-Command speciale. Ad esempio, eseguilo con il parametro del cmdlet -CommandType, di conseguenza vedrai un elenco di cmdlet sullo schermo.

Get-Command -CommandType cmdlet

Come hai già capito, i cmdlet hanno parametri con cui possiamo specificare le azioni del cmdlet. Sono disponibili parametri obbligatori e facoltativi, ad esempio il cmdlet Get-Command non ha parametri obbligatori.

L'immagine seguente mostra un modo per cercare un cmdlet per verbo ( Parametro del verbo). In questo caso, abbiamo visualizzato un elenco di cmdlet che possono riavviare qualcosa.

Squadra

Get-Command -Verb Restart

Per cercare un cmdlet in base al nome, è necessario utilizzare il parametro Noun. Ad esempio, di seguito è riportato un elenco di cmdlet che funzionano con i servizi.

Squadra

Get-Command -Noun Service

Se non hai trovato il cmdlet desiderato da nome e cognome puoi usare la maschera in formato *Testo*.

Pipeline in PowerShell

Uno dei principali Funzionalità di Windows PowerShell è la possibilità di usare una pipeline durante l'esecuzione di comandi.

Trasportatore- questo è il trasferimento del risultato del lavoro del cmdlet attraverso la barra verticale (|) a un altro cmdlet. Allo stesso tempo, come ricorderete, i cmdlet in PowerShell funzionano rispettivamente con oggetti e restituiscono oggetti, gli oggetti vengono trasferiti anche lungo la pipeline.

Con l'aiuto della pipeline, puoi eseguire compiti complessi in modo semplice e strada conveniente senza la necessità di scrivere algoritmi e script complessi.

Ad esempio, scopriamo il nome del file più grande nella directory C:\Windows\System32 ( semplice esempio di pipeline).

Squadra

Get-ChildItem -Percorso "C:\Windows\System32" -File | Ordina-Lunghezza dell'oggetto -Decrescente | Seleziona-Oggetto-Primo 1

  • Get-ChildItem - cmdlet per ottenere oggetti nella directory specificata;
  • Sort-Object è un cmdlet per l'ordinamento degli oggetti, nel nostro caso ordiniamo per dimensione del file ( lunghezza -Discendente);
  • Select-Object è un cmdlet per selezionare le proprietà desiderate di un oggetto, nel nostro caso visualizziamo i campi standard e solo il primo oggetto, ad es. file grande ( parametro -Primo 1).

Tutti i cmdlet sono separati l'uno dall'altro da una barra verticale. Il risultato di ogni cmdlet viene passato come input a un altro cmdlet, ad es. prima otteniamo tutti gli oggetti nella directory specificata, quindi ordiniamo il risultato e infine selezioniamo il primo oggetto.

Esecuzione in background di lavori

Windows PowerShell ha la capacità di eseguire processi in background, è un meccanismo mediante il quale è possibile eseguire un comando ( ad esempio, il cui completamento richiede molto tempo) in sfondo, cioè. dopo l'avvio, si torna alla sessione corrente e si può continuare a lavorare senza attendere il termine del comando. Questa opportunità Ne avrai bisogno quando devi eseguire un comando che richiede molto tempo per l'esecuzione e, come sai, durante questo periodo la sessione della shell di PowerShell viene bloccata fino al completamento del comando e devi continuare a lavorare.

È possibile gestire tutte le attività in esecuzione in background, ad esempio visualizzare l'elenco delle attività, interrompere l'attività, eliminare l'attività e, naturalmente, visualizzare il risultato dell'attività.

Windows PowerShell fornisce i seguenti cmdlet per l'utilizzo dei processi in background:

  • Start-Job: avvia un'attività in background;
  • Stop-Job: interrompe un'attività in background
  • Get-Job: visualizza un elenco di attività in background;
  • Receive-Job: visualizza il risultato dell'attività in background;
  • Remove-Job: rimuove un'attività in background;
  • Wait-Job: porta un'attività in background in primo piano per attendere che finisca.

Per eseguire in background, è necessario scrivere il comando Start-Job e tra parentesi graffe () il comando o l'insieme di comandi che si desidera eseguire in background.

Ad esempio, eseguiamo alcune attività ( mostra l'elenco dei servizi) sullo sfondo, quindi guarda l'elenco lavori in background e visualizzare il risultato del nostro compito sullo schermo ( quelli. elenco dei servizi).

Esecuzione di un'attività in background

Start-Job (Get-Service)

Esaminiamo l'elenco delle attività in esecuzione in background

Visualizzazione del risultato del lavoro Job1

Ricevi lavoro Lavoro1

Come puoi vedere, abbiamo un compito con lo stato " Completato", cioè. è già stato completato solo Get-Service funziona velocemente).

Per visualizzare il risultato dell'attività in background, ad es. Get-Service, abbiamo eseguito il comando Receive-Job e gli abbiamo passato il nome del lavoro ( lattina e valore id). Di conseguenza, abbiamo visualizzato un elenco di servizi.

Controllo remoto con PowerShell

Windows PowerShell è progettato non solo per l'uso locale, ma anche per l'esecuzione di comandi in remoto. Questa funzione è necessaria per poter gestire i computer remoti dal tuo posto di lavoro, ad es. eseguire i comandi di PowerShell.

Esistono diversi modi per controllare a distanza:

  • Usando il parametro -Nome del computer (molte squadre hanno). In altre parole, si passa il nome del computer su cui si desidera eseguire il comando come parametro. Il metodo ha lo svantaggio di essere limitato all'esecuzione di un singolo comando;
  • Attraverso sessioni. cmdlet Entra-PSSession (sessione interattiva). In questo modo ti connetti a computer remoto e tutti i comandi digitati in PowerShell verranno eseguiti sul computer remoto proprio come se si digitassero i comandi direttamente sul computer remoto. Il metodo ha anche lo svantaggio che la sessione è limitata a un computer;
  • Utilizzo del cmdlet Invoca-comando. Usando questo metodo puoi eseguire comandi o script su un computer o su più computer.

Ad esempio, per connettersi a un computer remoto ( nell'esempio sotto NomeServer) sessione interattiva, eseguire il comando seguente:

Immettere il nome del server della sessione PS

Script, funzioni e moduli in Windows PowerShell

Se hai scritto qualche algoritmo, molto probabilmente vorrai salvarlo per usarlo in futuro. Windows PowerShell dispone di un meccanismo di scripting per questo scopo.

L'essenza di questo meccanismo è la seguente: scrivi il set di comandi di cui hai bisogno e lo salvi come script: questo è un semplice file di testo con estensione .PS1.

Quindi, per eseguire questo script, eseguilo semplicemente in PowerShell. In questo caso, è necessario specificare il percorso completo del file di script oppure accedere alla directory con lo script e chiamarlo per nome.

Importante!

Per impostazione predefinita, lo scripting è disabilitato su Windows! Per visualizzare i criteri di esecuzione degli script, eseguire il cmdlet Get-ExecutionPolicy. Di conseguenza, restituirà la polizza corrente, ad esempio:

  • Con restrizioni - blocco dell'esecuzione di qualsiasi script ( valore di default);
  • AllSigned - permesso di eseguire script che hanno firma digitale;
  • RemoteSigned - è consentita l'esecuzione di script locali, tutti gli script scaricati devono essere firmati digitalmente;
  • Illimitato: è consentita l'esecuzione di qualsiasi script ( non consigliato in quanto pericoloso!).

È necessario utilizzare il cmdlet per consentire l'esecuzione degli script. Set-ExecutionPolicy con una delle opzioni di cui sopra.

Ad esempio, per consentire l'esecuzione di script locali, eseguire il comando seguente e accettare le modifiche premendo Y.

Set-ExecutionPolicy RemoteSigned

In uno script è possibile passare parametri, renderli obbligatori o impostare un valore predefinito.

Windows PowerShell fornisce un meccanismo per creare le proprie funzioni che, come i cmdlet incorporati, possono essere usate nella shell di PowerShell.

Per fare ciò, è necessario specificare parola chiave Function e quindi tra parentesi graffe () scrivi l'algoritmo per questa funzione, ad es. set di istruzioni ( ad esempio, alcune procedure comunemente utilizzate: creare un utente con determinati diritti, ripulire determinate directory e così via). Quindi devi salvare tutto questo in uno script, ma solo con estensione .psm1, poiché questo file sarà già un modulo.

Non è tutto, questo file deve essere posizionato nella directory in cui PowerShell cerca i moduli. Ci sono diverse directory una directory speciale nel profilo utente, la directory in cui è installato PowerShell), possono essere visualizzati nelle variabili di ambiente di PowerShell. Per fare ciò, eseguire il comando seguente

Get-ChildItem Env:\PSModulePath | Formato tabella - Dimensione automatica

Dopo aver posizionato il modulo che hai scritto in una directory speciale, puoi accedere alle tue funzioni come i normali comandi di PowerShell.

Ambiente di scripting integrato (ISE) di Windows PowerShell

Per rendere conveniente la scrittura di script, funzioni e, di conseguenza, moduli, Microsoft ha sviluppato un programma grafico speciale Ambiente di scripting integrato(ISE) - Ambiente di scripting integrato. È molto comodo lavorare in questo programma, inoltre ha potenti funzionalità ( creazione di molte schede con script, area di output, debugger integrato e altro).

Puoi eseguirlo in questo modo:

  • In Windows 7 - Start->Tutti i programmi ->Accessori ->Windows PowerShell ->Windows PowerShell ISE;
  • Su Windows 10 o Windows Server 2016 - Start->Tutti i programmi -> Directory di Windows PowerShell ( nel girone W) -> Windows PowerShell ISE.

Nota! ISE non funzionerà Sistema Windows Server installato nella variante Server Core.

Screenshot dell'ambiente di scripting integrato (ISE) di PowerShell in Windows Server 2016

Questo è tutto ciò che ho, spero che il materiale ti sia stato utile! Buona fortuna!

È trascorso più di un anno dal rilascio di Windows 7 e Server 2008.

Programmatori, amministratori di sistema e utenti avanzati hanno trovato molti usi per la finestra blu simile alla riga di comando.

Gli utenti principianti, per la maggior parte, non sanno nemmeno cosa sia PowerShell (PS).

Ma gli script per PowerShell consentono di automatizzare quasi il 100% delle azioni e degli script eseguiti nel sistema operativo tramite la riga di comando e l'interfaccia grafica.

Conosciamo le caratteristiche principali di questo programma, prestando maggiore attenzione alle funzioni di creazione ed esecuzione di script (microprogrammi).

Ci sono una miriade di manuali e documentazione sul programma, anche in russo. Obiettivo dell'articolo– fornire all'utente una conoscenza concettuale, Mettere in azione e se vale la pena conoscere più da vicino l'interprete e l'esecuzione degli script in esso, ognuno deciderà da solo.

Che cos'è Windows PowerShell?

PowerShell- Un interprete basato su .NET Framework, dotato di un proprio linguaggio di scripting.

Il primo significa che funziona in modalità testo: entri, esegui un comando e sullo schermo vedi il risultato della sua esecuzione.

Come in MS-DOS e nelle versioni precedenti di UNIX.

La seconda semplifica notevolmente, velocizza e automatizza l'amministrazione, la manutenzione di sistemi, applicazioni, processi e servizi correlati da parte di amministratori e utenti ordinari.

Rispetto ad altri interpreti, PS è diverso:

  • integrazione con. - consente di creare potenti script incorporando il codice del programma in essi;
  • tutti i dati restituiti sono oggetti, non dati di tipo testo/stringa (stringa), il che implica il loro trasferimento ad altri script e qualsiasi elaborazione.

PowerShell versione 2 ha le seguenti caratteristiche, alcuni dei quali considereremo più in dettaglio:

  • Possibilità di rappresentare i comandi come cmdlet– vengono lanciati all'interno dell'interprete, altrimenti il ​​comando viene eseguito in un processo separato.
  • Utilizzo di condotte- progettato per trasferire i dati da un comando all'altro mantenendone la struttura e la tipologia.
  • Trasferimento dati multithread integrato in rete con impostazione della priorità e ripresa della connessione.
  • Supporto per parametri posizionali e denominati.
  • lavoro in backgroundchiamata asincrona comandi ed esecuzione di script su macchine remote.
  • Configurazione di sessioni limitate con client remoti ed eseguire script su di essi.
  • Moduli- un modo per organizzare gli script quando diventano autosufficienti e vengono eseguiti nel proprio contenitore senza influire sull'ambiente del modulo.
  • La presenza di un gestore di errori.
  • Ambiente grafico per la lingua: sintassi, debugger, evidenziazione, completamento automatico comandi con supporto Unicode e segnalibri.
  • Aggiunta di punti di interruzione alle linee, comandi, operazioni e variabili per il debug degli script.
  • Blocca e incorpora i commenti.
  • Supporto per la creazione di alias per alcuni cmdlet, che vengono convertiti in normali comandi al momento dell'esecuzione.
  • Crea sessioni limitate, dove puoi eseguire un elenco di comandi rigorosamente specificato e molto altro.

Codice sorgente di PowerShell reso disponibile a tutti: ogni membro della community è libero di creare le proprie estensioni per aumentare le funzionalità dell'interprete a riga di comando.

Puoi iniziare a padroneggiare il linguaggio di scripting integrato senza competenze di programmazione.

È improbabile che sia possibile creare uno script complesso, ma quasi tutti saranno in grado di eseguire sequenze di azioni primitive.

Sebbene, senza la conoscenza dei concetti di base di PowerShell, è improbabile che venga eseguito qualcosa nella finestra dell'interprete dei comandi. Cominciamo con loro.

cmdlet

cmdlet- comandi PS originali, dietro i quali si nascondono una varietà di funzioni. I comandi integrati nell'interprete sono implementati secondo il principio "verbo-nome", ad esempio Get-Process (ottenere un elenco di processi). Questa soluzione permette di comprendere l'essenza della squadra già dal suo nome (in inglese).

Alcuni cmdlet supportano la ricezione/trasferimento di dati e matrici di informazioni preservandone la struttura e il tipo. Funziona secondo il principio di una pipeline (questo sarà discusso nella prossima sezione). In ogni caso, i cmdlet eseguono ed elaborano gli oggetti in un ordine rigoroso.

Per implementare i cmdlet, è possibile utilizzare qualsiasi API .NET supportata creata in qualsiasi lingua .NET.

Pertanto, all'utente viene concesso l'accesso alle funzioni specifiche del programma.

I cmdlet sono in grado di accedere alle informazioni richieste direttamente o tramite percorsi univoci (lettere di unità e percorsi di directory).

Tramite i cmdlet è possibile lavorare con gli oggetti file system e archivi certificati app installate e servizi.

Trasportatore

Quando si creano script non molto primitivi o per eseguire operazioni con i dati ottenuti a seguito dello script, a volte è necessario eseguire anche alcune azioni.

C'è un trasportatore per questo. Come in UNIX, concatena i comandi passando l'output di un cmdlet all'input di un altro, invariato, mantenendone il tipo.

Non richiede alcun contenitore o analisi carattere per carattere delle informazioni.

Le informazioni trasmesse possono anche includere una funzione. Dopo aver completato il lavoro dei comandi combinati, viene chiamata la funzione di conversione delle informazioni in un modulo di testo (conversione di dati in stringhe) utilizzando la formattazione del testo.

Script

Nonostante il fatto che la shell ti permetta di automatizzare molte azioni, devi inserire i comandi manualmente, il che non è molto conveniente.

Soprattutto quando le stesse operazioni devono essere eseguite costantemente.

Sì, e senza il fattore umano non si può fare: errori di battitura, errori, tasti toccati accidentalmente durante la scrittura di righe di codice, la correzione o la digitazione di una nuova riga richiedono un atteggiamento più amichevole nei confronti dell'utente.

Per eseguire catene di azioni monotone in PS, vengono implementati degli script: file di testo con una sequenza di comandi comprensibili all'interprete all'interno.

Gli script in PowerShell semplificheranno e automatizzeranno ulteriormente il lavoro sul PC e la sua manutenzione, soprattutto se lo script contiene rami, condizioni, operazioni logiche e cicli.

Ma qui “non è tutto oro quel che luccica”: scrivere la propria sceneggiatura o caricarne una già pronta (anche se un po' adatta ai propri obiettivi) non funzionerà così facilmente.

Se dentroMicrosoftera permesso non importa quanti problemi fatto script perPowerShell , scritto da truffatori e malvagi per scopi egoistici o teppisti.

Per eseguire su Windows PS, devi passare il suo controllo di avvio.

Se non viene superato e lo script deve essere eseguito, dovrai modificare la configurazione degli oggetti responsabili della sicurezza delle macro.

Prima di utilizzare gli script

Quando si opera con VBS, ci sono molti problemi che gli sviluppatori di PowerShell eliminano completamente se la sicurezza degli script non viene abbassata per soddisfare le richieste di script degli utenti o risolvere problemi relativi al livello di sicurezza del sistema operativo.

L'esecuzione dello script scaricato sul computer dell'utente è un modo semplice ed efficace per distribuire malware. Software o furto informazione personale attaccanti.

Tutto accade per elementare ignoranza del contenuto del file di script (ps1) e il desiderio di risolvere rapidamente i propri problemi a spese del lavoro degli altri. Gli oggetti che controllano il livello di sicurezza dell'esecuzione dello script creano un ambiente in cui lo script non può essere eseguito.

Il lancio intenzionale delle macro avviene dopo aver modificato il livello di sicurezza, se l'utente dà il via libera, realizzando cosa sta facendo e sapendo con certezza cosa c'è nel file *.ps1.

A causa dell'inconveniente della configurazione di sicurezza per le persone che devono implementare ed eseguire i propri script, è possibile modificare la configurazione.

Qui puoi sia ridurre al minimo la protezione, sia manovrare ragionevolmente tra la capacità di aprire fori per la penetrazione e la comodità nel lavorare con PowerShell.

La shell ha tre livelli di sicurezza:

  • i file con estensione ps1 non sono identificati dal sistema come eseguibili e sono designati come sconosciuti o testo (fare doppio clic per aprire nell'editor di testo predefinito utilizzato sul computer);
  • la shell ti consente di eseguire script dopo aver specificato il percorso completo per essi, i file di script nella directory corrente non vengono ricercati, rendendo impossibile l'esecuzione di macro che si trovano nella directory corrente;
  • eseguendo la politica di esecuzione dello script integrata, che è responsabile dell'aggiunta di quello richiesto all'elenco degli script consentiti.

Non pensare nemmeno a cambiare la configurazione, abbassandolo almeno al secondo livello, senza familiarizzare con le basiPowerShell, finché non inizi a comprendere almeno superficialmente il contenuto di *.ps1.

C'è anche il concetto di una politica di esecuzione, che è progettata per prevenire l'esecuzione accidentale di script. Sono disponibili fino a cinque impostazioni dei criteri di avvio:

  • limitato - installato di default, vengono eseguiti solo script firmati da Microsoft che consentono di ottenere informazioni sulla shell hardware e software del computer;
  • firmato file cancellati – tutte le macro possono essere eseguite, ma i file inviati per posta devono essere firmati;
  • firmato digitalmente da una fonte attendibile– tutti gli script firmati vengono eseguiti;
  • illimitato- eseguire eventuali macro;
  • circonvallazione- sono destinati ai programmatori che creano il proprio sistema di sicurezza e non utilizzano quello fornito nella shell.

È possibile verificare lo stato corrente del criterio di avvio con il comando "Get-ExecutionPolicy".Qualunque sia la politica di sicurezza, l'utente non sarà in grado di eseguire uno script che contiene comandi che non dispone di privilegi sufficienti per eseguire.

Esecuzione di PowerShell

È tempo di passare dalla teoria alla pratica. Quindi, per eseguire gli script, è necessario ottenere una firma digitale o (la seconda opzione è più semplice).

Esistono diversi modi per visualizzare una finestra di PowerShell.

Si presenta in due forme:

  • console classica;

  • PowerShell ISE - aggiunge il supporto per le schede, la sintassi, la guida contestuale, il contesto e i menu principali, che facilita notevolmente il lavoro nell'interprete.

Inizio

Il modo più semplice per chiamare PS è tramite Start.

  1. Apertura del menù(in Windows 7, fai clic su "Tutti i programmi").
  2. Andiamo a Directory di Windows PowerShell e fare clic sull'icona desiderata.

Riso. 4 - Avvia PS tramite Start

Puoi anche chiamare PS tramite l'utilizzo motore di ricerca integrato.

interprete dei comandi

Chi ama non standard e modi veloci avviare, utilizzare la finestra "Esegui". Si apre dal pulsante omonimo in Start e dalla combinazione di tasti Win + R.

Nella finestra di dialogo scrivi "guscio di potenza" e premere "Invio".

Vinci+X

In Windows 10 PS può essere chiamato dal menu WinX. Il fatto è che di default, cliccando sul comando "Riga di comando" aprire CMD. Può essere sostituito con PowerShell.

Apri le "Proprietà" della barra delle applicazioni, nella scheda "Navigazione", seleziona la casella accanto all'unica opzione e salva le impostazioni.

Puoi chiamare PowerShell tramite la riga di comando scrivendo "powershell" al suo interno o eseguendo il file eseguibile lungo il percorso: %WINDIR%\ Sistema32\ WindowsPowerShell\v1.0 per sistemi a 32 bit e in %WINDIR%\ syswow64\ Windows PowerShell\v1.0 per 64 bit Windows qualsiasi edizioni.

Riso. 8 - Avvio di PS dalla directory in cui è archiviato il suo file eseguibile

Impostazione dei criteri di sicurezza

Lasciato un po'– consentire a PowerShell di eseguire script. Scriviamo il comando "Set-ExecutionPolicy RemoteSigned" e premiamo "Y".

È tutto. Ora puoi eseguire qualsiasi cmdlet e script. Proviamo, ad esempio, a visualizzare un elenco di processi attivi eseguendo "Get-Process" .

Esecuzione di script

Puoi creare script in qualsiasi (è meglio rimanere su Win, o simili, con supporto o convalida della sintassi) o nel programma PowerShell ISE.

Quest'ultimo offre un comodo accesso ai cmdlet, la possibilità di eseguire, eseguire il debug e salvare gli script.

Supponiamo di aver scritto il tuo primo script (questo sta ottenendo un elenco di processi in esecuzione), di averlo salvato tramite il menu File e di aver bisogno di eseguirlo. Questo viene fatto in tre modi:

1 Scrivi il percorso completo dello script in PowerShell (o ISE);

Riso. 13 - Esecuzione di script dalla finestra di PowerShell ISE

Importante in modo che non ci siano spazi nel percorso del file!

PowerShell- un potente strumento per semplificare le operazioni di routine in Server 2008 e versioni successive. Un importante vantaggio di PowerShell: gli script e la presenza versioni software con GUI PS ISE. I comandi in esso contenuti sono presentati sotto forma di cmdlet, che consentiranno di familiarizzare con la shell e comprendere il significato di ciascun comando. La politica di sicurezza impedirà a un principiante di danneggiare il suo computer derivato da fonti sconosciute script e la modalità di debug, la creazione di cmdlet, funzioni e un meccanismo di gestione degli errori aprono possibilità illimitate per programmatori e amministratori.

73095

E studiando il menu Avvio di Windows 7 o primaria schermo di Windows 8 1, gli utenti inesperti scoprono spesso applicazioni di cui non comprendono lo scopo. Una di queste applicazioni è PowerShell. Cos'è questo stesso PowerShell e ha un senso da esso? Bene, dal momento che qualcuno l'ha inventato e l'ha integrato in Windows, significa che c'è ancora un senso. A proposito, Microsoft è l'inventore di PowerShell.


Così, . Questa applicazione è destinata principalmente agli amministratori di sistema, ma gli utenti ordinari, in particolare i principianti, non ne trarranno quasi mai vantaggio. PowerShell è una moderna shell della riga di comando standardizzata che offre una maggiore flessibilità nella gestione di un computer basato sul sistema operativo Windows. In sostanza, PowerShell è lo stesso riga di comando ma molto più funzionale.

Cosa può fare questo strumento di amministrazione? Molte cose. Con esso, gli amministratori di sistema e gli utenti avanzati possono gestire processi, servizi, archiviazione di file, account e persino server. La shell consente anche di eseguire comandi esterni, lavorare con oggetti .RETE, COM e XML, fai diversi trucchi, ecc., crea ed esegui i tuoi scenari. A proposito, Windows fornisce una console grafica speciale per la scrittura di script. ISE, che è una sorta di aggiunta alla shell principale di PowerShell.

Come la console cmd, PowerShell dispone di un proprio set di comandi denominato cmdlet. L'utilità riconosce molti dei comandi CMD, ma in generale la sintassi del linguaggio, le definizioni dei cmdlet e i relativi parametri differiscono da ciò che gli utenti sono abituati a vedere in una normale riga di comando. Inoltre, comandi familiari come dir , CD , copia ecc., ben compresi da PowerShell, sono in realtà alias. Ad esempio, il comando Dir , utilizzato per esplorare il file system corrisponde al cmdlet "nativo". Get-ChildItem. Gli alias, o come si suol dire, gli alias, sono puramente per comodità.

Comprendere PowerShell per un utente inesperto, soprattutto se non ha familiarità con almeno le basi di una normale riga di comando, non sarà facile. E non ci sono così tanti manuali e libri di riferimento che siano sufficientemente chiari e facili da capire. C'è una buona guida scritta da Frank Koch che consigliamo di leggere se decidi ancora di iniziare ad imparare il linguaggio di scripting di PowerShell. E, naturalmente, il sistema di aiuto della shell.

È potente e distribuito, con molti esempi specifici. È abbastanza semplice usarlo. Informazioni di base su sistema di aiuto output tramite cmdlet Ottenere aiuto. Il cmdlet elenca tutti i comandi disponibili.

Dopo essere passati al sistema operativo Windows 10, molti utenti hanno notato il pulsante "Avvia PowerShell" nell'interfaccia di Explorer. A questo proposito, sulla rete sono apparse molte domande, gli utenti erano interessati a che tipo di programma Windows PowerShell fosse ea cosa servisse. Se anche tu sei interessato a questa domanda, allora questo materiale dovrebbe aiutarti.

Windows PowerShell è un linguaggio di scripting e un programma da riga di comando per l'esecuzione di questi script. Questa lingua è stata rilasciata nel 2006 come parte del secondo Service Pack per Windows XP e da allora PowerShell fa parte di tutti i sistemi operativi di Microsoft. Nel 2008 è apparsa la seconda versione data lingua, e da Windows 7 viene utilizzato. I file con script di Windows PowerShell hanno l'estensione PS1 e possono essere eseguiti come file BAT e CMD familiari.

Windows PowerShell è un linguaggio di scripting sviluppato principalmente per i clienti aziendali Microsoft che necessitano di potenti strumenti per automatizzare le attività di gestione di server e computer su Base di Windows. La piattaforma .NET sviluppata da Microsoft dal 2002 è stata utilizzata come base per questo linguaggio.

Windows PowerShell consente di automatizzare un'ampia varietà di attività. Con esso, puoi gestire file, servizi, processi, account e impostazioni. Il linguaggio di PowerShell comprende molti dei comandi presenti nel normale prompt dei comandi di Windows (CMD), ma dispone anche di un proprio linguaggio, costituito dai propri comandi, qui denominati cmdlet.

I cmdlet (in inglese cmdlet) vengono formati in base alla regola Verb-Noun, ad esempio Get-Help. È possibile apprendere le nozioni di base di Windows PowerShell utilizzando la Guida (il cmdlet "Get-Help"). Per ottenere Informazione Generale digita semplicemente "Get-Help", per assistenza su un cmdlet specifico, digita "Get-Help cmdlet-name". Ad esempio, se si immette il comando "Get-Help Get-Process", riceveremo assistenza sul cmdlet Get-Process.

Come eseguire un programma Windows PowerShell

È possibile eseguire un programma Windows PowerShell diversi modi. L'opzione più semplice è utilizzare semplicemente la ricerca nel menu Start. Per fare ciò, apri il menu Start, digita query di ricerca"Windows PowerShell", quindi apri il programma trovato.

Puoi anche usare una combinazione Tasto Windows-R e inserisci il comando "powershell".

In Windows 10, il programma PowerShell può essere avviato da qualsiasi cartella. Per fare ciò, fai clic sul pulsante "File" nell'angolo in alto a sinistra di Explorer e seleziona "Avvia Windows PowerShell".

Come utilizzare il programma Windows PowerShell

Come abbiamo detto, con l'aiuto del programma PowerShell, puoi automatizzarne molti compiti di routine nel sistema operativo Windows. A titolo di esempio, dimostreremo alcune delle funzionalità di questo strumento per capire come utilizzarlo.

Svuotare il cestino. C'è un cmdlet speciale per svuotare il cestino chiamato "Clear-RecycleBin". Questo cmdlet è utile durante la scrittura di script per la manutenzione dei computer. Quando si esegue il cmdlet, è necessario specificare l'unità in cui si desidera svuotare il Cestino. Esempio:

Cancella-Cestino c:

Lo screenshot seguente mostra come viene eseguito questo cmdlet. Dopo aver inserito il comando "Clear-RecycleBin c:", viene visualizzato un messaggio di conferma. Per continuare a eseguire il cmdlet, devi digitare la lettera "Y" e premere Invio.

Se aggiungi "-Force" al cmdlet "Clear-RecycleBin c:", il cestino verrà cancellato senza chiedere conferma. Schermata qui sotto.

Archiviazione di file. Per archiviare e decomprimere i file, vengono forniti i cmdlet Compress-Archive ed Expand-Archive. Ad esempio, per archiviare la cartella "C:\test\" nell'archivio "C:\archive\test2.zip", è necessario eseguire il seguente cmdlet:

Comprimi-Archivio -LiteralPath C:\test\ -DestinationPath C:\archive\test2.zip

A seguito dell'esecuzione del comando precedente, il file “test2.zip” apparirà nella cartella “C:\archive\”, in cui verrà archiviato il contenuto della cartella “C:\test\”.

Elenco di cmdlet per Windows PowerShell

Per Windows PowerShell, esiste un numero enorme di cmdlet diversi e non funzionerà per descriverli tutti in un articolo. Pertanto, ti suggeriamo di familiarizzare con i più popolari:

  • Get-Help - ottenere aiuto;
  • Aggiorna-Aiuto – aiuta ad aggiornare;
  • Get-Command: cerca i cmdlet;
  • Get-Alias ​​​​: cerca alias per i cmdlet;
  • Get-PSDrive - visualizza le unità connesse;
  • Get-Member: visualizza le proprietà e i metodi di un oggetto;
  • Get-WindowsFeature: visualizza le informazioni sui ruoli e le funzionalità del server disponibili;
  • Install-WindowsFeature (simile a Add-WindowsFeature): installa ruoli o funzionalità sul server desiderato;
  • Uninstall-WindowsFeature (simile a Remove-WindowsFeature): rimuove i ruoli o le funzionalità del server;
  • Get-History: visualizza la cronologia dei comandi immessi in questa sessione;
  • Get-Variable - visualizza l'elenco delle variabili e dei loro valori;
  • Nuova-Variabile - creazione di una nuova variabile;
  • Set-Variable - impostazione del valore di una variabile;
  • Clear-Variable - eliminazione del valore di una variabile;
  • Remove-Variable - rimuove una variabile e il suo valore;
  • Format-List - visualizza il risultato del comando come un elenco di proprietà, in cui ogni riga ha una proprietà separata;
  • Format-Table - visualizza il risultato del comando in formato tabella;
  • Format-Wide - visualizza il risultato del comando come un'ampia tabella che mostra una sola proprietà per ogni oggetto;
  • Format-Custom - visualizza il risultato del comando utilizzando una visualizzazione personalizzata;
  • Export-Csv - esporta i dati in formato CSV;
  • Import-Csv - importa i dati da un file CSV;
  • Export-Clixml - esporta i dati in formato XML;

È possibile ottenere un elenco completo dei cmdlet di Windows PowerShell eseguendo il cmdlet "Get-Command -CommandType".

Ciao a tutti! Oggi una piccola nota sull'argomento, come aprire PowerShell come amministratore. Lascia che ti ricordi che PowerShell è un potente linguaggio di programmazione e amministrazione di Microsoft, ogni anno acquisisce sempre più cmdlet e funzionalità. È essenzialmente un sostituto del prompt dei comandi di Windows. Di seguito considereremo i metodi che ti consentono di aprirlo e configurarlo.
.

Metodi per aprire uno snap-in di PowerShell

Powershell si sta sviluppando molto bene e con il rilascio di Windows 10 ha già ricevuto la versione 5, ma il nostro argomento è diverso. Quindi come si apre PowerShell? Tutto è semplice se in Windows XP, quindi niente. poiché viene consegnato separatamente, in tutte le versioni successive viene fornito come componente integrato. Più modo universale l'apertura del powershell è push

Win + R ed entra in powershell

Premendo invio si avvierà la console di PowerShell, l'unico problema è che non si aprirà per conto dell'amministratore. E di conseguenza, molti comandi non potranno essere eseguiti, di seguito vediamo come farlo per conto dell'amministratore.

Come eseguire Windows PowerShell come amministratore in Windows 8.1 e Windows 7

Puoi aprire Windows PowerShell tramite start. In Windows 8.1, Windows 2012 R2, vai su Utilità di sistema - Windows e fai clic con il pulsante destro del mouse su Esegui come amministratore.

In Windows 7 e Windows 2008 R2 è simile a Start > Accessori > Windows PowerShell

Puoi anche creare un collegamento nell'elemento dell'attività e fare clic con il pulsante destro del mouse su di esso e selezionare l'elemento appropriato

sarebbe bello avere PowerShell sempre aperto come amministratore, implementiamolo. Questo viene fatto in tutte le versioni di Windows allo stesso modo. Apertura del pannello di controllo

Fare clic destro su di esso e selezionare le proprietà. Puoi vedere immediatamente il percorso del file, dove si trova nel sistema.

Fare clic sul pulsante "Avanzate". Aprirai proprietà aggiuntive. dove è necessario selezionare la casella per eseguire come amministratore.

Tutto è molto semplice. Sono sicuro che ora non avrai domande su come aprire Windows PowerShell. Un'altra cosa utile è cambiare il carattere nella finestra di PowerShell.

Come aprire PowerShell tramite il menu contestuale del pulsante Start in Windows 10

Microsoft sta puntando sempre più sulla riga di comando verso il suo linguaggio forte (PowerShell), e questo è logico, poiché la sua capacità di gestire i sistemi operativi Famiglie di Windows, quasi illimitato, e anche più che in GUI. A partire da Windows 10 versione 1709, nel menu di scelta rapida PowerShell ha sostituito il familiare cmd. Fare clic con il pulsante destro del mouse sul pulsante Start in Windows 10 e da menù contestuale, seleziona la voce appropriata:

  1. Windows PowerShell
  2. Windows PowerShell (amministratore): questa è esattamente la modalità con i diritti massimi in Windows 10.

Avvio di Windows PowerShell con la ricerca in Windows 10

In Windows 10 e versioni precedenti, puoi trovare la shell di PowerShell usando la solita ricerca, c'è una sezione speciale per questo. Fare clic accanto al pulsante Start, l'icona della lente d'ingrandimento. Nel modulo di ricerca che si apre, inserisci la parola PowerShell. Verrai ricercata per tutte le opzioni, tra le quali troverai la shell. Se fai clic con il pulsante destro del mouse su di esso, puoi aprirlo come amministratore.

Avvio di Windows PowerShell utilizzando il menu Start in Windows 10

Per aprire la shell di PowerShell dal menu Start, aprila e trova la voce Windows PowerShell, avrà la forma di una cartella, aprila ed esegui la versione appropriata.

Se fai clic con il pulsante destro del mouse, sarai in grado di eseguire la shell per conto e con i diritti di amministratore.

Metodi di avvio della shell aggiuntivi e generici

Esistono anche metodi molto specifici per aprire una shell con un potente linguaggio di Microsoft. Il più goffo, è solo trovare il file eseguibile ed eseguirlo direttamente dalla posizione sul sistema. Passiamo nel tuo Windows 10 lungo il percorso:

C:\Utenti\nome utente\AppData\Roaming\Microsoft\Windows\Menu Start\Programmi\Windows PowerShell

Di conseguenza, aprirai una cartella con i collegamenti presenti nel menu Start, puoi eseguirli.

Puoi anche eseguire il file eseguibile originale, che si trova lungo il percorso:

C:\Windows\System32\WindowsPowerShell\v1.0

E facendo clic destro su di esso, puoi scaricarlo come amministratore, con i massimi diritti.

Puoi anche eseguire Windows PowerShell da una finestra del prompt dei comandi, basta digitarlo parola magica e premere Invio.

Bene, ti ricorderò anche il metodo per avviare una nuova attività dallo snap-in Task Manager. Apri il "Gestione attività", seleziona la voce di menu "File - Esegui una nuova attività"

Nella finestra che appare, digita PowerShell.

Bene, l'ultimo metodo a me noto è il lancio di PowerShell, attraverso Windows Explorer 10, per fare ciò, apri Explorer, seleziona la voce di menu "File - esegui Windows PowerShell", ci saranno entrambe le modalità.

Che cos'è PowerShell ISE

Sicuramente avrai notato che c'è una scorciatoia PowerShell ISE ovunque e vorresti sapere di cosa si tratta. In poche parole, questa è una shell speciale in cui puoi scrivere script e script nel linguaggio PowerShell, utilizzando tutta la varietà di cmdlet che Microsoft ti offre.

le modifiche ai caratteri di PowerShell vanno molto semplicemente nella scheda delle proprietà Carattere, dove puoi impostare la dimensione da 5 a 72.

puoi anche accedere alle proprietà dalla finestra dell'utilità stessa, fare clic sull'icona nell'angolo in alto a sinistra e selezionare le proprietà

Qui le impostazioni dei caratteri sono leggermente diverse, insieme alla loro modifica, cambia anche la dimensione della console.

Nella scheda Colori, puoi impostare il colore del carattere in PowerShell e nella finestra stessa. Rendendolo nero, ad esempio, come la riga di comando.

Consiglio inoltre, se sei un giocatore console attivo, di impostare la dimensione del buffer non su 50 comandi, ma almeno su 100.

Grazie per l'attenzione. Questi sono i metodi per aprire la console di Power Shell in Windows. Materiale del sito