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.