i Comandi di PowerShell, Ogni Sviluppatore Dovrebbe Sapere: 50+ Cmdlet per Ottenere le Cose Fatte, il Monitoraggio delle Prestazioni, il Debug

postato in: Articles | 0

Molti sviluppatori amore PowerShell, e per una buona ragione: si aggiunge potenza, funzionalità e flessibilità per il Prompt dei comandi di Windows, dove molti di noi spendono un bel po ‘ di tempo. Lo fa, tuttavia, venire con un po ‘ di una curva di apprendimento, ma una volta che hai imparato i comandi essenziali che dovete sapere, è la produttività sugli steroidi.,

Comandi PowerShell sono noti come cmdlet, e questi cmdlet sono la forza trainante dietro le sue capacità funzionali. Dai comandi che migliorano l’esperienza complessiva di Windows ai comandi utili per il lavoro di sviluppo, ci sono decine di comandi importanti che gli sviluppatori dovrebbero conoscere., Abbiamo messo insieme questo elenco di servire come una guida di riferimento rapido per coloro che stanno appena iniziando a sfruttare la potenza di PowerShell così come coloro che vogliono salire di livello, la loro PowerShell esperienza, tra cui:

  • di Base Cmdlet di PowerShell
  • Comandi di PowerShell per Ottenere Cose Fare
  • Cmdlet per il Monitoraggio delle Performance, Test e Debug

In aggiunta a cmdlet, ci sono decine di parametri e metodi che consentono di ottenere il massimo dal vostro script., Il parametro WhatIf è particolarmente utile per testare gli script PowerShell senza eseguirli effettivamente (@pluralsight). In genere sono disponibili diversi parametri e metodi per ogni comando. I comandi elencati di seguito sono un buon punto di partenza per qualsiasi sviluppatore, ma per realizzare pienamente i benefici, dovresti padroneggiare anche i parametri e altri metodi.

Cmdlet PowerShell di base

Questi comandi PowerShell di base sono utili per ottenere informazioni in vari formati, configurare la sicurezza e creare report di base.,

Get-Command

Get-Command è un cmdlet di riferimento facile da usare che fa apparire tutti i comandi disponibili per l’uso nella sessione corrente.

Basta digitare questo comando:

get-command

L’output sarà simile a questo (@MS_ITPro):

2. Get-Help

Il comando Get-Help è essenziale per chiunque utilizzi PowerShell, fornendo un rapido accesso alle informazioni necessarie per eseguire e lavorare con tutti i comandi disponibili.

Se si desidera alcuni esempi, ad esempio, si immette il seguente (@jp_jofre):

3., Set-ExecutionPolicy

Microsoft disabilita lo scripting per impostazione predefinita per impedire l’esecuzione di script dannosi nell’ambiente PowerShell. Gli sviluppatori vogliono essere in grado di scrivere ed eseguire script, tuttavia, in modo che il comando Set-ExecutionPolicy consente di controllare il livello di sicurezza che circonda gli script PowerShell. È possibile impostare uno dei quattro livelli di sicurezza:

  • Restricted: Questo è il livello di sicurezza predefinito che blocca l’esecuzione degli script PowerShell. In questo livello di sicurezza, è possibile immettere i comandi solo in modo interattivo.,
  • Tutti firmati: questo livello di sicurezza consente l’esecuzione degli script solo se firmati da un editore affidabile.
  • Firma remota: in questo livello di sicurezza, è consentito eseguire qualsiasi script PowerShell creato localmente. Gli script creati in remoto possono essere eseguiti solo se firmati da un editore affidabile.
  • Unrestricted: Come suggerisce il nome, il livello di sicurezza senza restrizioni consente l’esecuzione di tutti gli script rimuovendo tutte le restrizioni dal criterio di esecuzione.,

Allo stesso modo, se stai lavorando in un ambiente non familiare, puoi facilmente scoprire quale sia la politica di esecuzione corrente utilizzando questo comando:

Get-ExecutionPolicy

Controlla questo thread su SuperUser per ulteriori informazioni sulla configurazione della politica di esecuzione in PowerShell. (@StackExchange)

Get-Service

È anche utile sapere quali servizi sono installati sul sistema., Si può facilmente accedere a queste informazioni con il seguente comando:

Get-Service

L’output sarà simile al seguente (@MS_ITPro):

Se avete bisogno di sapere se un determinato servizio è installato, è possibile aggiungere il Nome di opzione e il nome del servizio, e Windows mostrerà lo stato del servizio. Inoltre, è possibile sfruttare le funzionalità di filtraggio per restituire un sottoinsieme specifico di servizi attualmente installati., Il seguente esempio produrrà un output di dati dal comando Get-Service che è stato convogliato nel cmdlet Where-Object, che quindi filtra tutto tranne i servizi che sono stati fermati:

Get-Service | Where-Object {$_.status -eq "stopped"}

Dai un’occhiata a questo post per alcuni esempi aggiuntivi di Get-Service in azione.

5. ConvertTo-HTML

Se è necessario estrarre i dati che è possibile utilizzare in un report o inviare a qualcun altro, il ConvertTo-HTML è un modo semplice per farlo., Per utilizzarlo, converti l’output da un altro comando al comando ConvertTo-HTML e usa l’opzione-Property per specificare le proprietà di output desiderate nel file HTML. È inoltre necessario fornire un nome di file.

Ad esempio, il seguente codice crea una pagina HTML che elenca gli alias di PowerShell nella console corrente:

PS C:\> get-alias | convertto-html > aliases.htmPS C:\> invoke-item aliases.htm

Bonus: il cmdlet

Export-CSV

funziona più o meno allo stesso modo, ma esporta i dati in un .File CSV piuttosto che HTML., Utilizzare

Select-Object

per specificare quali proprietà si desidera includere nell’output.

Dai un’occhiata a questo articolo da 4sysops per ulteriori informazioni sull’utilizzo efficace di ConvertTo-HTML (@adbertram).

6. Get-EventLog

Puoi effettivamente utilizzare PowerShell per analizzare i log degli eventi della tua macchina usando il cmdlet Get-EventLog. Ci sono diversi parametri disponibili. Utilizzare l’opzione-Log seguita dal nome del file di registro per visualizzare un registro specifico., Dovresti usare il seguente comando, ad esempio, per visualizzare il registro dell’applicazione:

Get-EventLog -Log "Application"

Dai un’occhiata ad alcuni altri esempi di Get-EventLog in azione in questo post (@nextofwindows). Altri parametri comuni includono (@SS64):

  • -Verbose
  • Debug
  • -ErrorAction
  • -ErrorVariable
  • -WarningAction
  • -WarningVariable
  • -OutBuffer
  • -OutVariable

Get-Process

Molto come ottenere un elenco dei servizi disponibili, spesso è utile per essere in grado di ottenere un rapido elenco di tutti i processi attualmente in esecuzione., Il comando Get-Process mette queste informazioni a portata di mano.

Bonus: utilizzare Stop-Process per arrestare i processi che sono congelati o non rispondono più. Se non sei sicuro di quale processo ti stia trattenendo, usa Get-Process per identificare rapidamente il processo problematico. Una volta che hai il nome o l’ID del processo, usa Stop-Process per terminarlo.

Ecco un esempio., Eseguire questo comando per terminare tutte le istanze in esecuzione di blocco note (@MS_ITPro):

Stop-Process -processname notepad

È possibile utilizzare caratteri jolly, come nell’esempio seguente in cui termina tutte le istanze del blocco note, nonché degli eventuali altri processi inizio con la nota:

Stop-Process -processname note*

Controllare questo post per ulteriori informazioni sull’interruzione di processi con PowerShell (@howtogeek):

8. Clear-History

Cosa succede se si desidera cancellare le voci dalla cronologia dei comandi? Facile da usare il cmdlet Clear-History. Puoi anche usarlo per eliminare solo comandi specifici., Per esempio, il seguente comando elimina comandi che includono “aiuto” o finiscono in “comando” (@MS_ITPro):

PS C:\> Clear-History -Command *help*, *command

Se si desidera aggiungere voci di una sessione, utilizzare:

Add-History

Controllare questo post per alcune informazioni utili su come eliminare la cronologia e il pre-caricamento storia con un elenco di alcuni comandi (@MS_ITPro).,

Where-Object

Where-Object è uno dei cmdlet più importanti da conoscere, in quanto consente di prendere un set di dati e passarlo più in basso nella pipeline per il filtraggio (@jonathanmedd):

Get-Service | Where-Object {$_.Status -eq 'Running'}Status Name DisplayName------ ---- -----------Running AdobeARMservice Adobe Acrobat Update ServiceRunning AppHostSvc Application Host Helper ServiceRunning Appinfo Application InformationRunning AudioEndpointBu... Windows Audio Endpoint BuilderRunning Audiosrv Windows AudioRunning BFE Base Filtering EngineRunning BITS Background Intelligent Transfer Ser...Running BrokerInfrastru... Background Tasks Infrastructure Ser...Running Browser Computer BrowserRunning CDPSvc Connected Devices Platform Service

10. Set-AuthenticodeSignature

Se si desidera mantenere il lavoro sicuro in produzione e impedire la modifica, utilizzare Set-AuthenticodeSignature per aggiungere una firma Authenticode a uno script o un file.

Comandi PowerShell per ottenere le cose fatte

Quando si tratta di produttività, PowerShell può aiutare a ottenere le cose fatte con i seguenti comandi.

11., ForEach-Object

Il cmdlet ForEach-Object esegue un’operazione contro ogni elemento in un gruppo specificato di oggetti di input. Mentre molti cmdlet funzionano comunque con ogni oggetto in una raccolta, è necessario ForEach-Object per quelle situazioni in cui si desidera apportare altre modifiche o applicare una formattazione specifica a tutti gli oggetti in una raccolta.

Ecco un esempio (@MS_ITPro)., Se si desidera visualizzare un elenco di nomi di processo e voglio che questi nomi per rendere il ciano, che si potrebbe provare il seguente:

Get-Process | Write-Host $_.name -foregroundcolor cyan

Ma sopra produrrà il seguente errore:

At line:1 char:25+ get-process | write-host <<<< $_.name -foregroundcolor cyan Write-Host : The input objectcannot be bound to any parameters for the command either because the command does nottake pipeline input or the input and its properties do not match any of the parametersthat take pipeline input.

Perché il Write-Host cmdlet non capire che cosa si vuole fare con i dati inviati tramite la pipeline.

Quindi, l’uso del cmdlet ForEach-Object risolve questo problema:

Get-Process | ForEach-Object {Write-Host $_.name -foregroundcolor cyan}

Dai un’occhiata a questo tutorial per ulteriori informazioni su ForEach-Object e lavorare con i loop (@tomsitpro).

12., Clear-Content

Se si desidera eliminare il contenuto di un elemento ma mantenere l’elemento stesso, si utilizzerà il cmdlet Clear-Content:

Clear-Content C:\Temp\TestFile.txt

È anche possibile utilizzare questo comando per cancellare il contenuto di tutti i file con un’estensione di file specificata. Il seguente codice sarebbe cancellare il contenuto di tutti i file con il .estensione txt, ad esempio:

Clear-Content -path * -filter *.TXT –force

Puoi anche usare caratteri jolly. Inoltre, è possibile cancellare il contenuto di qualsiasi tipo di file, da .file txt a .doc, .xls, e altro ancora.

Dai un’occhiata a questo post per maggiori dettagli.

13., Checkpoint-Computer

Se stai apportando modifiche importanti o stai eseguendo un esperimento rischioso, puoi impostare un punto di ripristino sulla tua macchina con il cmdlet Checkpoint-Computer.

Si noti che è possibile creare un punto di ripristino utilizzando questo cmdlet solo una volta ogni 24 ore. Se si esegue nuovamente il comando, manterrà il punto di ripristino precedente:

Controlla questo articolo da MCP Mag per ulteriori informazioni (@MCPmag).

Compare-Object

È spesso utile poter confrontare direttamente due oggetti., Puoi farlo usando Compare-Object, che genera un rapporto sulle differenze tra due set come (@Marcam923):

15. ConvertFrom-StringData

Utilizzare ConvertFrom-StringData per convertire una stringa contenente una o più coppie di valori in una tabella hash. Ecco un esempio di come appare il comando:

$settings = $TextData | ConvertFrom-StringData

Questo comando è utile in una varietà di situazioni, ad esempio quando si desidera salvare le impostazioni per uno script PowerShell per consentire ad altri di modificare le impostazioni senza lavorare direttamente nel codice dello script.,

ConvertTo-SecureString

Converti una stringa standard crittografata in una stringa sicura o un testo normale in una stringa sicura usando ConvertTo-SecureString. Questo cmdlet viene utilizzato insieme a ConvertFrom-SecureString e Read-Host (@AdmArsenal):

ConvertTo-XML

Usa il cmdlet ConvertTo-XML per creare una rappresentazione basata su XML di un oggetto. Questo è anche chiamato serializzazione, ed è un processo utile per il salvataggio dei dati per un successivo riutilizzo. Si noti che è importante che l’espressione scriva oggetti nella pipeline., Tutto ciò che utilizza Write-Host non scriverà nella pipeline e quindi non può essere serializzato. Ecco un esempio di ConvertTo-XML in action (@PetriFeed):

Get-Service wuauserv -ComputerName chi-dc04,chi-p50,chi-core01 |Export-Clixml -Path c:\work\wu.xml

Il cmdlet specifico utilizzato nell’esempio precedente, Export-Clixml, è adatto per la maggior parte degli scopi. Converte l’output di un’espressione PowerShell in XML e lo salva in un file.

18. New-AppLockerPolicy

New-AppLockerPolicy crea un nuovo criterio AppLocker da un elenco di informazioni sui file e altre opzioni di creazione delle regole., In totale, ci sono cinque cmdlet che consentono di interagire con AppLocker, tra cui (@RootUsers_):

  • Get-AppLockerFileInformation: Ottiene le informazioni necessarie per la creazione di regole AppLocker da un elenco di file o il registro eventi.
  • Get-AppLockerPolicy: utilizzato per recuperare un criterio AppLocker locale, efficace o di dominio.
  • New-AppLockerPolicy: Come accennato, questo cmdlet viene utilizzato per la creazione di nuove politiche AppLocker.
  • Set-AppLockerPolicy: imposta il criterio AppLocker per un oggetto criteri di gruppo specificato.,
  • Test-AppLockerPolicy: utilizzato per determinare se un utente o un gruppo di utenti sarà in grado di eseguire determinate azioni in base alla politica.

19. New-ItemProperty

New-ItemProperty crea una nuova proprietà per un elemento e ne imposta il valore. È possibile utilizzarlo per creare e modificare i valori e i dati del registro di sistema (proprietà di una chiave di registro), ad esempio.

Dai un’occhiata a questo tutorial da mnaoumov.NET per alcune soluzioni utili utilizzando questo cmdlet (@mnaoumov).

20. New-Object

Per creare un’istanza di Microsoft .,NET Framework o Component Object Model (COM) oggetto, utilizzare il cmdlet New-Object.

Ecco un esempio che crea un nuovo oggetto usando New-Object, lo memorizza in una variabile, quindi lo indirizza a Add-Member, che aggiungerà proprietà o metodi specificati nell’oggetto creato (@gngrninja):

21. New-WebServiceProxy

New-WebServiceProxy crea un oggetto proxy del servizio Web che consente di utilizzare e gestire il servizio Web da PowerShell., Questo cmdlet è una cosa bella per gli sviluppatori – rende inutile scrivere un sacco di codice complesso per cercare di realizzare qualcosa in PowerShell quando si può semplicemente chiamare un altro servizio che lo rende già possibile.

Ecco un esempio:

Ora, è possibile eseguire quanto segue per visualizzare un elenco di tutti i metodi disponibili:

$proxy | gm -memberType Method

22. New-WSManInstance

Analogamente a New-WebServiceProxy, New-WSManInstance crea una nuova istanza di una risorsa di gestione.,

Dai un’occhiata a questo tutorial per un esempio completo passo-passo su come ottenere le informazioni necessarie per eseguire correttamente questo script (@jonathanmedd).

23., Nuovo-WSManSessionOption

Nuovo-WSManSessionOption crea una nuova sessione di gestione la tabella di hash utilizzato come parametri di input per altre WS-i cmdlet di Gestione, tra cui:

  • Get-WSManInstance
  • Set-WSManInstance
  • Invoke-WSManAction
  • Connessione-WSMan

Ecco la sintassi (@SAPIENTech):

Select-Object

Select-Object cmdlet seleziona le proprietà specifiche di un singolo oggetto o un gruppo di oggetti. Inoltre, può selezionare oggetti univoci da un array o un numero specificato di oggetti dall’inizio o dalla fine di un array.,

PS > Get-Process | Sort-Object name -Descending | Select-Object -Index 0,1,2,3,4

Questo tutorial fornisce ulteriori informazioni sui vari modi in cui è possibile utilizzare Select-Object (@infosectactico).

Ci sono altri cmdlet con funzioni simili tra cui:

  • Select-String: Trova il testo in stringhe o file.
  • Select-XML: Trova il testo in una stringa XML o in un documento.

25. Set-Alias

Set-Alias è un ottimo comando per migliorare la produttività. Consente di impostare un alias per un cmdlet o un altro elemento di comando nella sessione corrente (simile a una scorciatoia da tastiera) in modo da poter lavorare più velocemente.,

Il seguente esempio imposta Notepad su np nella sessione corrente usando Set-Alias (@powershellatoms):

New-Alias np c:\windows\system32\notepad.exe

Nota che puoi anche personalizzare il tuo profilo PowerShell con gli alias che usi più spesso (@howtogeek).

26. Set-StrictMode

Set-StrictMode stabilisce e applica regole di codifica in script, blocchi di script ed espressioni. È un comando utile per far rispettare la qualità del codice e impedirti di rallentare e scrivere codice sciatto quando sono le 3:00 del mattino e non hai dormito in due giorni (@adbertram).,

Per utilizzare, ci sono due parametri da tenere in considerazione: -Off e la Versione e la Versione dispone di tre valori:

  • Versione 1.0: Impedisce l’utilizzo di variabili che non sono state inizializzate (come Option Explicit in VBScript)
  • Versione 2.0: ti Impedisce di usare le variabili che non sono state inizializzate e impedisce anche la chiamata di inesistenti proprietà sugli oggetti, impedisce la chiamata di una funzione come un metodo, e ne vieta la creazione di variabili senza un nome.,
  • Versione più recente: Questa opzione seleziona l’ultima versione StrictMode disponibile e la utilizza. Questa è una buona opzione perché significa che l’ultima versione di StrictMode viene utilizzata indipendentemente dalla versione di PowerShell che stai utilizzando.

Wait-Job

Wait-Job sopprime il prompt dei comandi fino al completamento dei lavori in background in esecuzione nella sessione corrente. Wait-Job non mostra l’output dai lavori, tuttavia, ma può essere utilizzato in combinazione con Receive-Job. Il multithreading è possibile in PowerShell grazie a-Jobs.

Write-Progress

Chi non ama una barra di stato?, Monitorare i progressi utilizzando Write-Progress, che visualizza una barra di avanzamento all’interno di una finestra di comando di Windows PowerShell.

Ecco un esempio che fornisce una barra di avanzamento completa e stringhe di runtime (@credera):

Cmdlet per il monitoraggio delle prestazioni, test e debug

Ci sono anche una varietà di cmdlet utili per gli sviluppatori per la risoluzione dei problemi, test, debug e scopi di monitoraggio. Qui ci sono alcuni che dovete sapere.

Debug-Process

Gli sviluppatori amano il debug! Bene, ci piace ancora di più quando non ci sono bug da eliminare, ma purtroppo non è sempre così., Con PowerShell, è possibile eseguire il debug di un processo utilizzando il cmdlet Debug-Process.

Puoi anche eseguire il debug dei lavori usando Debug-Job (@MS_ITPro). E, è possibile impostare i punti di interruzione o utilizzare il cmdlet Wait-Debugger:

30. Disabilita-PSBreakpoint

Se hai impostato contemporaneamente i punti di interruzione ma vuoi eliminarli, fallo facilmente usando Disable-PSBreakpoint, che disabilita i punti di interruzione nella console corrente. Ecco la sintassi (@ActiveXperts):

Disable-PSBreakpoint Disable-PSBreakpoint 

In alternativa, se si desidera abilitare i punti di interruzione nella console corrente, utilizzare Enable-PSBreakpoint.,

Get-Counter

Get-Counter ottiene i dati del contatore delle prestazioni in tempo reale dalla strumentazione di monitoraggio delle prestazioni nel sistema operativo Windows. Viene utilizzato per ottenere dati sulle prestazioni da computer locali o remoti a intervalli di esempio specifici specificati.

In questo esempio, si otterrà un contatore impostato con un intervallo di campionamento per un campione massimo specificato (@MS_ITPro):

PS C:\> Get-Counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 2 -MaxSamples 3

Nell’esempio seguente, questo comando ottiene dati contatore specifici da più computer:

32., Export-Counter

Export-Counter esporta gli oggetti PerformanceCounterSampleSet come file di log del contatore. Sono disponibili due proprietà:

  • CounterSamples: ottiene e imposta i dati per i contatori.
  • Timestamp: ottiene e imposta la data e l’ora in cui sono stati raccolti i dati di esempio.,

E diversi metodi, che sono ereditati da Oggetto:

  • Equals(Object)
  • Finalize()
  • GetHashCode()
  • GetType()
  • MemberwiseClone()
  • ToString()

Per esempio, il seguente comando Get-Counter per raccogliere dati sul Tempo del Processore e lo esporta in un .file blg utilizzando Export-Counter (@TechGenix):

Get-Counter "\Processor(*)\% Processor Time" | Export-Counter -Path C:\Temp\PerfData.blg

33. Test-Path

Test-Path consente di verificare se gli elementi esistono in un percorso specificato., Ad esempio, se si prevede di utilizzare un altro comando su un file specificato, potrebbe essere necessario verificare che il file esista per evitare di generare un errore.

Test-Path C:\Scripts\Archive

Se la cartella esiste, restituirà True; se non lo fa, restituirà False.

Può anche funzionare con i percorsi utilizzati da altri provider PowerShell. Ad esempio, se hai bisogno di sapere se il tuo computer ha una variabile d’ambiente chiamata username, puoi usare quanto segue:

Test-Path Env:\username

Test-Path funziona con variabili, certificati, alias e funzioni., Dai un’occhiata a questo post di TechNet per maggiori dettagli (@MS_ITPro).

34. Get-WinEvent

Guarda i registri eventi di Windows usando Get-WinEvent. Per un elenco dei registri disponibili, utilizzare:

Get-WinEvent -ListLog *

Quindi, per rivedere i dettagli di uno specifico registro, sostituire * con il nome (pipe l’output format-list per visualizzare tutti i dettagli):

Get-WinEvent -ListLog $logname | fl *

È inoltre possibile visualizzare tutti gli eventi in un file di registro utilizzando:

Get-WinEvent -LogName System

Check out questo tutorial per ulteriori dettagli (@rakheshster).,

Invoke-TroubleshootingPack

Troubleshooting pack sono raccolte di script PowerShell e assembly che consentono di risolvere, diagnosticare e riparare i problemi di sistema comuni (@ITNinjaSite). Trovare pacchetti di risoluzione dei problemi in:

C:\Windows\Diagnostics\System

È possibile eseguire questo script per ottenere un elenco di tutti i pacchetti di risoluzione dei problemi disponibili sul sistema corrente (@TechGenix):

Get-ChildItem C:\Windows\Diagnostic\System

Quindi, da un elevato finestra di PowerShell, eseguire un pacchetto di risoluzione dei problemi usando questo comando:

Invoke-TroubleshootingPack (Get-TroubleshootingPack C:\Windows\diagnostics\system\networking)

36., Measure-Command

Se si desidera cronometrare le operazioni in PowerShell, Measure-Command è un cmdlet indispensabile. Misura per quanto tempo uno script o scriptblock da eseguire. Ecco un esempio (@ToddKlindt):

Measure-Command { Mount-SPContentDatabase –Name wss_content_portal –WebApplication http://portal.contoso.com }

L’output è un oggetto TimeSpan, quindi contiene proprietà come Ora, Minuto, Secondo, ecc., ed è facile da adattare l’uscita alle Sue preferenze.

Measure-Object

Potresti anche voler sapere quanto è grande un determinato oggetto., Utilizzare Measure-Object per calcolare le proprietà numeriche di qualsiasi oggetto, inclusi caratteri, parole e linee in un oggetto string, ad esempio file di testo.,

Basta specificare il nome e il tipo di misura per eseguire, insieme con parametri come (@WindowsITPro):

  • -Somma: aggiunge i valori
  • Media: calcola il valore medio
  • Minimo: trova il valore minimo
  • Massima: trova il valore massimo

Il comando seguente riassume la VirtualMemorySize i valori delle proprietà di tutti gli oggetti processo:

Get-Process | measure VirtualMemorySize -Sum

Nuovo-Evento

Nuovo Evento viene utilizzato per creare un nuovo evento., Un cmdlet correlato è New-EventLog, che crea un nuovo registro eventi e una nuova origine eventi su un computer locale o remoto. Se si dispone di un motore di automazione supportato da PowerShell, è buona norma impostare un registro eventi (creando un tipo di registro eventi personalizzato) che registri tutti i messaggi inviati da PowerShell. Questo è un esempio in cui è possibile implementare la registrazione personalizzata nel Visualizzatore eventi.,

Inizia con la creazione di un nuovo Registro Eventi LogName (@BundaloVladimir):

New-EventLog -LogName Troubleshooting_Log -Source FalloutApp

Quindi, per inviare messaggi al nuovo registro eventi, eseguire le seguenti operazioni utilizzando la Scrittura del Log cmdlet:

Write-EventLog -log Troubleshooting_Log -source FalloutApp -EntryType Information -eventID 10 -Message "FalloutApp has been successfully installed"

Ricevere-Lavoro

Se avete bisogno di ottenere i risultati di Windows PowerShell processi in background nella sessione corrente, utilizzare Ricevere-Lavoro. Questo viene solitamente utilizzato dopo aver utilizzato Start-Job per iniziare un lavoro quando è necessario visualizzare i risultati specifici.,

Receive-Job -Name HighMemProcess

Dai un’occhiata a questo utile tutorial sull’utilizzo di Receive-Job e cosa fare se apparentemente non ci sono risultati (@proxb).

40. Register-EngineEvent

Questo cmdlet viene utilizzato per sottoscrivere gli eventi generati dal motore di Windows PowerShell e dal cmdlet New-Event. Ad esempio, il seguente comando sottoscrive un evento quando la sessione PowerShell corrente termina e salva le informazioni (come data e ora) in un file di registro (@jonathanmedd):

Register-EngineEvent PowerShell.Exiting-Action {"PowerShell exited at " + (Get-Date) | Out-File c:\log.txt -Append}

41., Register-ObjectEvent

Register-ObjectEvent è simile a Register-EngineEvent, ma piuttosto che sottoscrivere gli eventi generati dal motore PowerShell e New-Event, sottoscrive gli eventi generati da un oggetto Microsoft.NET Framework.

Ecco un esempio (@NetworkWorld):

Ci sono altri cmdlet di registro che potresti trovare utili tra cui:

  • Register – PSSessionConfiguration: Crea e registra una nuova configurazione di sessione.
  • Register-WmiEvent: Questo cmdlet sottoscrive un evento WMI.

42., Remove-Event

Quando si desidera rimuovere un evento, utilizzare il cmdlet Remove-Event. Se è necessario rimuovere un intero registro eventi, utilizzare Remove-EventLog, che elimina un registro eventi o annulla la registrazione di un’origine evento.

In alternativa, Unregister-Event annulla una sottoscrizione evento ma non elimina un evento dalla coda eventi (@SS64).

43. Set-PSDebug

Questo cmdlet attiva e disattiva le funzioni di debug degli script. Imposta anche il livello di traccia e commuta StrictMode.,

Utilizzando Set-PSDebug nella parte superiore del file di script subito dopo l’istruzione param () (se presente), è possibile evitare errori con gli script che PowerShell non fornisce informazioni adeguate per scopi di risoluzione dei problemi. Ecco un esempio (@r_keith_hill):

44. Start-Sleep

Se è necessario sospendere l’attività in uno script o una sessione, utilizzare Start-Sleep, che interrompe l’attività per un periodo di tempo specificato.

Start-Sleep -Seconds xxxStart-Sleep -Milliseconds xxx

Se è necessario mettere in pausa uno o più servizi in esecuzione, utilizzare Suspend-Service.

45., Tee-Object

Se stai analizzando le prestazioni o la qualità del codice, è utile essere in grado di visualizzare l’output di un comando. Tee-Object memorizza l’output del comando in un file o variabile e lo visualizza anche nella console se è l’ultima variabile nella pipeline. Se non è l’ultima variabile nella pipeline, Tee-Object lo invia lungo la pipeline.

Ecco la sintassi:

46. Test-AppLockerPolicy

Test-AppLockerPolicy valuta se i file di input possono essere eseguiti per un utente specifico in base al criterio AppLocker specificato.,

Test-AppLockerPolicy -Path Test-AppLockerPolicy -Path 

Questo tutorial offre maggiori dettagli sui parametri disponibili ed esempi di Test-AppLockerPolicy in azione (@powershellhelp).

Test-ComputerSecureChannel

Questo cmdlet verifica e ripara la connessione tra un computer locale e il suo dominio. Senza questo comando, la soluzione usuale era in precedenza quella di rimuovere un computer dal suo dominio e quindi ricollegarlo per ristabilire la relazione. Test-ComputerSecureChannel consente di ristabilire la connessione in meno tempo (@WindowsITPro).,

Quando si effettua l’accesso come amministratore locale, eseguire semplicemente quanto segue:

Test-ComputerSecureChannel –credential WINDOWSITPRO\Administrator –Repair

È possibile utilizzare Test-Connection per inviare pacchetti di richiesta echo (ping) ICMP (Internet Control Message Protocol) a uno o più computer.

Test-Path

Utilizzare Test-Path per determinare se tutti gli elementi di un percorso esistono. In sostanza, ti aiuta a gestire gli errori prima che si verifichino. Nella sua forma più semplice, restituisce True o False (@MCPmag):

PS C:\> test-path c:\TruePS C:\> test-path z:\fooFalse

49. Trace-Command

Trace-Command configura e avvia la traccia di un comando o di un’espressione specificata., Per usarlo, dovrai anche usare Get-TraceSource per cercare nomi particolari usando caratteri jolly:

PS&gt; Get-TraceSource -Name *param*

Puoi filtrare l’output per abbinare la descrizione al modello che stai cercando. Una volta identificato il possibile nome di traccia, utilizzerai Trace-Command per ottenere le risposte di cui hai bisogno. Ecco un esempio:

Dai un’occhiata a questo post per maggiori dettagli sulla riproduzione di detective con Trace-Command (@PowerShellMag).

50. Write-Debug

Write-Debug scrive un messaggio di debug nella console., Quando lo scrivi in una funzione o in uno script, non fa nulla per impostazione predefinita; i messaggi rimangono essenzialmente in attesa finché non modifichi il tuo Deb DebugPreference o attivi l’opzione-debug quando chiami una funzione o uno script. Quando Deb DebugPreference è impostato su “richiedi” o l’opzione-debug è attivata, il messaggio crea un punto di interruzione, offrendo un modo semplice per accedere alla modalità di debug.

Prendi questo esempio (@RJasonMorgan):

L’esempio precedente produce quanto segue quando viene eseguito con-debug:

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *