Powershell

Powershell: Active Directory

Powershell: Active Directory

By ronan, 28 janvier, 2025

Quelques commandes utiles permettant d'interroger un annuaire Active Directory

Dans un premier temps, importer le module

PS > Import-Module ActiveDirectory

Exporter les utilisateurs (uniquement les actifs)

PS > Get-ADUser -Properties * -Filter { enabled -eq "True" }

Exporter les ordinateurs (seulement les propriétés indiquées)

PS > Get-ADComputer -Properties Name,OperatingSystem,LastLogonDate,ms-Mcs-AdmPwd,description,ipv4address -Filter *

Rechercher un utilisateur en particulier

PS > Get-ADUser uguilbert -Properties *

Idem pour un ordinateur

PS > Get-ADComputer L67BE4619ZGJR3V4V -Properties *

Si une authentification spécifique est nécessaire

Tout d'abord, créer un mot de passe sécurisé - Tout est expliqué ici

Exemple d'un script utilisant un user et un mot de passe spécifique pour interroger l'AD

$key = Get-Content -Path ".mykey" -Encoding Byte
$user = "gillesdidier"
$password = "76492d1116743f0423413b16050a5345MgB8AGMAZABXAHgAOQBWAHoAcgBXADUAcABJAEkAQQBVAGIAMQA1AGsAYgBuAHcAPQA9AHwAMAAxADcANABjADgAMQAwADMAOQBhADIAZQBkAGIAZAA3ADQAYgA2AGQAMQBhADEAZgAxADkAMwBjADEAOQA4ADUANABjADUANgBmAGUAMgA2ADMAMwAxADEAYQAwAGIAYwBkADUAOAAwADMAZAA4AGEAOQBhADcANQA4ADUAMQBiAGIAOQA2ADkANABiADAAMAA4ADgAMgA2AGEANgAyADAAZgBjADkAOQAwAGEAMQAyADcAZQA2AGEAMgBjAGUA" | ConvertTo-SecureString -Key $key
$creds = New-Object System.Management.Automation.PSCredential($user,$password)
Import-Module ActiveDirectory
Get-ADUser -Credential $creds -Properties * -Filter { enabled -eq "True" }

La variable $key contient le contenu du fichier .mykey

La variable $password est égale au mot de passe sécurisé grâce à la clé .mykey 

Etiquettes

Powershell: Sécuriser un mot de passe

Powershell: Sécuriser un mot de passe

By ronan, 28 janvier, 2025

Pour sécuriser un mot de passe afin de l'utiliser dans des scripts Powershell, exécuter les étapes suivantes

Générer la clé avec des données aléatoires

PS > $key = (1..32 | ForEach-Object { Get-Random -Minimum 0 -Maximum 256 }) -as [byte[]]

Sauvegarder la clé dans un fichier caché qui devra être accessible par les scripts concernés

PS > [System.IO.File]::WriteAllBytes(".mykey", $Key)

Bien évidement, cette clé devra rester secrète

PS > Get-Content .mykey
¥l{}ƒ)’´Yrz’¸¯>°'ÈH'­y¼ò/Àp↕Ž

Première étape de sécurisation du mot de passe

PS > $monmotdepasse = "ceciestmonmotdepasse" | ConvertTo-SecureString -AsPlainText -Force
PS > $monmotdepasse
System.Security.SecureString

Seconde étape de sécurisation du mot de passe

PS > $monmotdepassesecurise = $monmotdepasse | ConvertFrom-SecureString -Key $key
PS > $monmotdepassesecurise
76492d1116743f0423413b16050a5345MgB8AGMAZABXAHgAOQBWAHoAcgBXADUAcABJAEkAQQBVAGIAMQA1AGsAYgBuAHcAPQA9AHwAMAAxADcANABjADgAMQAwADMAOQBhADIAZQBkAGIAZAA3ADQAYgA2AGQAMQBhADEAZgAxADkAMwBjADEAOQA4ADUANABjADUANgBmAGUAMgA2ADMAMwAxADEAYQAwAGIAYwBkADUAOAAwADMAZAA4AGEAOQBhADcANQA4ADUAMQBiAGIAOQA2ADkANABiADAAMAA4ADgAMgA2AGEANgAyADAAZgBjADkAOQAwAGEAMQAyADcAZQA2AGEAMgBjAGUA

Cette chaine de caractères devra être copiée/collée dans tous les scripts Powershell concernés.

Etiquettes