PowerShell è uno strumento con un'interfaccia di comando basata su una console che ci consente di comunicare tramite questi comandi con il nostro sistema. Come indica il nome, è una Shell che consente la comunicazione tra il PC e l'utente, offrendoci un'interfaccia di interazione. Per sua natura, il suo utilizzo avviene fondamentalmente attraverso la tastiera e l'input di testo. Windows PowerShell è nato come una soluzione più potente e meno restrittiva rispetto a quella offerta da altre Shell come il Prompt dei comandi.
Come amministratori è davvero utile conoscere sia il Prompt dei comandi che Windows PowerShell per regolare qualsiasi elemento interno. Uno dei vantaggi di PowerShell è che ci consente di automatizzare processi e attività e quindi facilitare le attività che vogliamo eseguire. Con gli utili script o comandi di PowerShell più utilizzati in PowerShell possiamo eseguire facilmente le attività di Windows 10 e con autorizzazioni di amministratore complete.
Differenze tra PowerShell e CMDLa principale differenza tra il prompt dei comandi e PowerShell è che quest'ultimo può eseguire tutto in cmd e anche attività più complesse che espandono notevolmente le sue possibilità.
Con Windows Powershell possiamo accedere agli elementi di base di cmd e ad altri aspetti interni più complessi dei nostri computer. WPowerShell si comporta anche come un potente ambiente di gestione degli script che semplifica le nostre attività. Ha anche la possibilità di esecuzione del controllo remoto. A causa della sua complessità, è normale coprire PowerShell per un pubblico più professionale e cmd per uno più standard.
Successivamente, vedremo un elenco di comandi che saranno utili quando lavoriamo con PowerShell. Ti suggeriamo anche il video tutorial per aprire Windows PoerShell:
1. Comandi comunemente usati in PowerShell
1. Sfoglia il registro di Windows come se fosse una directory di file
È una funzione che non molti conoscono per impostazione predefinita e cioè che puoi navigare nei registri di Windows usando il PS.
PS C: \ Users \ jcarrillo> cd hkcu: PS HKCU: \> ls
Hive: HKEY_CURRENT_USER SKC VC Name Property --- - ---- -------- 2 0 AppEvents {} 0 36 Console {ColorTable00, ColorTable01, ColorTab… 13 0 Pannello di controllo {} 0 2 Ambiente {TEMP , TMP} 4 0 EUDC {} 1 6 Identità {Identity Ordinal, Migrated7, Last Us… 3 0 Layout tastiera {} 2 0 Layout {} 0 0 Rete {} 3 0 Stampanti {} 37 0 Software {} 1 0 Sistema { } 1 8 Ambiente volatile {LOGONSERVER, USERDOMAIN, USERNAME, U…
2. Cerca tra i file incluse le sottocartelle
Possiamo eseguire una ricerca in PowerShell e questo si applica a tutte le sottodirectory esistenti e se cerchiamo la radice cercherà l'intera partizione.
dir -r | seleziona la stringa "quebuscar"
3. TOP 5 Processi con il maggior consumo
Possiamo vedere quali sono i processi che consumano più memoria nel sistema.
- ps | sort -p ws | seleziona -ultimi 5
4. Riavvia il servizio
Possiamo fare uno stop al servizio e poi ricominciare molto utile.
- Riavvia-Servizio DHCP
5. Elenca gli elementi della directory
Elenchiamo tutti gli elementi in una directory:
- Get-ChildItem - Force
6. Cerca più siti contemporaneamente
Cerchiamo in una serie di directory o cartelle:
- Get-ChildItem -Force c: \ directory -Recurse
7. Elimina i file PowerShell
Elimina tutti i file con Powershell in una directory senza chiedere conferma in ognuno di essi.
Rimuovi-Elemento C: \ tobedeleted -Recurse
8. Riavvia la macchinaComando per riavviare la macchina direttamente con Powershell.
(Get-WmiObject -Class Win32_OperatingSystem -ComputerName.) Win32Shutdown (2)
Ora passiamo alla raccolta delle informazioni di sistema con PowerShell.
2. Comandi PowerShell Informazioni di sistema
9. Informazioni sull'hardware
Ottiene le informazioni del sistema in uso.
Get-WmiObject -Class Win32_ComputerSystem
10. Informazioni sul BIOS
Elenca il tipo di BIOS di sistema in uso con il seguente comando:
Get-WmiObject -Class Win32_BIOS -ComputerName
11 Aggiornamenti di sistema
Elencare tutti gli aggiornamenti di Windows installati sul sistema includono i file QFES o Windows Update.
Get-WmiObject -Class Win32_QuickFixEngineering -ComputerName.
12. Utente in linea
Mostra l'utente che ha effettuato l'accesso al sistema.
Get-WmiObject -Class Win32_ComputerSystem -Property UserName -ComputerName
13. Applicazioni installate
Mostra un elenco con tutte le applicazioni installate con solo nome senza descrizione:
Get-WmiObject -Class Win32_Product -ComputerName. | A livello di formato -Colonna 1
14. Mostra IP
Mostra tutti gli IP associati alla macchina fisica o virtuale.
Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled = TRUE -ComputerName. | Format-Table -Proprietà IPAddress
15. Maggiori informazioni sulla rete
Otteniamo più informazioni come l'interfaccia associata e il DNS.
Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled = TRUE -ComputerName. | Select-Object -Property [a-z] * -ExcludeProperty IPX *, WINS *
16. NIC con DHCP
Mostra le interfacce di rete configurate in DHCP che sono abilitate.
Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter "DHCPEnabled = true" -ComputerName
17. Abilita interfacce in DHCP
Abilita le interfacce che sono in DHCP nel sistema con Powershell.
Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled = true -ComputerName. | ForEach-Object -Processo {$ _. EnableDHCP ()}
Passiamo ora all'amministrazione delle applicazioni, argomento molto interessante e richiesto.
3. Gestione delle applicazioni PowerShell
18. Installa i pacchetti in remoto
Installa un pacchetto MSI su un computer remoto.
(Get-WMIObject -ComputerName TARGETMACHINE -List | Where-Object -FilterScript {$ _. Name -eq "Win32_Product"}). Installa (\ MACHINEWHEREMSIRESIDES \ percorso \ pacchetto.msi)
19. Aggiorna un pacchetto da remoto
Aggiorniamo un pacchetto MSI su un computer remoto.
(Get-WmiObject -Class Win32_Product -ComputerName. -Filter "Name = 'name_of_app_to_be_upgraded'"). Aggiornamento (\ MACHINEWHEREMSIRESIDES \ path \ upgrade_package.msi)
20. Rimuovere un pacchetto MSI
Rimuoviamo/cancelliamo un pacchetto con estensione MSI dalla macchina in uso.
(Get-WmiObject -Class Win32_Product -Filter "Name = 'product_to_remove'" -ComputerName.) .Uninstall ()
21. Spegnimento remoto
Possiamo anche spegnere una macchina remota usando questo comando:
Inizio-Sonno 60; Riavvia-Computer -Force -NomeComputerTARGETMACHINE
22. Aggiungi stampanti
Aggiungi una stampante al nostro computer ma prima deve essere riconosciuta installando i driver necessari.
(New-Object -ComObject WScript.Network) .AddWindowsPrinterConnection ("\ printerserver \ hplaser3")
23. Elimina la stampante con PowerShell
Eliminare/rimuovere una stampante dal nostro computer è importante sapere che non disinstalla i driver.
Rimuovere una stampante - (New-Object -ComObject WScript.Network) .RemovePrinterConnection ("\ printerserver \ hlaser3")
24. Inserisci un PowerShell remoto
Possiamo inserire un PowerShell di una macchina remota ma prima dobbiamo avere la gestione remota abilitata.
enter-pssession TARGETMACHINE
25. Esegui script in remoto
Finalmente possiamo invocare uno script su un computer remoto ed è uno dei più interessanti.
invocare-comando -computername machine1, machine2 -filepath c: \ Script \ script.ps1
4. Gestire i file PowerShell
26.Elenco dei comandi secondo un parametroAll'interno degli asterischi inseriremo il parametro con cui vogliamo filtrare i risultati. In questo caso vedremo tutti i comandi che includono -service.
Get-Command * parametro * Get-Command * -service *
27. Esegui uno scriptCon questo comando possiamo eseguire uno script da PowerShell potendo anche avviare una funzione tramite una variabile. Puoi fornire un'espressione. È necessario includere il comando e quindi il comando o l'espressione.
Espressione Invoke-Expression Espressione Invoke-Expression c: \ scripts \ analysis.ps1
28. Cambia livello di sicurezzaAll'interno di Powershell ci sono alcune restrizioni di sicurezza che limitano determinate azioni, sebbene possiamo svolgere determinate attività come lavorare con lo script. Per modificare il livello di sicurezza utilizzeremo il seguente comando che deve essere accompagnato dai 4 livelli possibili: Restricted, Remote Signed, All Signed o Unrestricted
Set-ExecutionPolicy -ExecutionPolicy limitato
29. Trova informazioni in una posizioneCon il seguente comando possiamo ottenere informazioni specifiche in un percorso specifico come un file. Scriveremo il comando insieme al percorso o alla stringa e ai parametri. Se vogliamo che gli elementi che iniziano con P vengano lanciati nella directory corrente, useremo quanto segue:
Ottieni-Articolo P *
30. Copia file e directoryCon il seguente comando possiamo copiare elementi all'interno del tuo disco e persino chiavi di registro, è simile al comando CMD cp. Questo stesso comando può essere utilizzato per copiare e modificare contemporaneamente il nome dei file. Copiamo e rinominiamo in un test usando il comando copy-item
Copia-Elemento "probando.jpg.webp" -Destinazione "C: \ Varios \ probando2.jpg.webp"
31. Visualizza il contenuto del filePuoi con il seguente comando het-content vedere cosa contiene un file di estensione di testo senza doverlo aprire con un programma, ma da Powershell stesso. Con il parametro -TotalCount gli diciamo il numero di righe che vogliamo mostrare, in questo caso 25.
Get-Content "C: \ Users \ Solvetic \ Desktop \ texttest.txt" -TotalCount 25
5. Visualizza utenti PowerShell
32. Visualizza le informazioni dell'utenteCon questo comando possiamo elencare le informazioni sugli utenti nel nostro sistema:
Get-LocalUser
33. Informazioni specifiche per l'utentePer vedere le informazioni in modo basilare su un utente utilizzeremo quanto segue:
Get-LocalUser -Nome nome utente
34. Informazioni complete sull'utenteSe quello che vogliamo sono tutte le informazioni su un utente, useremo il seguente comando:
Get-LocalUser -Nome nome utente | fl
6. Visualizza gruppi PowerShell
Per visualizzare i comandi per visualizzare le informazioni sui gruppi utilizzando i comandi di PowerShell.
35. Visualizza i gruppi PowerShellPer vedere tutti i gruppi all'interno del sistema utilizzeremo:
Get-LocalGroup
36. Informazioni specifiche sul gruppoSe desideriamo solo informazioni su un determinato gruppo, utilizzeremo:
Get-LocalGroup -Nome nomegruppo
37. Informazioni complete sul gruppoSe desideriamo informazioni più complete su un gruppo, utilizzeremo:
Get-LocalGroup -Name nomegruppo | fl
7. Visualizza i dischi PowerShell
Per visualizzare i comandi per visualizzare le informazioni sui dischi utilizzando i comandi di PowerShell abbiamo questi esempi:
38. Visualizza i dischi PowershellPer vedere tutti i dischi all'interno del sistema utilizzeremo:
Get-Disk
39. Informazioni specifiche sul discoSe desideriamo solo informazioni su un determinato disco, utilizzeremo:
Get-Disk -Number disk_number | fl
40. Informazioni complete sul discoSe desideriamo informazioni più complete su un disco di sistema utilizzeremo:
Get-Partition -DiskNumber numero_disco
Sono stati elencati i comandi di Windows 10 PowerShell che possono facilitare molte attività come amministratore da attività come l'esplorazione di una directory a un po' più complicate come l'abilitazione di una NIC con DHCP. È un elenco di comandi che possono essere utilizzati nelle attività in generale, se hai suggerimenti o altri comandi interessanti, non esitare a lasciarli nei commenti.