Question
Sudo Mode
- Arthur
- Auteur du sujet
- Hors Ligne
- Membre elite
-
- Messages : 226
- Remerciements reçus 0
[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.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
[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.
- Arthur
- Auteur du sujet
- Hors Ligne
- Membre elite
-
- Messages : 226
- Remerciements reçus 0
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
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Une piste :et ben il m'affiche rien.
[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.
- Arthur
- Auteur du sujet
- Hors Ligne
- Membre elite
-
- Messages : 226
- Remerciements reçus 0
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
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.
- Richard Lazaro
- Hors Ligne
- Membre platinium
-
- Messages : 530
- Remerciements reçus 0
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 }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Sudo Mode