Appendice - Risposte alle domande di revisione

Questa appendice fornisce risposte concise alle domande di revisione trovate alla fine di ogni capitolo. Usarlo per convalidare la comprensione e rafforzare i concetti chiave.

Capitolo 1 - Introduzione a PowerShell

  1. Usare la $PSVersionTable variabile automatica.
  2. Solo se è necessario aggirare il controllo dell'account utente (UAC) per le attività che richiedono l'elevazione dei privilegi utente nel computer locale.
  3. I criteri di esecuzione predefiniti nei sistemi client Windows sono Restricted, che impedisce l'esecuzione di script.
  4. Usare Get-ExecutionPolicy per determinare i criteri di esecuzione correnti.
  5. Usare Set-ExecutionPolicy (ad esempio, Set-ExecutionPolicy -ExecutionPolicy RemoteSigned).

Capitolo 2 - Il sistema di aiuto

  1. No Il parametro DisplayName di Get-Service è denominato, non posizionale.
  2. Get-Process ha sei set di parametri.
  3. Utilizzare il Get-Command -Noun EventLog.
  4. Utilizzare il Get-Process -Name powershell.
  5. Eseguire Update-Help (con privilegi elevati come amministratore in Windows PowerShell) per scaricare e installare il contenuto della Guida più recente.

Capitolo 3 - Individuazione di oggetti, proprietà e metodi

  1. Get-Process produce un System.Diagnostics.Process oggetto .
  2. Inviare tramite pipe il comando a Get-Member.
  3. Controllare se l'oggetto dispone di un metodo che esegue l'azione.
  4. Utilizzare il parametro PassThru del comando, se disponibile.
  5. Eseguire il comando una volta e archiviare i risultati in una variabile per evitare di generare ripetutamente grandi quantità di output durante la creazione di prototipi.

Capitolo 4: One-Liners e la pipeline

  1. Una singola istruzione di PowerShell è una pipeline continua, indipendentemente dal numero di linee fisiche che occupa.
  2. Le interruzioni di riga naturali possono verificarsi in corrispondenza di caratteri quali pipe (|), virgola (,), parentesi quadre di apertura ([ ]), parentesi graffe ({ }) e parentesi (( )).
  3. È consigliabile filtrare a sinistra per migliorare le prestazioni e l'efficienza riducendo la quantità di dati passati attraverso la pipeline.
  4. Un comando può accettare l'input della pipeline in base al valore (per tipo) o al nome della proprietà.
  5. Poiché la maggior parte dei contenuti nella PowerShell Gallery è fornita dalla community e potrebbe non essere esaminata, deve essere esaminata e testata prima dell'uso.

Capitolo 5 - Formattazione, alias, provider, confronto

  1. Poiché i cmdlet di formattazione producono oggetti di formato, che interrompono la pipeline e non possono essere usati dalla maggior parte degli altri comandi.
  2. Usare Get-Alias -Name % per determinare il cmdlet effettivo.
  3. Poiché gli alias riducono la leggibilità e la portabilità, rendendo gli script più difficili da comprendere per gli altri utenti.
  4. Usare Get-ChildItem -Path HKLM:\, HKCU:\ per elencare le chiavi del Registro di sistema in entrambi gli hive.
  5. L'operatore -replace non fa distinzione tra maiuscole e minuscole per impostazione predefinita, mentre il .Replace() metodo fa distinzione tra maiuscole e minuscole.

Capitolo 6 - Controllo del flusso

  1. ForEach-Object elabora gli elementi uno alla volta dalla pipeline (streaming), mentre l'istruzione foreach elabora gli elementi da una raccolta già caricata in memoria.
  2. Un while ciclo valuta la condizione prima dell'esecuzione, pertanto potrebbe non essere eseguito affatto se la condizione è falsa, a differenza di do while e do until, che vengono eseguiti almeno una volta.
  3. break esce completamente dal ciclo, mentre continue ignora l'iterazione corrente e procede con quella successiva.

Capitolo 7 - Uso di WMI

  1. I cmdlet WMI ,ad esempio , Get-WmiObjectsono meno recenti e usano DCOM, mentre i cmdlet CIM (ad esempio , Get-CimInstance) sono più recenti e usano WSMan per impostazione predefinita.
  2. WSMan (gestione remota Windows).
  3. Le sessioni CIM consentono il riutilizzo delle connessioni, supportano credenziali alternative, migliorano le prestazioni e semplificano la gestione di più connessioni remote.
  4. Creare un'opzione di sessione con New-CimSessionOption, ad esempio, per usare DCOM e passarla a New-CimSession, quindi usare tale sessione con Get-CimInstance.
  5. Utilizzare il Remove-CimSession.

Capitolo 8 - Comunicazione remota di PowerShell

  1. Utilizzare il Enable-PSRemoting.
  2. Utilizzare il Enter-PSSession.
  3. Consente di usare una sessione permanente anziché specificare il nome del computer e le credenziali con ogni comando.
  4. Sì, è possibile usare una sessione di PowerShell (PSSession) in uno scenario di comunicazione remota interattiva uno-a-uno.
  5. I cmdlet eseguiti localmente restituiscono oggetti attivi con metodi, mentre i comandi remoti restituiscono oggetti deserializzati senza metodi.

Capitolo 9 - Funzioni

  1. Utilizzare il Get-Verb.
  2. Aggiungere l'attributo [CmdletBinding()] alla funzione.
  3. Quando la funzione apporta modifiche allo stato del sistema o esegue azioni potenzialmente interessate.
  4. Specificare -ErrorAction Stop.
  5. Per documentare come usare la funzione in modo che l'utente e altri utenti possano facilmente comprenderlo e accedere alla Guida con Get-Help.

Capitolo 10 - Moduli di script

  1. Creare un .psm1 file e posizionare le funzioni.
  2. L'uso dei verbi approvati garantisce coerenza, evita avvisi e migliora l'individuabilità.
  3. Utilizzare il New-ModuleManifest.
  4. Usare Export-ModuleMember nel .psm1 file o specificare funzioni nel FunctionsToExport campo del .psd1 file.
  5. Il modulo deve trovarsi in una cartella denominata uguale al modulo, che si trova in un percorso elencato in $env:PSModulePathe contenere il file di modulo appropriato (.psm1 o manifesto).

Note finali

  • Queste risposte sono intenzionalmente concise per rafforzare i concetti chiave.
  • Rivedere i capitoli per una comprensione più approfondita.