Question
Job powershell qui bloque avec New-PsDrive
- MrGears
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 11 ans 6 mois #18110
par MrGears
Job powershell qui bloque avec New-PsDrive a été créé par MrGears
Bonjour à tous,
je fais face à un problème dont je ne comprends pas l'origine, j'ai crée un job powershell qui contient un New-PsDrive mappé sur un serveur, et je lance une copie de mon poste local vers le Drive mappé en utilisant Copy-Item :
[code:1]Start-Job -ScriptBlock {
$shareadress = \"\\172.22.0.100\c$\"
$username = \"Springfield\Administrator\"
$pwd = \"MyPassword\"
$password = ConvertTo-SecureString -AsPlainText -Force -String $pwd
$credentials = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username,$password
New-PSDrive TEMPO -PSProvider filesystem -Root $shareadress -Credential $credentials -Scope global
Copy-Item \"C:\test.txt\" -Destination \"TEMPO:\test.txt\"
Remove-PSDrive TEMPO
}
Get-Job | Wait-Job
Get-Job | Receive-Job
Remove-Job -State Completed[/code:1]
Or lorsque j'execute celui-ci, le job se lance bien mais il reste bloqué en statut Running... je ne comprends pas pourquoi?
Lorsque j'execute le même code, sans faire de Job, cela fonctionne parfaitement.
Quelqu'un aurait une explication?
Merci d'avance !
je fais face à un problème dont je ne comprends pas l'origine, j'ai crée un job powershell qui contient un New-PsDrive mappé sur un serveur, et je lance une copie de mon poste local vers le Drive mappé en utilisant Copy-Item :
[code:1]Start-Job -ScriptBlock {
$shareadress = \"\\172.22.0.100\c$\"
$username = \"Springfield\Administrator\"
$pwd = \"MyPassword\"
$password = ConvertTo-SecureString -AsPlainText -Force -String $pwd
$credentials = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username,$password
New-PSDrive TEMPO -PSProvider filesystem -Root $shareadress -Credential $credentials -Scope global
Copy-Item \"C:\test.txt\" -Destination \"TEMPO:\test.txt\"
Remove-PSDrive TEMPO
}
Get-Job | Wait-Job
Get-Job | Receive-Job
Remove-Job -State Completed[/code:1]
Or lorsque j'execute celui-ci, le job se lance bien mais il reste bloqué en statut Running... je ne comprends pas pourquoi?
Lorsque j'execute le même code, sans faire de Job, cela fonctionne parfaitement.
Quelqu'un aurait une explication?
Merci d'avance !
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 11 ans 6 mois #18111
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Job powershell qui bloque avec New-PsDrive
Salut,
quelle version de PS et quel OS utilises-tu ?
L'ajout de trace redirigées vers un fichier local peut aider à déterminer où le job bloque.
quelle version de PS et quel OS utilises-tu ?
L'ajout de trace redirigées vers un fichier local peut aider à déterminer où le job bloque.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- MrGears
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 11 ans 6 mois #18112
par MrGears
Réponse de MrGears sur le sujet Re:Job powershell qui bloque avec New-PsDrive
Bonjour,
j'utilise Powershell 4.0 sur Windows 7. Et mon serveur c'est du 2012 Powershell 4.0.
J'ai testé le job en utilisant des traces redirigées vers un fichier local :
[code:1]Start-Job -ScriptBlock {
$shareadress = \"\\172.22.0.100\c$\"
$username = \"Springfield\Administrator\"
$pwd = \"Mypassword\"
$password = ConvertTo-SecureString -AsPlainText -Force -String $pwd
$credentials = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username,$password
\"Mounting drive\" | out-file C:\temp\process.txt -append
New-PSDrive TEMPO -PSProvider filesystem -Root $shareadress -Credential $credentials -Scope global
\"Drive mounted. Copying files.\" | out-file C:\temp\process.txt -append
Copy-Item \"C:\test.txt\" -Destination \"TEMPO:\test.txt\"
\"Item copied\" |out-file C:\temp\process.txt -append
Remove-PSDrive TEMPO
\"Drive removed\" | out-file C:\temp\process.txt -append
}
Get-Job | Wait-Job
Get-Job | Receive-Job
Remove-Job -State Completed[/code:1]
voici le résultat de mon fichier de sortie :
Mounting drive
Drive mounted. Copying files.
Item copied
Drive removed
Cela veut dire que le job s'execute correctement, d'ailleurs je retrouve bel et bien le fichier copier sur le serveur, mais pourant le Job ne se termine pas.. il reste en running.
Merci pour votre aide
j'utilise Powershell 4.0 sur Windows 7. Et mon serveur c'est du 2012 Powershell 4.0.
J'ai testé le job en utilisant des traces redirigées vers un fichier local :
[code:1]Start-Job -ScriptBlock {
$shareadress = \"\\172.22.0.100\c$\"
$username = \"Springfield\Administrator\"
$pwd = \"Mypassword\"
$password = ConvertTo-SecureString -AsPlainText -Force -String $pwd
$credentials = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username,$password
\"Mounting drive\" | out-file C:\temp\process.txt -append
New-PSDrive TEMPO -PSProvider filesystem -Root $shareadress -Credential $credentials -Scope global
\"Drive mounted. Copying files.\" | out-file C:\temp\process.txt -append
Copy-Item \"C:\test.txt\" -Destination \"TEMPO:\test.txt\"
\"Item copied\" |out-file C:\temp\process.txt -append
Remove-PSDrive TEMPO
\"Drive removed\" | out-file C:\temp\process.txt -append
}
Get-Job | Wait-Job
Get-Job | Receive-Job
Remove-Job -State Completed[/code:1]
voici le résultat de mon fichier de sortie :
Mounting drive
Drive mounted. Copying files.
Item copied
Drive removed
Cela veut dire que le job s'execute correctement, d'ailleurs je retrouve bel et bien le fichier copier sur le serveur, mais pourant le Job ne se termine pas.. il reste en running.
Merci pour votre aide
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 11 ans 6 mois #18113
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Job powershell qui bloque avec New-PsDrive
Vérifie si 'les flux du job'
contiennent des infos
.
Sinon assure toi, avec ErrorActionPreférence=Stop, que ton code ne lève pas d'exceptions.
Au pire ajoute une instruction Exit.
Tu peux également vérifier sur MSConnect si ce n'est pas un bug référencé.
Sinon assure toi, avec ErrorActionPreférence=Stop, que ton code ne lève pas d'exceptions.
Au pire ajoute une instruction Exit.
Tu peux également vérifier sur MSConnect si ce n'est pas un bug référencé.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- MrGears
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 11 ans 6 mois #18114
par MrGears
Réponse de MrGears sur le sujet Re:Job powershell qui bloque avec New-PsDrive
Je vais vérifier au niveau des flux du job.
Cependant j'ai déjà résolu mon problème en utilisant Net-Use au lieu de New-Psdrive, comme ceci :
[code:1]Start-Job -ScriptBlock {
$destination = $letter+\"\test.txt\"
$letter = ls function:[d-z]: -n | ?{ !(test-path $_) } | random
$shareadress = \"\\172.22.0.100\c$\"
$username = \"Springfield\Administrator\"
$password = \"MyPassword\"
Net use $letter $shareadress /user:$username $pwd | Out-Null
Copy-Item \"C:\test.txt\" -Destination $destination
Net use $letter /delete | Out-Null
}
Get-Job | Wait-Job
Get-Job | Receive-Job
Remove-Job -State Completed[/code:1]
Merci pour votre aide
Cependant j'ai déjà résolu mon problème en utilisant Net-Use au lieu de New-Psdrive, comme ceci :
[code:1]Start-Job -ScriptBlock {
$destination = $letter+\"\test.txt\"
$letter = ls function:[d-z]: -n | ?{ !(test-path $_) } | random
$shareadress = \"\\172.22.0.100\c$\"
$username = \"Springfield\Administrator\"
$password = \"MyPassword\"
Net use $letter $shareadress /user:$username $pwd | Out-Null
Copy-Item \"C:\test.txt\" -Destination $destination
Net use $letter /delete | Out-Null
}
Get-Job | Wait-Job
Get-Job | Receive-Job
Remove-Job -State Completed[/code:1]
Merci pour votre aide
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 11 ans 6 mois #18115
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Job powershell qui bloque avec New-PsDrive
MrGears écrit:
J'ai testé ton code avec un UNC local et sans code de gestion des credentials, cela ne pose pas de pb.
Si tu as le temps créé un bug sur MSconnect.
C'est effectivement une des choses à tester.Cependant j'ai déjà résolu mon problème en utilisant Net-Use au lieu de New-Psdrive, comme ceci :
J'ai testé ton code avec un UNC local et sans code de gestion des credentials, cela ne pose pas de pb.
Si tu as le temps créé un bug sur MSconnect.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.048 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Job powershell qui bloque avec New-PsDrive