Skip to content

Powershell

Powershell est un shell puissant développé par Microsoft pour remplacer l'ancien interpréteur de commandes de Windows hérité du DOS.

Il existe deux versions : - Powershell et Windows Powershell version 5.x - Powershell Core 7.x

Voici quelques commandes utiles que j'étofferai au fur et à mesure.

Installer ou mettre à jour Powershell Core (7.x)

iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI -Quiet"

Mettre à jour un module Powershell et le recharger dans la session courante

Update-module modulename; remove-module modulename -ErrorAction SilentlyContinue; import-module modulename

Tester la connexion à un port TCP (équivalent telnet)

Test-NetConnection -ComputerName "www.contoso.com" -Port 80
https://docs.microsoft.com/en-us/powershell/module/nettcpip/test-netconnection?view=windowsserver2022-ps

Ou plus manuel :

$servers = 'toto'
$portToCheck = '80'

foreach ($server in $servers) {
    If ( Test-Connection $server -Count 1 -Quiet) {
        try {
            $null = New-Object System.Net.Sockets.TCPClient -ArgumentList $server,$portToCheck
            $props = @{
                Server = $server
                PortOpen = 'Yes'
            }
        }
        catch {
            $props = @{
                Server = $server
                PortOpen = 'No'
            }
        }
    }
    Else {
        $props = @{
            Server = $server
            PortOpen = 'Server did not respond to ping'
        }
    }
    New-Object PsObject -Property $props
}

Générer de la charge CPU

En utilisant le plus grand nombre positif integer 32bits, calcule sa factorielle pour générer 100% CPU utilisation ... 2 milliards de fois :

foreach ($loopnumber in 1..2147483647) {$result=1;foreach ($number in 1..2147483647) {$result = $result * $number};$result}

Changer son mot de passe AD

$oldpass = Get-Credential
$newpass = Get-Credential
Set-ADAccountPassword -Identity username -OldPassword $oldpass.Password -NewPassword $newpass.Password
L'ancienne commande est toujours utilisable :
runas /user:domain\username "net user /domain username *"

Calculer le hash d'un fichier

Get-FileHash C:\Users\user1\Downloads\Contoso8_1_ENT.iso
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/get-filehash

Créer un listener sur un port TCP

$Listener = [System.Net.Sockets.TcpListener]8080;
$Listener.Start();
#wait, try connect from another PC etc.

while($true) 
{
    $client = $Listener.AcceptTcpClient();
    Write-Host "Connected!";
    #$client.Close();
}
#$Listener.Stop(); 

Grep

sls something .\file.txt -ca
Select-string something .\file.txt -ca
https://communary.net/2014/11/10/grep-the-powershell-way/


Last update: September 26, 2023
Created: September 25, 2023