Comment exécuter une cmdlet Powershell en tant qu'user spécifique et save la valeur de return dans une variable?

Comment puis-je exécuter une cmdlet Powershell en tant qu'user spécifique et save la valeur de return dans une variable?

Ce que j'ai obtenu jusqu'à présent est cet extrait

Start-Process powershell.exe -Credential $credentials -NoNewWindow -ArgumentList "Get-Item Env:AppData" 

Le problème réside dans le fait que toutes les valeurs de return ne viennent que dans le process et ne sont pas transmises à l'environnement powershell d'où j'ai exécuté ladite command.

Vous pouvez utiliser Invoke-Command avec les informations d'identification spécifiées, puis return la valeur à partir du ScriptBlock invoqué:

 $Credentials = (Get-Credential) $ScriptToExecute = {return (Get-Item Env:AppData)} $AppData = Invoke-Command -ComputerName localhost -Credential $Credentials -ScriptBlock $ScriptToExecute $AppData # Now contains the Environment var named "AppData" 

Si cela jette des erreurs, vous devez exécuter winrm quickconfig . Si cela échoue encore, exécutez powershell.exe avec des privilèges d'administrateur.