GERBELOTBARILLON.COM

Parce qu'il faut toujours un commencement...

Cheat Sheet Powershell

Active Directory

Préambule

Toutes les commandes de la cheat sheet feront mention à des domaines et des noms de serveurs. En voici le détail :

Cheat Sheet AD en Powershell

Ajouter un ordinateur dans un domaine

Add-Computer -DomaineName mondomaine.local
Restart-Computer

Auditer les mots de passe AD

Le prérequis sera de disposer d'un fichier de mots de passe avec un mot de passe par ligne. Il en existe un certain nombre sur Internet...
Install-Module -Name DSInternals
Import-Module DSInternals
$dictFile = "c:\scripts\passwordlist.txt"
$DC = "SRV-DC"
$Domain = "DC=mondomaine,DC=local"

# Auditer avec un dictionnaire
# Get-ADReplAccount nous retourne le hash du password que nous comparons avec la commande qui suit le '|' (pipe)
Get-ADReplAccount -All -Server $DC -NamingContext $Domain | Test-PasswordQuality -WeakPasswordsFile $dictFile -IncludeDisabledAccounts

Créer un domaine AD


Import-Module ADDSDeployment

Install-ADDSForest `
-CreateDnsDelegation:$false `
-DatabasePath "C:\Windows\NTDS" `
-DomainMode "WinThreshold" `
-DomainName "mondomaine.local" `
-DomainNetbiosName "MONDOMAINE" `
-ForestMode "WinThreshold" `
-InstallDns:$true `
-LogPath "C:\Windows\NTDS" `
-NoRebootOnCompletion:$false `
-SysvolPath "C:\Windows\SYSVOL" `
-Force:$true
            

Les GPO

Les GPO sont généralement rencontrées pour ces usages : Elles s'appliquent selon le principe LSDOU : C'est la GPO la plus proche de l'objet ciblé qui sera effective. Par exemple, une GPO bloquante sur le domaine mais non bloquante sur une OU. Dans ce cas, la GPO de l'OU viendra recouvrir la GPO du domaine. Il est possible de créer une exception à ce comportement en activant le paramètre "Appliquer" (ou "Enforced") sur la GPO,

Gestion des groupes locaux

Affichage des groupes locaux :

Get-LocalGroup
Ajout d'un groupe local :
New-LocalGroup -Name "nom-du-groupe" -Description "Description du groupe"

Et si l'on souhaite ajouter un groupe local sur un serveur joint à un domaine, il suffit de créer une GPO dans Configuration ordinateur / Préférences / Paramètres du panneau de configuration / Utilisateurs et groupe locaux. Faire un clic droit > Nouveau > Groupe local. Indiquer le nom du groupe et validez la GPO. Appliquez-la sur l'OU souhaitée contenant des ordinateurs. Ainsi le groupe sera automatiquement créé ou recréé sur les postes inscrits dans cette OU.

Afficher le contenu d'un fichier

Nous avons l'habitude d'utiliser les commandes more ou cat pour lister le contenu d'un fichier. Powershell dispose également de ces commandes avec la possibilité d'ajouter des fonctionnalités des commandes tail et head.

$ Get-Content fichier.txt # affiche le contenu du fichier
$ Get-Content fichier.txt -TotalCount 5 # affiche les 5 premières lignes du fichier
$ Get-Content fichier.txt -Tail 3 # affiche les 3 dernières lignes du fichier

Installer l'éditeur nano

Sur Linux nous avons les éditeurs vim, emacs, ou nano pour éditer du texte directement dans l'interface du terminal. Microsoft n'en dispose actuellement pas. Mais il est possible d'installer nano avec Chocolatey.

$ iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
$ choco install nano -y
$ nano