web-dev-qa-db-fra.com

Accès à Windows Credential Manager depuis PowerShell

J'utilise PowerShell 2.0 (nécessaire en raison de SP2010) Sur Windows Server 2008 R2. J'ai besoin de récupérer les informations d'identification d'un processus à partir du gestionnaire d'informations d'identification Windows. Je n'arrive pas à le faire fonctionner.

On m'a donné ce morceau de code:

[Windows.Security.Credentials.PasswordVault,Windows.Security.Credentials,ContentType=WindowsRuntime]
(new-object Windows.Security.Credentials.PasswordVault).RetrieveAll() | % { $_.RetrievePassword(); $_ }

les deux lignes de code jettent des erreurs

Windows.Security.Credentials.PasswordVault,Windows.Security.Credentials,ContentType=WindowsRuntime : Unable to find type [Windows.Security.Credentials.PasswordVault,Windows.Security.Credentials,ContentType=WindowsRuntime]: make sure that the Assembly containing this type is loaded.

et

(new-object Windows.Security.Credentials.PasswordVault).RetrieveAll() | % {$_.RetrievePassword(); $_ } 

respectivement. J'ai essayé en quelque sorte d'importer la classe PasswordVault. Jusqu'à présent, Google m'a échoué, je n'ai même pas pu savoir dans quel assemblage il réside. Qu'est-ce qui me manque?

11
Shaggydog

En type powershell5:

   Install-Module CredentialManager -force

Alors

   New-StoredCredential -Target $url -Username $ENV:Username -Pass ....

et ensuite

   Get-StoredCredential -Target .... 
20
majkinetor

Vous devrez accéder à l'API Win32 pour interagir avec le gestionnaire d'informations d'identification.

CredMan.ps1 de la galerie de scripts Technet le montre bien.

Pour des schémas d'utilisation plus simples, comme simplement lister les principaux ou ajouter de nouvelles informations d'identification, vous pouvez également utiliser cmdkey , un utilitaire de ligne de commande Windows intégré pour la gestion des informations d'identification

Pour réutiliser les informations d'identification stockées dans PowerShell, ce type semble avoir trouvé un moyen de construire un PSCredential à partir d'un identifiant générique à partir du magasin d'informations d'identification, en utilisant une technique similaire à celle de CredMan.ps1: Get -StoredCredential

9
Mathias R. Jessen

Selon les documents, la classe PasswordVault n'est pas prise en charge sur Windows Server 2008 R2.

Serveur minimum pris en charge Windows Server 2012

https://msdn.Microsoft.com/library/windows/apps/windows.security.credentials.passwordvault.aspx

3
David Anderson