Question
Exécution d'un script
- ArnoD
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 2 ans 4 mois - il y a 2 ans 4 mois #31481
par ArnoD
Exécution d'un script a été créé par ArnoD
Bonjour à tous,
J'ai écrit un script powershell qui permet de tester / monter mes partages réseaux.
Si le script est exécuté dans powershell ise, l'exécution se déroule correctement :
- affichage des informations attendues (write-host),
- apparition des partages réseaux dans l'explorateur.
Si le script est exécuté dans powershell, l'exécution semble se dérouler correctement :
- affichage des informations attendues (write-host),
- pas de partages réseaux dans l'explorateur.
J'ai modifié des droits "ExecutionPolicy", exécuté powershell en admin ... Rien y fait.
Si vous avez des idées, je suis preneur.
Merci d'avance pour votre aide.
- Mon Script -
Clear-Host
$devicename = "NomServeur"
$ipaddress = "x.x.x.x"
$shareverif = "FichierTest"
$sharename = @("share1", "share2", "share3")
$countshare = $sharename.Length
$shareid = @("O", "P", "Q")
$count = 0
#Test Résolution Host & PingIP
if (test-connection $devicename -count 1 -quiet) {
$count = 1
write-host $devicename "Host OK." -foreground green
if (test-connection $ipaddress -count 1 -quiet) {
write-host $ipaddress "Ping OK." -foreground green
} else {
$count = 3
write-host $ipaddress "Ping NOK." -foreground red
write-host "Attention : Problème à identifier."
}
} else {
write-host $devicename "Host NOK." -foreground red
if (test-connection $ipaddress -count 1 -quiet) {
$count = 2
write-host $ipaddress "Ping OK." -foreground green
} else {
$count = 3
write-host $ipaddress "Ping NOK." -foreground red
write-host "Attention : Problème à identifier."
}
}
For ( $i=0 ; $i -lt $countshare ; $i=$i+1 )
{
#write-host "$i"
write-host ""
$sharename2 = $sharename[$i]
$lecteurpath = $shareid[$i]
$lecteur = $lecteurpath + ":\$shareverif"
write-host "$sharename2"
write-host "$lecteurpath"
write-host "$lecteur"
if ($count -eq 1) {
$UNC = "\\$devicename\$sharename2"
} else {
if ($count -eq 2) {
$UNC = "\\$ipaddress\$sharename2"
} else {
if ($count -eq 3) {
$UNC = ""
write-host "Attention : Problème à identifier."
}
}
}
write-host "$UNC"
$user = "cptuser"
$mdp ="cptpwd"
$SecureString = ConvertTo-SecureString $mdp -AsPlainText -Force
$Credentials = New-Object System.Management.Automation.PSCredential $user, $SecureString
if ( $count -eq 1 -or $count -eq 2 ) {
if (Test-Path $lecteur) {
Get-Content $lecteur
Write-Host "Le lecteur $lecteurpath est déjà monté !"
} else {
Write-Host "Le lecteur $lecteurpath n'est pas monté !"
Write-Host "Tentative ..."
New-PSDrive -name $lecteurpath -PSProvider FileSystem -Root $UNC -Persist -Credential $Credentials
if (Test-Path $lecteur) {
Get-Content $lecteur
Write-Host "Le lecteur $lecteurpath est maintenant monté !"
} else {
Write-Host "Impossible de monter le lecteur $lecteurpath !"
}
}
}
}
J'ai écrit un script powershell qui permet de tester / monter mes partages réseaux.
Si le script est exécuté dans powershell ise, l'exécution se déroule correctement :
- affichage des informations attendues (write-host),
- apparition des partages réseaux dans l'explorateur.
Si le script est exécuté dans powershell, l'exécution semble se dérouler correctement :
- affichage des informations attendues (write-host),
- pas de partages réseaux dans l'explorateur.
J'ai modifié des droits "ExecutionPolicy", exécuté powershell en admin ... Rien y fait.
Si vous avez des idées, je suis preneur.
Merci d'avance pour votre aide.
- Mon Script -
Clear-Host
$devicename = "NomServeur"
$ipaddress = "x.x.x.x"
$shareverif = "FichierTest"
$sharename = @("share1", "share2", "share3")
$countshare = $sharename.Length
$shareid = @("O", "P", "Q")
$count = 0
#Test Résolution Host & PingIP
if (test-connection $devicename -count 1 -quiet) {
$count = 1
write-host $devicename "Host OK." -foreground green
if (test-connection $ipaddress -count 1 -quiet) {
write-host $ipaddress "Ping OK." -foreground green
} else {
$count = 3
write-host $ipaddress "Ping NOK." -foreground red
write-host "Attention : Problème à identifier."
}
} else {
write-host $devicename "Host NOK." -foreground red
if (test-connection $ipaddress -count 1 -quiet) {
$count = 2
write-host $ipaddress "Ping OK." -foreground green
} else {
$count = 3
write-host $ipaddress "Ping NOK." -foreground red
write-host "Attention : Problème à identifier."
}
}
For ( $i=0 ; $i -lt $countshare ; $i=$i+1 )
{
#write-host "$i"
write-host ""
$sharename2 = $sharename[$i]
$lecteurpath = $shareid[$i]
$lecteur = $lecteurpath + ":\$shareverif"
write-host "$sharename2"
write-host "$lecteurpath"
write-host "$lecteur"
if ($count -eq 1) {
$UNC = "\\$devicename\$sharename2"
} else {
if ($count -eq 2) {
$UNC = "\\$ipaddress\$sharename2"
} else {
if ($count -eq 3) {
$UNC = ""
write-host "Attention : Problème à identifier."
}
}
}
write-host "$UNC"
$user = "cptuser"
$mdp ="cptpwd"
$SecureString = ConvertTo-SecureString $mdp -AsPlainText -Force
$Credentials = New-Object System.Management.Automation.PSCredential $user, $SecureString
if ( $count -eq 1 -or $count -eq 2 ) {
if (Test-Path $lecteur) {
Get-Content $lecteur
Write-Host "Le lecteur $lecteurpath est déjà monté !"
} else {
Write-Host "Le lecteur $lecteurpath n'est pas monté !"
Write-Host "Tentative ..."
New-PSDrive -name $lecteurpath -PSProvider FileSystem -Root $UNC -Persist -Credential $Credentials
if (Test-Path $lecteur) {
Get-Content $lecteur
Write-Host "Le lecteur $lecteurpath est maintenant monté !"
} else {
Write-Host "Impossible de monter le lecteur $lecteurpath !"
}
}
}
}
Dernière édition: il y a 2 ans 4 mois par ArnoD. Raison: Ajout d'informations
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 2 ans 4 mois #31482
par Philippe
Réponse de Philippe sur le sujet Exécution d'un script
salut ArnoD
je pense que ton problème est décrit dans cet extrait de la doc de New-PSDrive :
When you scope the command locally, that is, without dot-sourcing, the Persist parameter does not persist the creation of a PSDrive beyond the scope in which you run the command. If you run New-PSDrive inside a script, and you want the new drive to persist indefinitely, you must dot-source the script. For best results, to force a new drive to persist, specify Global as the value of the Scope parameterin addition to adding Persist to your command.
En gros à l'origine, New-PSDrive ne fonctionne pour dans le monde PowerShell.
Mais l'utilisation du paramètre "persist" l'étend au reste du Windows. sauf qu'il supprime les lecteurs à la fermeture de la console PowerShell
La solution consiste à rajouter le paramètre "-Scope Global" dans ta commande New-PSDrive
Normalement cela devrait résoudre ton problème.
je pense que ton problème est décrit dans cet extrait de la doc de New-PSDrive :
When you scope the command locally, that is, without dot-sourcing, the Persist parameter does not persist the creation of a PSDrive beyond the scope in which you run the command. If you run New-PSDrive inside a script, and you want the new drive to persist indefinitely, you must dot-source the script. For best results, to force a new drive to persist, specify Global as the value of the Scope parameterin addition to adding Persist to your command.
En gros à l'origine, New-PSDrive ne fonctionne pour dans le monde PowerShell.
Mais l'utilisation du paramètre "persist" l'étend au reste du Windows. sauf qu'il supprime les lecteurs à la fermeture de la console PowerShell
La solution consiste à rajouter le paramètre "-Scope Global" dans ta commande New-PSDrive
Normalement cela devrait résoudre ton problème.
Connexion ou Créer un compte pour participer à la conversation.
- ArnoD
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 2 ans 4 mois #31483
par ArnoD
Réponse de ArnoD sur le sujet Exécution d'un script
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.068 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Exécution d'un script