Question Sudo Mode

Plus d'informations
il y a 15 ans 8 mois #7388 par Arthur
Sudo Mode a été créé par Arthur
Bonjour,
Voilà après quelque recherches je n'ai pas trouvé de script qui réalise une sorte de sudo pour powershell et qui correspond a mes besoins j'ai donc décidé de coder le mien.
Et voilà jusqu'à il y a peu il marchait bien et maintenant c'est le drame...
En effet il me sort l'erreur :

Receive-Job : [localhost] Une erreur s'est produite lors du lancement du processus en arrière-plan. Erreur signalée : L
e nom de répertoire est incorrect.
Au niveau de D:\SSH\pass.ps1 : 18 Caractère : 36
+ get-job * | wait-job | receive-job <<<<
+ CategoryInfo : OpenError: (:) [Receive-Job], PSRemotingTransportException
+ FullyQualifiedErrorId : PSSessionStateBroken


Voici le code (il marche sur certaines machines mais comme par hasard pas sur celle que je veux, je deviens dingue :pinch: )

[code:1]$login = read-host \"Entrez le login :\"
$password = read-host \"Entrez le mot de passe :\" -AsSecureString
$credentials = new-object -typename System.Management.Automation.PSCredential -argumentlist \"domaine\$login\",$password

Start-Job -Credential $credentials -ScriptBlock { Set-location C:\ ;start-sleep 5 ; whoami.exe }
get-job * | wait-job | receive-job
Remove-job *[/code:1]

Le problème vient de l'option credential dans Start-Job.

Visiblement le problème est un peu prêt expliquer sur le lien suivant mais je pige rien. :pinch:

support.microsoft.com/Default.aspx?kbid=258948

Je ne trouve rien de plus sur google.
Bref quelqu'un peut m'aider ? :P
Merci

PS: Et non l'erreur n'a rien avoir avec la cmd \"cd\" que je fait dans le code. :P

EDIT: le problème semble venir des variables d'environnements HOMEPATH et HOMEDRIVE, mais je voit pas trop en quoi :pinch:
Quand je fait un \"cd $env:HOMEPATH\" ca marche ( pareil avec HOMEDRIVE), j'ai pointé ces variables vers \"C:\\" j'ai le même problème.

Message édité par: bilbao, à: 15/07/10 15:11<br><br>Message édité par: bilbao, à: 15/07/10 17:20

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 8 mois #7391 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Sudo Mode
Salut,
bilbao écrit:

Visiblement le problème est un peu prêt expliquer sur le lien suivant mais je pige rien.

As-tu essayé la version anglaise ?
Sinon utilise Resolve-Error pour un compte-rendu détaillé de l'exception, sous PS un même message peut avoir des causes différentes, quoique proches.<br><br>Message édité par: Laurent Dardenne, à: 15/07/10 19:24

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 8 mois #7392 par Arthur
Réponse de Arthur sur le sujet Re:Sudo Mode
Le problème a l'air bien plus profond car j'ai essayé de le debug avec PowerGUI sans succès en revanche quand je le lance depuis PowerGUI( Option ouvrir dans une nouvelle console/fenêtre je sait plus :P ) ça marche.
Pour le moment j'utilise un invoke-command en localhost et ça marche demain je vais essayer avec un -AsJob et selon moi ça va pas marcher. :P

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 8 mois #7393 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Sudo Mode
bilbao écrit:

Le problème a l'air bien plus profond

Possible, en attendant on ne sait pas en quoi \&quot;le nom de répertoire est incorrect.\&quot;...<br><br>Message édité par: Laurent Dardenne, à: 16/07/10 10:56

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 8 mois #7400 par Arthur
Réponse de Arthur sur le sujet Re:Sudo Mode
Bon a ma grande surprise le AsJob marche. :pinch:
C'est quoi la différence entre un start-job et un invoke-command -AsJob en localhost? :)
Sinon une petite question.
Voilà mon script prend comme parametre un mot de passe et histoire de faire un peu mieux je voulais savoir si il est possible de faire sorte que le mot de passe s'affiche avec des \&quot;******\&quot; quand on le rentre ?

[code:1] param([ScriptBlock]$script,[String]$Login,[String]$pass)

$password = new-object System.Security.SecureString

foreach($objchar in $pass.ToCharArray())
{
$password.AppendChar($objchar)

}

$credentials = new-object -typename System.Management.Automation.PSCredential -argumentlist \&quot;domaine\$login\&quot;,$password

Invoke-command -computerName localhost -credential $credentials -ScriptBlock {param($script) invoke-expression -Command $script } -ArgumentList $script



[/code:1]



EDIT : Compte rendu du Resolve-error :

PS D:\SSH&gt; Resolve-Error.ps1


PSMessageDetails :
Exception : System.Management.Automation.Remoting.PSRemotingTransportException: Une erreur s'est produite l
ors du lancement du processus en arrière-plan. Erreur signalée : Le nom de répertoire est incor
rect.
TargetObject :
CategoryInfo : OpenError: (:) [Receive-Job], PSRemotingTransportException
FullyQualifiedErrorId : PSSessionStateBroken
ErrorDetails : [localhost] Une erreur s'est produite lors du lancement du processus en arrière-plan. Erreur si
gnalée : Le nom de répertoire est incorrect.
InvocationInfo : System.Management.Automation.InvocationInfo
PipelineIterationInfo : {0, 1, 2, 1}





MyCommand : Receive-Job
BoundParameters : {[Job, System.Management.Automation.Job[]], [Location, System.String[]]}
UnboundArguments : {}
ScriptLineNumber : 16
OffsetInLine : 36
HistoryId : 35
ScriptName : D:\SSH\pass.ps1
Line : get-job * | wait-job | receive-job
PositionMessage :
Au niveau de D:\SSH\pass.ps1 : 16 Caractère : 36
+ get-job * | wait-job | receive-job &lt;&lt;&lt;&lt;
InvocationName : receive-job
PipelineLength : 3
PipelinePosition : 3
ExpectingInput : True
CommandOrigin : Internal



00000000000000000000000000000000000000000000000000000000000000000000000000000000


ErrorCode : -2147467259
TransportMessage :
ErrorRecord : Une erreur s'est produite lors du lancement du processus en arrière-plan. Erreur signalée
 : Le nom de répertoire est incorrect.
StackTrace :
WasThrownFromThrowStatement : False
Message : Une erreur s'est produite lors du lancement du processus en arrière-plan. Erreur signalée
 : Le nom de répertoire est incorrect.
Data : {}
InnerException :
TargetSite :
HelpLink :
Source :


Message édité par: bilbao, à: 16/07/10 09:48<br><br>Message édité par: bilbao, à: 16/07/10 09:49

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 8 mois #7402 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Sudo Mode
bilbao écrit:

C'est quoi la différence entre un start-job et un invoke-command -AsJob en localhost?

Faut regarder le code source ;) ,ou rechercher récursivement dans les propriétés de chaque Job. Peut être le type du job.
bilbao écrit:

Voilà mon script prend comme parametre un mot de passe et histoire de faire un peu mieux je voulais savoir si il est possible de faire sorte que le mot de passe s'affiche avec des \&quot;******\&quot; quand on le rentre ?

Je ne suis pas sûr d'avoir compris, comme ceci ?
[code:1]function test {
param(
[ScriptBlock]$script,
[String]$Login,
[String]$pass=$(read-host \&quot;Entrez le mot de passe :\&quot; -AsSecureString)
)

$password
} [/code:1]
bilbao écrit:

EDIT : Compte rendu du Resolve-error :

Merci, mais le nom du répertoire en cause n'est pas indiqué,un Write-Debug sur la variable le contenant devrait, dans ce cas, suffire.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.045 secondes
Propulsé par Kunena