Question
Fonction Powershell
- phiphi917
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 27
- Remerciements reçus 0
Je test tout de suite.
Connexion ou Créer un compte pour participer à la conversation.
- julien
- Hors Ligne
- Nouveau membre
-
- Messages : 7
- Remerciements reçus 0
(pas la peine de recréer un autre sujet)
je souhaiterais aussi pouvoir executer plusieurs fonctions en même temps mais avec des fonctions ecrite dans d'autre fichier.ps1
un exemple pour être plus clair....
[code:1]
#################################################
. .\IHM_blocage.ps1
. .\postconf.ps1
#################################################
$J=@(
Start-Job -ScriptBlock ${function:bloquer};
Start-Job -ScriptBlock ${function:«»postconf};
)
$J
[/code:1]
une idée ? merci beaucoup
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- julien
- Hors Ligne
- Nouveau membre
-
- Messages : 7
- Remerciements reçus 0
en chargent le script dans le job j'ai une fonction qui ne s'exécute pas.
Est ce que je peux pousser la demande d'aide plus loin sachant que c'est encore en rapport avec un sujet que j'avais posté y a quelques mois
Autre question
. .\c:\temp\fichier.ps1 ??
merci
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Vérifie le chemin d'accès au script.en chargent le script dans le job j'ai une fonction qui ne s'exécute pas.
newblur écrit:
Tu fais comme tu le sensEst ce que je peux pousser la demande d'aide plus loin sachant que c'est encore en rapport avec un sujet que j'avais posté y a quelques mois
?
newblur écrit:
Pas tout à fait, essaie ceci :pour utiliser une fonction ecrite dans un autre fichier .ps1 on l'appel bien comme ceci :
. .\c:\temp\fichier.ps1 ??
[code:1]
@\"
function test {
write-host \"my fonction\"
}
\"@ > c:\temp\test.ps1
Start-Job -name Test -ScriptBlock {
.\"c:\temp\test.ps1\"
test
} |
Wait-Job|
Receive-Job
#Get-Job|Remove-Job
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- julien
- Hors Ligne
- Nouveau membre
-
- Messages : 7
- Remerciements reçus 0
newblur écrit:
Est ce que je peux pousser la demande d'aide plus loin sachant que c'est encore en rapport avec un sujet que j'avais posté y a quelques mois ?
Laurent Dardenne écrit:
Tu fais comme tu le sens
ok j'appel à l'aide car j'y arrive pas.....
pour ce qui est d’exécuter des fonctions ça fonctionne parfaitement merciii
[code:1]
$start=@(
# bloquer le clavier & la souris
Start-Job -name Bloquer_clavier -ScriptBlock {
.\"C:\temp\Bloquer_clavier.ps1\"
Bloquer_clavier
Start-Sleep -Seconds 7
}
# exécution postconf avec une barre de progression
Start-Job -name IHM -ScriptBlock {
.\"C:\temp\postconf.ps1\"
IHM
}
)| Wait-Job| Receive-Job
$start
[/code:1]
la ou j'ai un soucis c'est sur ton code Laurent
( www.powershell-scripting.com/index.php?o...;id=2538&catid=5
je souhaiterais exécuter plusieurs script .cmd tout en affichant une barre de progression.
voici mon problème :
1) je n'arrive pas à cacher mes fenêtres dos
2) je ne vois pas comment exécuter mes scripts correctement. (un script va s’exécuter autant de fois qu'il y a de scripts dans mon dossier)
[code:1]
function Posconf{
$key=(1..30)
$pwd=get-content C:\temp\encrypted.txt | convertto-securestring -key (1..30)
$User=\"administrateur\"
$login=new-object -typename System.Management.Automation.PSCredential -argumentlist $User,$pwd
[void][Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms')
#
# Timer
$timer = new-object System.Windows.forms.timer
#Recherche tout les fichiers .cmd
$Scripts = Get-ChildItem C:\temp\Postconf -recurse -Include *.cmd -Exclude RunPostconf.cmd | Where-Object {$_.PSIsContainer -eq $false} | Select-Object -ExpandProperty FullName
#Compter nombre de fichier .cmd
$nombre_de_scripts = @(Get-ChildItem $Scripts).count
$timer.Interval = $nombre_de_scripts
#
# progressBar1
#
$progressBar1 = new-object System.Windows.Forms.ProgressBar
$progressBar1.Maximum = $nombre_de_scripts
$progressBar1.Location = new-object System.Drawing.Point(20, 50)
$progressBar1.Name = 'progressBar1'
$progressBar1.Size = new-object System.Drawing.Size(360, 23)
$progressBar1.Value = 0
$progressBar1.style = 'continuous'
$progressBar1.step = 1
#
# Label1
#
$label1 = new-object System.Windows.Forms.Label
$label1.Location = new-object System.Drawing.Point(20, 20)
$label1.Size = new-object System.Drawing.Size(360,13)
$label1.Text = 'Installation :'
#
$Form1 = new-object System.Windows.Forms.form
# Form1
#
$Form1.Controls.Add($label1)
$Form1.ClientSize = new-object System.Drawing.Size(402, 100)
$Form1.Controls.Add($progressBar1)
$Form1.MaximizeBox = $false
$Form1.MinimizeBox = $false
#$Form1.ControlBox = $false
$Form1.Text = \"Veuillez patienter Installation en cours\"
$cpt = 0
$timer.Add_Tick({
$progressBar1.PerformStep()
#traitement
foreach($ScriptPath in $Scripts){
#Execution des scripts .cmd
$process=Start-Process -FilePath $ScriptPath -Credential $login -PassThru
}
$job = start-job -ScriptBlock $process -ArgumentList $login
$cpt++
if ($cpt -gt $progressBar1.Maximum){
$timer.Stop()
$Form1.close()
}
})
$timer.Start()
$Form1.ShowDialog()
}
Posconf
[/code:1]<br><br>Message édité par: newblur, à: 11/03/13 11:12
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Fonction Powershell