Cheatography
https://cheatography.com
Basic powershell cheat sheet
This is a draft cheat sheet. It is a work in progress and is not finished yet.
Définitions
Cmlets |
Commandes intégrées dans un shell écrit en .NET. |
Comparaison 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"
|
Synchroniser deux répertoires
# 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-PSSession Server01 |
Ouvrir une session interactive. |
Exit-PSSession |
Fermer une session interactive. |
Invoke-Command -ComputerName Server01, Server02 -ScriptBlock {Get-UICulture} |
Invoquer une commande à distance. |
Invoke-Command -ComputerName Server01, Server02 -FilePath C:\Scripts\script.ps1 |
Exécuter une commande à distance. |
$s = New-PSSession -ComputerName Server01, Server02 Invoke-Command -Session $s {$h = Get-HotFix} Import-PSSession -Session $session |
Etablir une connexion persistante. |
|
|
Commandes Basiques
pwsh |
Lancer powershell sur Linux. |
Set-ExecutionPolicy -ExecutionPolicy Unrestricted |
A exécuter en administrateur, permet l'exécution de scripts. |
Get-Help commande |
Equivalent de man, permet d'affiche l'aide concernant une commande. |
Get-Command -Name *ip* |
Permet de cherche une commande. |
Get-Uptime | Get-Member |
Permet de lister toutes les méthodes disponibles pour une commande. |
Select-Object objet1,objet2 |
Permet de filtrer des données d'un objet. |
Get-ChildItem -Path “chemin” |
Permet de lister les fichiers et répertoires d'un dossier. |
Invoke-WebRequest -Uri "url" -OutFile "chemin de sortie" |
Permet de télécharger un fichier à partir d'internet. |
Resolve-DnsName "nom de domaine" |
Equivalent au nslookup. |
Test-Connection ip -ComputerName nom ordinateur -Count 3 |
Equivalent au ping, ip ou nom d'ordinateur à utiliser. |
Get-HotFix |
Récupère la liste des mises à jour. |
Gestion Utilisateurs
New-LocalUser |
Permet de créer un nouvel utilisateur local. |
Get-LocalUser |
Permet de lister les utilisateurs locaux existants sur le système. |
Set-LocalUser |
Permet de modifier les paramètres d'un utilisateur local existant. |
Remove-LocalUser |
Permet de supprimer un utilisateur local existant. |
New-LocalGroup |
Permet de créer un nouveau groupe local. |
Get-LocalGroup |
Permet de lister les groupes locaux existants sur le système. |
Add-LocalGroupMember |
Permet d'ajouter un utilisateur à un groupe local existant. |
Remove-LocalGroupMember |
Permet de supprimer un utilisateur d'un groupe local existant. |
Set-LocalGroup |
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
userpassword = (ConvertTo-SecureString "bwah" -AsPlainText -Force) New-LocalUser "test" -Password $userpassword Add-LocalGroupMember -Group "Utilisateurs" -Member "test" |
Créer un utilisateur test avec comme mot de passe bwah. Il faut toujours préciser le groupe. |
New-Item -Path "HKCU:\Nom" Set-ItemProperty -Path $reg_key_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:\Users\admin\Documents" -Name "List1.txt" -Value "PC1`nPC2`nPC5" |
Création de fichier. |
Get-ChildItem -Path registery::\HKEY_CURRENT_USER\Console |
Afficher des données de la base registre. |
Get-Process "a" | Select-Object Name,CPU | Format-Table Name, CPU |
Exemple de grosse commande. |
Gestion Services & Tâches
Get-ScheduledTask |
Permet de lister les tâches planifiées existantes sur le système. |
New-ScheduledTask |
Permet de créer une nouvelle tâche planifiée. |
Set-ScheduledTask |
Permet de modifier les paramètres d'une tâche planifiée existante. |
Remove-ScheduledTask |
Permet de supprimer une tâche planifiée existante. |
Get-Service |
Permet de lister les services installés sur le système. |
Start-Service |
Permet de démarrer un service. |
Stop-Service |
Permet d'arrêter un service. |
Restart-Service |
Permet de redémarrer un service. |
Set-Service |
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
|
|