Question
Sudo Mode
- Arthur
- Auteur du sujet
- Hors Ligne
- Membre elite
-
- Messages : 226
- Remerciements reçus 0
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
[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.
support.microsoft.com/Default.aspx?kbid=258948
Je ne trouve rien de plus sur google.
Bref quelqu'un peut m'aider ?
Merci
PS: Et non l'erreur n'a rien avoir avec la cmd \"cd\" que je fait dans le code.
EDIT: le problème semble venir des variables d'environnements HOMEPATH et HOMEDRIVE, mais je voit pas trop en quoi
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
bilbao écrit:
As-tu essayé la version anglaise ?Visiblement le problème est un peu prêt expliquer sur le lien suivant mais je pige rien.
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.
- Arthur
- Auteur du sujet
- Hors Ligne
- Membre elite
-
- Messages : 226
- Remerciements reçus 0
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.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Possible, en attendant on ne sait pas en quoi \"le nom de répertoire est incorrect.\"...<br><br>Message édité par: Laurent Dardenne, à: 16/07/10 10:56Le problème a l'air bien plus profond
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Arthur
- Auteur du sujet
- Hors Ligne
- Membre elite
-
- Messages : 226
- Remerciements reçus 0
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 \"******\" 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 \"domaine\$login\",$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> 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 <<<<
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Faut regarder le code sourceC'est quoi la différence entre un start-job et un invoke-command -AsJob en localhost?
bilbao écrit:
Je ne suis pas sûr d'avoir compris, comme ceci ?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 \"******\" quand on le rentre ?
[code:1]function test {
param(
[ScriptBlock]$script,
[String]$Login,
[String]$pass=$(read-host \"Entrez le mot de passe :\" -AsSecureString)
)
$password
} [/code:1]
bilbao écrit:
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.EDIT : Compte rendu du Resolve-error :
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Sudo Mode