La commande get-credential obtient un objet credential (informations d'identification) basé sur le nom et mot de passe d'un utilisateur.
Cependant, cette commande est incompatible avec les fournisseurs installés avec Windows Powershell.
Exemple d’une copie de fichier sans crédential
Maintenant, essayons en spécifiant un utilisateur.
On peut donc voir que le fournisseur n’est pas compatible en définissant un crédential.
Maintenant, nous allons voir comment permettre une authentification via le module impersonation disponible à cette adresse : http://poshcode.org/get/1867
Cette astuce devra être exécuté avec Powershell en mode STA : Single-Threaded Apartments car le module que nous allons importer n’est compatible que dans ce mode.
Exécuter :
(En mode STA, la fenêtre Powershell est noir par défaut)
Maintenant on récupère notre variable d’authentification comme auparavant.
Si on exécute une copie de fichier avec la variable $cred, on peut voir que cela ne fonctionne toujours pas.
Maintenant, on va importer le module « impersonation » qui va mettre à notre disposition trois nouvelles commandlets.
A l’aide de Push-ImpersonationContext, on va maintenant récupérer notre variable $cred. Et à partir de là, on peut réessayer une copie de fichier qui auparavant ne fonctionnait pas.
Cela fonctionne désormais.
Pour effacer de la mémoire l’authentification, nous avons la variable Pop-impersonationContext disponible.
Exemple :
Nous supprimons le fichier copié là où celui-ci a fonctionné auparavant et nous utilisons la cmdlet Pop-impersonationContext. Nous réessayons donc une nouvelle fois notre copie de fichier :
Cela a bien supprimé l’authentification gardé en mémoire.
Autre exemple d’authentification pour la création d’un item (même principe):