Pour exécuter les commandes PowerShell relatives à Active Directory (Get-ADUser
, Get-ADComputer
, Get-ADGroup
, New-ADUser
, etc.), il est nécessaire que le module PowerShell soit présent sur l’ordinateur. Il y a pour cela deux méthodes :
- via l’installation du module PowerShell Active Directory. L’installation dépend de votre version Windows
- via l’import du module via une PSSession. C’est une méthode peu connue mais très pratique quand vous ne pouvez pas installer sur le PC. Ceci est présenté en fin d’article
Méthode 1 : Installation module PowerShell AD
Prérequis
Le module nécessite d’avoir .NET Framework 3.5. Pour les nouvelles versions de Windows, vous pouvez l’activer avec :
dism /online /Enable-Feature /FeatureName:"NetFx3"
Windows 10 1810 et supérieur
Pour les éditions clientes à partir de Windows 10 octobre 2018 (Windows 1810), installer les outils d’administration de serveur distant (RSAT) AD avec Add-WindowsCapability
via PowerShell en tant qu’admin :
Get-WindowsCapability -Name Rsat.ActiveDirectory* -Online | Add-WindowsCapability -Online
Si vous obtenez l’erreur 0x800f0954, installer .NET Framework 3.5.
Windows 10 1803 et inférieur
Pour les éditions clientes Windows 7/8/8.1 et Windows 10 1803 et inférieur il faut tout d’abord installer les RSAT selon votre version et redémarrer votre poste. Ou alors vous pouvez utiliser DISM :
dism /Online /Enable-Feature /FeatureName:RemoteServerAdministrationTools-Roles-AD-Powershell
Windows Server 2012/2012R2/2016/2019
# 2012 R2 - 2016 - 2019
Install-WindowsFeature RSAT-AD-PowerShell
# 2012
Add-WindowsFeature RSAT-AD-PowerShell
Charger le module
Enfin, après l’installation du module AD, le module se chargera automatiquement à chaque CMDlet AD. Mais, dans d’anciennes versions de PowerShell, vous devez charger le module :
Import-Module ActiveDirectory
Méthode 2 : Importer le module sans installation
Pour utiliser cette méthode vous devez avoir le droit de faire une Enter-PSSession
sur un ordinateur qui a le module AD PowerShell module installé. Cela peut être un contrôleur de domaine ou bien un serveur/PC membre :
$computerWithADPshellInstalled = 'XXXX'
$session = New-PSSession -ComputerName $computerWithADPshellInstalled -Credential (Get-Credential)
# -Force to override if remote module was already imported
Export-PSSession -Session $session -Module ActiveDirectory -OutputModule RemoteActiveDirectory -Force
Remove-PSSession $session
Vous n’avez qu’à effectuer cette commande qu’une seule fois. En effet un fichier .psm1
contenant les commandes pour la session PSRemoting (vers le PC/serveur de la commande précédente) sera positionné dans le dossier Modules de Powershell.
Vous pouvez importer le module avec :
Import-Module RemoteActiveDirectory
Cela chargera une PSSession vers le PC/serveur. Cela vous demandera les identifiants si vous vous êtes connectés avec un compte différent lors de la commande Enter-PSSession.
Garder en tête que :
- l’ordinateur distant doit être allumé quand vous exécuter les CMDlets
- le temps d’exécution des CMDlets est un peu plus long que si vous aviez installé le module sur votre PC.
Clap
Comments