Question
Start-Process with Credential [RESOLU]
- xyz
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 69
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
- Messages : 968
- Remerciements reçus 0
smadon écrit:
Ahhhh, voila mon erreur Je testais ca sur XP
L'utilisation future de ce script est pour 7,mais je le testais sur mon PC sous XP (En cours de migration)
Donc je vais testé ca Lundi sur 7, et je vous fait un retour.
Merci pour vos réponses.
J'ai testé sous Windows XP + PowerShell version 2 : cela fonctionne
Laurent Dardenne:
Quelle était l'erreur précisement ?
Du coup, la réponse à cette question est essentielle pour comprendre \"le pourquoi du comment\" (\"why it is because for : the reason is because !\" ^^) ...
A propos de \" Resolve-Error \", ce que te proposait Laurent d'utiliser.
@ +
Matthew<br><br>Message édité par: Matthew BETTON, à: 23/02/13 16:51
Connexion ou Créer un compte pour participer à la conversation.
- smadon
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 20
- Remerciements reçus 0
Alors pour trouver le pbs sur XP avec Resolve-Error, je ne comprend pas bien comment proceder.
J'ai rajouté la function, mais je ne vois pas comment je capte l'erreur?????
[code:1]
function main {
$Username = \"Administrator\"
$Password = \"MYPASSWORD\"
$MyProg = \"notepad.exe\"
$Credential = New-Object System.Management.Automation.PSCredential (\"$UserName\",(ConvertTo-SecureString -String $Password -AsPlainText -Force))
Start-Process -filePath $MyProg -Credential $Credential
}
function Resolve-Error ($ErrorRecord=$Error[0])
{
$ErrorRecord | Format-List * -Force
$ErrorRecord.InvocationInfo |Format-List *
$Exception = $ErrorRecord.Exception
for ($i = 0; $Exception; $i++, ($Exception = $Exception.InnerException))
{ \"$i\" * 80
$Exception |Format-List * -Force
}
}
Set-Alias rver Resolve-Error
[/code:1]
Sinon pour 7, je viens de testé et oui, ca marche
Mais ca m'entraine un autre message.
Je veux lancer un program avec start-Process mais qui a besoins de prendre des droits elever (pas comme notepad.exe)
[code:1]
$Username = \"Administrator\"
$Password = \"MYPASSWORD\"
$MyProg = \"MyProgr.exe\"
$Credential = New-Object System.Management.Automation.PSCredential (\"$UserName\",(ConvertTo-SecureString -String $Password -AsPlainText -Force))
Start-Process -filePath $MyProg -Credential $Credential
[/code:1]
Message d'erreur:
Start-Process : This command cannot be executed due to the error: The requested operation requires elevation.
Que dois je rajouté pour lui donner en plus le droit d'elevation????
Merci pour votre aide.
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 69
Exécute ton code puis en cas d'erreur exécute la fonction Resolve-Erreur.J'ai rajouté la function, mais je ne vois pas comment je capte l'erreur?????
Elle t'affichera le détail de la dernière erreur insérée dans la collection $Error.
Note : Resolve-Erreur = Resolve-Erreur $Error[0]
Redirige le résultat dans un fichier puis joint le fichier à ton post :
[code:1]rver > C:\Temp\err.txt[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 26/02/13 13:48
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- smadon
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 20
- Remerciements reçus 0
[code:1]
PSMessageDetails :
Exception : System.InvalidOperationException: This command cannot be executed due to the error: The handle is i
nvalid.
at System.Management.Automation.MshCommandRuntime.ThrowTerminatingError(ErrorRecord errorRecord)
TargetObject :
CategoryInfo : InvalidOperation: (:«») [Start-Process], InvalidOperationException
FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand
ErrorDetails :
InvocationInfo : System.Management.Automation.InvocationInfo
PipelineIterationInfo : {0, 0}
MyCommand : Start-Process
BoundParameters : {[Credential, System.Management.Automation.PSCredential], [FilePath, notepad.exe]}
UnboundArguments : {}
ScriptLineNumber : 46
OffsetInLine : 14
HistoryId : 6
ScriptName : N:\XX\MyScript.ps1
Line : Start-Process notepad.exe -Credential $Credential
PositionMessage :
At N:\XX\MyScript.ps1:46 char:14
+ Start-Process <<<< notepad.exe -Credential $Credential
InvocationName : Start-Process
PipelineLength : 1
PipelinePosition : 1
ExpectingInput : False
CommandOrigin : Internal
[/code:1]
Par contre, je sais que cette config XP a été pas mal personnaliser, donc trouver l'origine me semble compliqué.
Le probleme du credential est lui plus problematique :-/
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 69
Il faut du temps pour étudier le sujet.Par contre, je sais que cette config XP a été pas mal personnaliser, donc trouver l'origine me semble compliqué.
En cherchant avec ceci 'powershell start process the handle is invalid' les 2 premiers liens sur google donnent qq infos.
En test, il faudrait utiliser un autre prg et un autre compte.
Le mieux aurait été de coder un programme console C# exécutant un Start-Process, PS n'a peut être rien à voir avec ce pb, mais est plus un révélateur (de talent bien évidement
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Start-Process with Credential [RESOLU]