Aide sur les commandes principales de Powershell

powershell -ExecutionPolicy Bypass -File .\myscript.ps1
Get-Help Command-Name
Get-Help Get-Command -Examples
Get-Command Verb-* ou Get-Command *-Noun #recherche de cmdlets

Manipulation d’objets

le Pipe permet de passer un objet à un autre cmdlet
Verb-Noun | Get-Member
ex. Get-Command | Get-Member -MemberType Method #retrouve les méthodes d’une cmdlet
ex. (Get-Command Get-ChildItem).Parameter #retrouve les paramètres d’une cmdlet

Get-ChildItem | Select-Object -Property Mode, Name #liste les répertoires en sélectionnant le mode et le nom

Filtration d’objets

Format-List (fl) permet d’obtenir davantage d’informations à propos des objets

dir | Format-List

Out-File peut être utilisé pour sauvegarder la sortie vers un fichier

Get-HotFix | Out-File hotfix.txt

Get-Service | Where-Object -Property Status -eq Stopped #visualiser les services arrêtés

Tri

Get-ChildItem | Sort-Object

Quelques commandes powershell utiles:

Get-ChildItem -Path C:\ -Include *interesting-file.txt* -File -Recurse -ErrorAction SilentlyContinue #trouver le fichier interesting-file.txt dans l’arborescence

Get-Content “C:\Program Files\interesting-file.txt.txt” #affiche le contenu du fichier

Get-Command | Where-Object -Parameter CommandType -eq Cmdlet | measure #déterminer le nombre total de cmdlet (ne compte pas les CommandType Alias)

Get-FileHash -Path “C:\Program Files\interesting-file.txt.txt” -Algorithm MD5 #calcule le hash d’un fichier

Copy-Item source destination #copie un ou des fichiers

Move-Item source destination #déplace un fichier

Get-FileHash -Algorithm SHA256 fichier #calcule le hash d’un fichier

Get-Location #répertoire de travail actuel

Get-Location -Path “C:\Users\Administrator\Documents\Passwords” #vérifie si un répertoire existe

Invoke-WebRequest # cmdlet pour faire une requête à un serveur

certutil -decode “C:\Users\Administrator\Desktop\b64.txt” out.txt #decode le contenu en base64 d’un fichier

Get-LocalUser #Liste des usagers

Get-LocalUser | Where-Object -Property PasswordRequired -Match false #Liste les usagers dont un mot de passe n’est pas requis

Get-LocalGroup # Liste les groupes locaux

Get-NetIPAddress #information sur l’adresse IP

GEt-NetTCPConnection | Where-Object -Property State -Match Listen #Liste les ports ouverts

Get-Hotfix #patches installées

Get-Hotfix -Id KB4023834 #information sur la patch

Get-ChildItem C:\* -Recurse | Select-String -pattern API_KEY #recherche des fichiers avec “API_KEY” dans le contenu

Get-Process #Liste des processus

Get-ScheduleTask #Tâches schédulées

Get-Acl c:/ #Propriétaire d’un répertoire

Script simple pour vérifier si certains ports sont ouverts sur notre machine


$system_ports = Get-NetTCPConnection -State Listen

$text_port = Get-Content -Path C:\Users\Administrator\Desktop\ports.txt

foreach($port in $text_port){
    if($port -in $system_ports.LocalPort){
        echo $port
     }
}

Ping plusieurs adresses IP
1..15 | %{echo "10.0.2.$_"; ping -n 1 10.0.2.$_ | Select-String ttl}

Script powershell pour la gestion des archives zip

Compress-Archive -Path C:\Invoices -DestinationPath C:\Archives\Invoices #zipper un répertoire
Compress-Archive -LiteralPath C:\ Invoices\File1.txt, C:\Invoices\File2.txt -DestinationPath C:\Archives\Invoices -Force #zipper des fichiers
Compress-Archive -Path C:\Invoices\* -Update -DestinationPath C:\Archives\Invoices #ajoute des fichiers l'archive invoices.zip
Expand-Archive -LiteralPath C:\Archives\Invoices.Zip -DestinationPath C:\ InvoicesUnzipped #extrait les fichiers de l'archive zip

Leave a Reply