web-dev-qa-db-fra.com

Impossible de trouver le module Microsoft.Powershell.LocalAccounts (ou d'exécuter Get-LocalUser)

Lors de l'exécution d'un script, j'ai une ligne pour vérifier qu'un "compte de service" (autrement dit un compte d'utilisateur local) existe pour notre application:

$svcAccountName = "TheAccountName"
$svcAccount = Get-LocalUser -Name $svcAccountName

Le serveur (Windows Server 2008 R2) appelle la cmdlet Get-LocalUser en indiquant:

 Get-LocalUser: le terme 'Get-LocalUser' n'est pas reconnu en tant que nom d'une applet de commande, fonction, fichier de script ou programme utilisable 
. Vérifiez l'orthographe du nom 
 Ou, si un chemin a été inclus, vérifiez que le chemin est correct et réessayez. 
 À la ligne: 1 car: 1 
 + Get-LocalUser 
 + ~~~~~~~~~~~~ 
 + CategoryInfo: ObjectNotFound: (Get-LocalUser: String) [], CommandNotFoundException 
 + FullyQualifiedErrorId: CommandNotFoundException 

J'ai donc essayé d'importer le module LocalAccounts:

Import-Module Microsoft.Powershell.LocalAccounts

et j'ai eu ceci:

 Import-Module: le module spécifié 'LocalAccounts' n'a pas été chargé car aucun fichier de module 
 Valide n'a été trouvé dans un répertoire de module. 
 A la ligne: 1 char: 1 
 + Import-Module 
 + ~~~~~~~~~~~~~ 
 + CategoryInfo: ResourceUnavailable: (LocalAccounts: String) [Import-Module], FileNotFoundException 
 + FullyQualifiedErrorId: Modules_ModuleNotFound, Microsoft.PowerShell.Commands.ImportModuleCommand 

Le serveur exécute PSVersion 4.0 conformément à la variable $PSVersionTable.

Pourquoi le module LocalAccounts n'est-il pas chargé et la commande Get-LocalUser n'est-elle pas exécutée? Comment puis-je résoudre ce problème?

3
Scott Baker

Cette cmdlet est disponible avec Server 2016 et Win10 1607+. Sur les systèmes d'exploitation antérieurs, vous devrez soit utiliser net.exe, WMI, ADSI ou un module utilisant l'une de ces méthodes, ou installer WMF 5.1.

Edit: Le PFE MS Sean Kearney a écrit un module appelé localaccount . Qui est construit à partir du code de ce GitHub repostiory qui reproduit la fonctionnalité des nouveaux modules via ADSI. Qui fonctionne avec les anciennes versions de PowerShell. Notez que ce n'est pas la même chose que le module intégré. 

0
BenH

Le module Microsoft.Powershell.LocalAccounts est fourni avec Windows Management Framework (WMF) v5.1 et peut être téléchargé à partir de: https://www.Microsoft.com/en-us/download/ details.aspx? id = 54616

Une fois installé, vous pourrez utiliser ces cmdlets dans votre script. Vous avez également ici une référence des modules inclus dans chaque version de Powershell: https://msdn.Microsoft.com/powershell/référence/readme

Bonne chance! :)

0
hairowski

Vous devez d'abord récupérer le fichier .PSM1 à partir d'un autre ordinateur.

#Install LocalAccount Module
Install-Module -Name localaccount

#Save Module to the PowerShell Modules folder
Save-Module -Name localaccount -Path "C:\Program Files (x86)\WindowsPowerShell\Modules"

Si vous l'ajoutez à cet emplacement sous Windows 2008 R2. Il devrait installer le module, mais sinon, consultez le lien suivant: https://msdn.Microsoft.com/en-us/library/dd878350(v=vs.85).aspx

Je ne sais pas pourquoi ce n'est pas sous Windows 2008 R2, mais le module LocalAccounts est sorti le 21 mars 2015. Cela est antérieur à Windows 2016 et Windows 10. 

Install-Module -Name localaccount -RequiredVersion 1.1

Vous pouvez toujours contacter le gars qui l'a créé "Sean P. Kearney"

J'espère que cela vous aide. Voici comment je l'ai fait. 

0
Zach Olinske