Question Sudo Mode

Plus d'informations
il y a 15 ans 8 mois #7403 par Arthur
Réponse de Arthur sur le sujet Re:Sudo Mode
Je ne connaissais pas \"Write-Debug\" et je n'arrive pas à l'utiliser je tape :

[code:1]Write-Debug -Message \"Receive-Job : [localhost] Une erreur s'est produite lors du lancement du processus en a
rrière-plan. Erreur signalée : Le nom de répertoire est incorrect.\"[/code:1]

ou encore :

[code:1]Write-Debug -Message \"Le nom de répertoire est incorrect\"[/code:1]

J'ai aussi éssayé de rediriger le message sur write-debug,dan une variable, mais sans succès. :pinch:

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

Plus d'informations
il y a 15 ans 8 mois #7404 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Sudo Mode
Dans un job on affiche le résultat de Write-Debug via Receive-Job :
[code:1]
$j=start-job -scriptblock {
$d=\"c:\temp\test.txt\"
Write-host \"echo $d\"
$debugpreference=\"continue\"
write-debug $d
}
Receive-Job $j
#echo c:\temp\test.txt
#DÉBOGUER : c:\temp\test.txt
[/code:1]

Tutoriels PowerShell

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

Plus d'informations
il y a 15 ans 8 mois #7405 par Arthur
Réponse de Arthur sur le sujet Re:Sudo Mode
Bon....(Deviens Fou :P )
Maintenant la fonction marche sur mon serveur et toujours pas sur mon client ( bon en même temps y a que le serveur qui m'intéresse)

Le plus marrant c'est que quand je fait un \"dir\" pour voir le fameux répertoire ( pour que je lui casse la gueule ;) ) et ben il m'affiche rien. :laugh:

Voici la fonction :

[code:1]param([string]$string)

#########################
# FONCTION #
#########################
Function Random {
param(
[int] $len = 4,
[string] $chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_!@#$%\"
)

$bytes = new-object \"System.Byte[]\" $len
$rnd = new-object System.Security.Cryptography.RNGCryptoServiceProvider
$rnd.GetBytes($bytes)
$result = \"\"
for( $i=0; $i -lt $len; $i++ )
{
$result += $chars[ $bytes[$i] % $chars.Length ]
}
return $result
}

#########################
# TRAITEMENT #
#########################
$Aleatoire = Random -len 3
$script_block = $executioncontext.InvokeCommand.NewScriptBlock($string)

$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

Write-host \"Création du job : Tache-$Aleatoire\"
Start-Job -Credential $credentials -ScriptBlock {param($script_block ) invoke-expression -Command $script_block } -ArgumentList $script_block -Name \"Tache-$Aleatoire\"
wait-job -name \"Tache-$Aleatoire\" | Receive-Job
remove-job *



[/code:1]

PS D:\XXXXX> $toto = \"salut\"
PS D:\XXXXX> .\sudo2.ps1 -string \"write-host $toto\"
Entrez le login :: XXXXXX
Entrez le mot de passe :: **********
Création du job : Tache-5bk

Id Name State HasMoreData Location Command
-- ----





23 Tache-5bk Running True localhost param($script_block )...

salut



Pour info l'avantage de cet fonction est quelle ne créer pas de deuxième fenêtre.

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

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

et ben il m'affiche rien.

Une piste :
[code:1]
$Dir=$null
Write-Debug \"`$Dir is `$null : $($dir -eq $null)\"
$Dir=\"c:\temp\"
Write-Debug \"`$Dir is `$null : $($dir -eq $null)\"
[/code:1]

Tutoriels PowerShell

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

Plus d'informations
il y a 15 ans 8 mois #7407 par Arthur
Réponse de Arthur sur le sujet Re:Sudo Mode
En effet j'obtiens un dossier du nom de DossierTest :blink:

Il me semble en effet avoir crée un dossiertest il y a peut être un mois(et encore je ne suis même pas sûr) mais je ne vois en quoi il me pose problème

PS D:\Poubelle> .\sudo2 -string \" $dir = dir ; Write-Debug \"\"`$Dir is `$null : $($dir
-eq $null)\"\"\"
Entrez le login :: login
Entrez le mot de passe :: **********
Création du job : Tache-LpT

Id Name State HasMoreData Location Command
-- ----





5 Tache-LpT Running True localhost param($script_block )...
Resultat :

The term 'dossierTest' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.
+ CategoryInfo : ObjectNotFound: (dossierTest:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException



Sinon je voulais savoir avant de poster le script dans \"Contributions à la communauté\"(Ça peut toujours servir) si vous aviez des suggestions.
J'ai aussi la même fonction mais qui prend comme paramètre un Scriptblock directement seulement il n'importe pas les variables, par exemple on ne peut pas faire :

$toto = salut
sudo.ps1 - script {write-host $toto }


La fonction ne prend en compte la variable $toto, c'est probablement due au fait que je ne construit pas de Scriptblock dynamiquement dans le script
(Alors que la version avec String marche )

EDIT: Effectivement j'ai bien un dossierTest mais il n'a rien avoir avec mon profil, Il est sur un disque local, je l'utilise pour test mes scripts en javascript :blink: :blink:

Message édité par: bilbao, à: 19/07/10 13:11<br><br>Message édité par: bilbao, à: 20/07/10 16:41

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

Plus d'informations
il y a 15 ans 8 mois #7408 par Richard Lazaro
Réponse de Richard Lazaro sur le sujet Re:Sudo Mode
Il ne prend pas en compte le $toto car tu l'exécutes dans un job (enfin, de mémoire il me semble que c'est ça).

Le Job est executé sur une machine distante, les variables passées dans le scriptBlock sont évaluées sur la session de destination.

Pour passer des variables de la session courante à la session de destination il faut utiliser le paramètre ArgumentList.

Think-MS : (Get-Life).Days | %{ Learn-More }

\\&quot;Problems cannot be solved by the same level of thinking that created them.\\&quot; - Albert Einstein

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

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