Show Menu
Cheatography

Basic Powershell Cheat Sheet Cheat Sheet (DRAFT) by

Basic powershell cheat sheet

This is a draft cheat sheet. It is a work in progress and is not finished yet.

Défini­tions

Cmlets
Commandes intégrées dans un shell écrit en .NET.

Compar­aison deux fichiers

# Chemin des fichiers à comparer
$file1 = "C:\Users\admin\Documents\List1.txt"
$file2 = "C:\Users\admin\Documents\List2.txt"

# Date du rapport
$date = Get-Date -Format "dd/MM/yyyy"

# Charger les listes d'ordinateurs dans des variables
$list1 = Get-Content $file1
$list2 = Get-Content $file2

# Comparer les listes d'ordinateurs
$diff1 = $list2 | Where-Object {$_ -notin $list1}
$diff2 = $list1 | Where-Object {$_ -notin $list2}

# Générer le rapport
Write-Host "Rapport de comparaison le $date"

if ($diff1) {
	Write-Host "Ces ordinateurs ne sont pas dans $file1"
	Write-Host ($diff1 -join "`n")
	Write-Host " "
}

if ($diff2) {
	Write-Host "Ces ordinateurs ne sont pas dans $file2"

Synchr­oniser deux répert­oires

# Spécifiez les chemins des répertoires source et destination
$chemin_source = "C:\Users\admin\Documents\Dossier1"
$chemin_destination = "C:\Users\admin\Documents\Dossier2"

# Parcourez tous les fichiers du répertoire source
Get-ChildItem $chemin_source -Recurse | ForEach-Object {
	# Vérifiez si le fichier existe déjà dans le répertoire de destination
	$fichier_destination = $_.FullName.Replace($chemin_source, $chemin_destination)
      # Remplace le chemin du fichier C:\Users\admin\Documents\Dossier1\example.txt par C:\Users\admin\Documents\Dossier2\example.txt
	if (!(Test-Path $fichier_destination)) {
    	# Si le fichier n'existe pas dans le répertoire de destination, copiez-le
    	Copy-Item $_.FullName $fichier_destination
	}
}

Sessions distantes

Enter-­PSS­ession Server01
Ouvrir une session intera­ctive.
Exit-P­SSe­ssion
Fermer une session intera­ctive.
Invoke­-Co­mmand -Compu­terName Server01, Server02 -Scrip­tBlock {Get-U­ICu­lture}
Invoquer une commande à distance.
Invoke­-Co­mmand -Compu­terName Server01, Server02 -FilePath C:\Scr­ipt­s\s­cri­pt.ps1
Exécuter une commande à distance.
$s = New-PS­Session -Compu­terName Server01, Server02
Invoke­-Co­mmand -Session $s {$h = Get-HotFix}
Import­-PS­Session -Session $session
Etablir une connexion persis­tante.
 

Commandes Basiques

pwsh
Lancer powershell sur Linux.
Set-Ex­ecu­tio­nPolicy -Execu­tio­nPolicy Unrest­ricted
A exécuter en admini­str­ateur, permet l'exéc­ution de scripts.
Get-Help commande
Equivalent de man, permet d'affiche l'aide concernant une commande.
Get-Co­mmand -Name *ip*
Permet de cherche une commande.
Get-Uptime | Get-Member
Permet de lister toutes les méthodes dispon­ibles pour une commande.
Select­-Object objet1­,objet2
Permet de filtrer des données d'un objet.
Get-Ch­ildItem -Path “chemin”
Permet de lister les fichiers et répert­oires d'un dossier.
Invoke­-We­bRe­quest -Uri "­url­" -OutFile "­chemin de sortie­"
Permet de téléch­arger un fichier à partir d'inte­rnet.
Resolv­e-D­nsName "nom de domain­e"
Equivalent au nslookup.
Test-C­onn­ection ip -Compu­terName nom ordinateur -Count 3
Equivalent au ping, ip ou nom d'ordi­nateur à utiliser.
Get-HotFix
Récupère la liste des mises à jour.

Gestion Utilis­ateurs

New-Lo­calUser
Permet de créer un nouvel utilis­ateur local.
Get-Lo­calUser
Permet de lister les utilis­ateurs locaux existants sur le système.
Set-Lo­calUser
Permet de modifier les paramètres d'un utilis­ateur local existant.
Remove­-Lo­calUser
Permet de supprimer un utilis­ateur local existant.
New-Lo­cal­Group
Permet de créer un nouveau groupe local.
Get-Lo­cal­Group
Permet de lister les groupes locaux existants sur le système.
Add-Lo­cal­Gro­upM­ember
Permet d'ajouter un utilis­ateur à un groupe local existant.
Remove­-Lo­cal­Gro­upM­ember
Permet de supprimer un utilis­ateur d'un groupe local existant.
Set-Lo­cal­Group
Permet de modifier les paramètres d'un groupe local existant.

Remplacer du texte

$search = 'zob'
$replace = 'bwah'
$path = 'C:*.txt'


(Get-Content -Path $path ) -replace $search,$replace | Set-Content -path $path
 

Exemples

userpa­ssword = (Conve­rtT­o-S­ecu­reS­tring "­bwa­h" -AsPla­inText -Force)
New-Lo­calUser "­tes­t" -Password $userp­assword
Add-Lo­cal­Gro­upM­ember -Group "­Uti­lis­ate­urs­" -Member "­tes­t"
Créer un utilis­ateur test avec comme mot de passe bwah. Il faut toujours préciser le groupe.
New-Item -Path "HKCU:\Nom"
Set-It­emP­roperty -Path $reg_k­ey_path -Name Value1 -Value 1 -Type DWORD/­String
Créer notre propre clé de registre. Choisir un des deux types, DWORD = hexadé­cimale, String = texte.
Import­-Module C:\Users\admin\Documents\mon-module.psm1
Remove­-Module mon-module
Création de son module.
On créer un fichier .psm
New-Item -Path "­C:­\Use­rs­\adm­in­\Doc­ume­nts­" -Name "­Lis­t1.t­xt­" -Value "­PC1­`nP­C2`­nPC­5"
Création de fichier.
Get-Ch­ildItem -Path regist­ery­::­\HKE­Y_C­URR­ENT­_US­ER­\Console
Afficher des données de la base registre.
Get-Pr­ocess "a" | Select­-Object Name,CPU | Format­-Table Name, CPU
Exemple de grosse commande.

Gestion Services & Tâches

Get-Sc­hed­ule­dTask
Permet de lister les tâches planifiées existantes sur le système.
New-Sc­hed­ule­dTask
Permet de créer une nouvelle tâche planifiée.
Set-Sc­hed­ule­dTask
Permet de modifier les paramètres d'une tâche planifiée existante.
Remove­-Sc­hed­ule­dTask
Permet de supprimer une tâche planifiée existante.
Get-Se­rvice
Permet de lister les services installés sur le système.
Start-­Service
Permet de démarrer un service.
Stop-S­ervice
Permet d'arrêter un service.
Restar­t-S­ervice
Permet de redémarrer un service.
Set-Se­rvice
Permet de modifier les paramètres d'un service.

Gestion carte réseau

$ip = '192.168.1.4'
$masque = 24
$passerelle = '192.168.1.2'
$dns = '8.8.8.8'


Set-NetIPInterface -InterfaceAlias Ethernet -Dhcp Disabled
New-NetIPAddress -InterfaceAlias Ethernet -IPAddress $ip -PrefixLength $masque -DefaultGateway $passerelle
Set-DnsClientServerAddress -interfaceAlias Ethernet -ServerAddresses $dns