Question
Gestion de logs / erreurs
- dimshell
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 86
- Remerciements reçus 0
il y a 7 ans 2 mois #28437
par dimshell
Réponse de dimshell sur le sujet Re:Gestion de logs / erreurs
Merci pour ta réponse.
Mais c'est fiable à 100% ? car si il contient des valeurs cela ne veut pas dire que je suis connecté dessus ?
[code:1]try
{
$testses = New-PSSession -ComputerName server -Credential $creds
if ($testses){
write-host \"connexion session\" -ForegroundColor green
return 0
}
}
catch [System.Management.Automation.Remoting.PSRemotingTransportException]
{
write-host \"Impossible session\" -ForegroundColor red
return -1
}
finally {
Remove-PSSession $testses
write-host \"session stop\" -ForegroundColor green
}
[/code:1]<br><br>Message édité par: dimshell, à: 11/03/19 10:45
Mais c'est fiable à 100% ? car si il contient des valeurs cela ne veut pas dire que je suis connecté dessus ?
[code:1]try
{
$testses = New-PSSession -ComputerName server -Credential $creds
if ($testses){
write-host \"connexion session\" -ForegroundColor green
return 0
}
}
catch [System.Management.Automation.Remoting.PSRemotingTransportException]
{
write-host \"Impossible session\" -ForegroundColor red
return -1
}
finally {
Remove-PSSession $testses
write-host \"session stop\" -ForegroundColor green
}
[/code:1]<br><br>Message édité par: dimshell, à: 11/03/19 10:45
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 7 ans 2 mois #28446
par Philippe
Réponse de Philippe sur le sujet Re:Gestion de logs / erreurs
oui si la session n'a pas pu etre ouverte New-PSSession renvoie nullMais c'est fiable à 100% ?
si il contient des valeurs c'est à dire l'id de session et les parametres de session, alors la session est ouvertecar si il contient des valeurs cela ne veut pas dire que je suis connecté dessus ?
Connexion ou Créer un compte pour participer à la conversation.
- dimshell
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 86
- Remerciements reçus 0
il y a 7 ans 2 mois #28448
par dimshell
Réponse de dimshell sur le sujet Re:Gestion de logs / erreurs
<br><br>Message édité par: dimshell, à: 12/03/19 12:51
Connexion ou Créer un compte pour participer à la conversation.
- dimshell
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 86
- Remerciements reçus 0
il y a 7 ans 2 mois #28449
par dimshell
Réponse de dimshell sur le sujet Re:Gestion de logs / erreurs
Merci pour ta réponse.
J'ai avancé sur mon script.
Je regardes pour tester si la connexion est fini.
Si je mets des return -1 et 0 mon script va être bloqué à la première erreur ?
Dis moi si rien ne te choque stp.
[code:1]start-transcript -path \".\logs\log.rtf\"
function get-Ping
{# Name of server
Param($Servername)
# fonction de test
try
{
$connetion = Test-Connection -computername $Servername -Count 3 -ErrorAction Stop
Write-Host \"- $Servername : Ping réussi !\" -ForegroundColor Green
return 0
}
catch [System.Net.NetworkInformation.PingException]
{
Write-Host \"+ $Servername : Echec Ping = Démarrage Serveur nécessaire - Serveur inacessible !\" -ForegroundColor Red
return -1
}
Finally {$Error.Clear()}
}
#execution du code
$ok =1
$serversname = \"server\"
foreach ($server in $serversname){
if (get-Ping $server){
$ok =0
}
}
if($ok){
$content = \"$($env:USERPROFILE)\Documents\Cred.txt\"
$destinationfile = \"$($env:USERPROFILE)\Documents\test\"
#### Serveur - server - ####
$filedump = \"$($env:USERPROFILE)\Documents\test\WindumpNetcare.csv\"
$password = Get-Content $content | ConvertTo-SecureString -Key $key
$creds = New-Object -TypeName System.Management.Automation.PsCredential -ArgumentList (\"user\", $password)
try {
$idsession= New-PSSession -ComputerName server -Credential $creds -ErrorAction SilentlyContinue
}
catch [System.Management.Automation.Remoting.PSRemotingTransportException]{
write-host \"+ Impossible de se connecter : Erreur identifiants server\" -ForegroundColor red
}
if ($idsession -eq $null){
Write-Host \"+ Erreur identifiants\" -ForegroundColor Red
}
try {
Copy-Item -Path C:\Users\user\Documents\WindumpNetcare.csv -FromSession $idsession -Destination $destinationfile -ErrorAction Stop
}
catch [System.ArgumentException]{
Write-Host \"+ Fichier WindumpNetcare.csv non présent sur server\" -ForegroundColor Red
}
catch [System.Management.Automation.ParameterBindingException]{
Write-Host \"+ Impossible de copier le fichier WindumpNetcare.csv : Erreur identifiants server\" -ForegroundColor Red
}
If ((Test-Path -Path $filedump) -eq $True)
{
Write-Host \"- Fichier CSV :«»server est téléchargé \"-ForegroundColor Green
}
else{
Write-Host \"+ Fichier CSV server non téléchargé\" -ForegroundColor Red
}
Remove-PSSession $idsession
}
Stop-Transcript
[/code:1]
Message édité par: dimshell, à: 12/03/19 12:52
Message édité par: dimshell, à: 12/03/19 12:53
Message édité par: dimshell, à: 12/03/19 12:55
Message édité par: dimshell, à: 12/03/19 12:57<br><br>Message édité par: dimshell, à: 12/03/19 13:06
J'ai avancé sur mon script.
Je regardes pour tester si la connexion est fini.
Si je mets des return -1 et 0 mon script va être bloqué à la première erreur ?
Dis moi si rien ne te choque stp.
[code:1]start-transcript -path \".\logs\log.rtf\"
function get-Ping
{# Name of server
Param($Servername)
# fonction de test
try
{
$connetion = Test-Connection -computername $Servername -Count 3 -ErrorAction Stop
Write-Host \"- $Servername : Ping réussi !\" -ForegroundColor Green
return 0
}
catch [System.Net.NetworkInformation.PingException]
{
Write-Host \"+ $Servername : Echec Ping = Démarrage Serveur nécessaire - Serveur inacessible !\" -ForegroundColor Red
return -1
}
Finally {$Error.Clear()}
}
#execution du code
$ok =1
$serversname = \"server\"
foreach ($server in $serversname){
if (get-Ping $server){
$ok =0
}
}
if($ok){
$content = \"$($env:USERPROFILE)\Documents\Cred.txt\"
$destinationfile = \"$($env:USERPROFILE)\Documents\test\"
#### Serveur - server - ####
$filedump = \"$($env:USERPROFILE)\Documents\test\WindumpNetcare.csv\"
$password = Get-Content $content | ConvertTo-SecureString -Key $key
$creds = New-Object -TypeName System.Management.Automation.PsCredential -ArgumentList (\"user\", $password)
try {
$idsession= New-PSSession -ComputerName server -Credential $creds -ErrorAction SilentlyContinue
}
catch [System.Management.Automation.Remoting.PSRemotingTransportException]{
write-host \"+ Impossible de se connecter : Erreur identifiants server\" -ForegroundColor red
}
if ($idsession -eq $null){
Write-Host \"+ Erreur identifiants\" -ForegroundColor Red
}
try {
Copy-Item -Path C:\Users\user\Documents\WindumpNetcare.csv -FromSession $idsession -Destination $destinationfile -ErrorAction Stop
}
catch [System.ArgumentException]{
Write-Host \"+ Fichier WindumpNetcare.csv non présent sur server\" -ForegroundColor Red
}
catch [System.Management.Automation.ParameterBindingException]{
Write-Host \"+ Impossible de copier le fichier WindumpNetcare.csv : Erreur identifiants server\" -ForegroundColor Red
}
If ((Test-Path -Path $filedump) -eq $True)
{
Write-Host \"- Fichier CSV :«»server est téléchargé \"-ForegroundColor Green
}
else{
Write-Host \"+ Fichier CSV server non téléchargé\" -ForegroundColor Red
}
Remove-PSSession $idsession
}
Stop-Transcript
[/code:1]
Message édité par: dimshell, à: 12/03/19 12:52
Message édité par: dimshell, à: 12/03/19 12:53
Message édité par: dimshell, à: 12/03/19 12:55
Message édité par: dimshell, à: 12/03/19 12:57<br><br>Message édité par: dimshell, à: 12/03/19 13:06
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 7 ans 2 mois #28450
par Philippe
Réponse de Philippe sur le sujet Re:Gestion de logs / erreurs
si tu fais ça ca fonctionne pas !!! :
[code:1]try {
$idsession= New-PSSession -ComputerName server -ErrorAction SilentlyContinue
}
catch [System.Management.Automation.Remoting.PSRemotingTransportException]{
write-host \"+ Impossible de se connecter : Erreur identifiants server\" -ForegroundColor red
}[/code:1]le -ErrorAction SilentlyContinue demande de na pas généré d'erreur pour l'instruction
if faut faire ça :
[code:1] $idsession= New-PSSession -ComputerName server -ErrorAction stop
[/code:1]
apres cette gestion de $idsession est une bonne idée mais comme tu le fait tu execute quand même la copie quand il y a une erreur !
[code:1]if ($idsession -eq $null){
Write-Host \"+ Erreur identifiants\" -ForegroundColor Red
}[/code:1]
utilise plutot cette ecriture :
[code:1]if ($idsession) {
try {
Copy-Item -Path C:\Users\user\Documents\WindumpNetcare.csv -FromSession $idsession -Destination $destinationfile -ErrorAction Stop
}
catch [System.ArgumentException]{
Write-Host \"+ Fichier WindumpNetcare.csv non présent sur server\" -ForegroundColor Red
}
catch [System.Management.Automation.ParameterBindingException]{
Write-Host \"+ Impossible de copier le fichier WindumpNetcare.csv : Erreur identifiants server\" -ForegroundColor Red
}
If ((Test-Path -Path $filedump) -eq $True) {
Write-Host \"- Fichier CSV :«»server est téléchargé \"-ForegroundColor Green
}
else {
Write-Host \"+ Fichier CSV server non téléchargé\" -ForegroundColor Red
}
Remove-PSSession $idsession
}
else {
Write-Host \"+ Erreur identifiants\" -ForegroundColor Red
}[/code:1]
et surtout utilise l'indentation car vraiment lourd a lire un completement tassé !
si tu veux utilise studio code pour ecrire tes scripts, il a un systeme d'indentation automatique et aussi de remise en forme de script
[code:1]try {
$idsession= New-PSSession -ComputerName server -ErrorAction SilentlyContinue
}
catch [System.Management.Automation.Remoting.PSRemotingTransportException]{
write-host \"+ Impossible de se connecter : Erreur identifiants server\" -ForegroundColor red
}[/code:1]le -ErrorAction SilentlyContinue demande de na pas généré d'erreur pour l'instruction
if faut faire ça :
[code:1] $idsession= New-PSSession -ComputerName server -ErrorAction stop
[/code:1]
apres cette gestion de $idsession est une bonne idée mais comme tu le fait tu execute quand même la copie quand il y a une erreur !
[code:1]if ($idsession -eq $null){
Write-Host \"+ Erreur identifiants\" -ForegroundColor Red
}[/code:1]
utilise plutot cette ecriture :
[code:1]if ($idsession) {
try {
Copy-Item -Path C:\Users\user\Documents\WindumpNetcare.csv -FromSession $idsession -Destination $destinationfile -ErrorAction Stop
}
catch [System.ArgumentException]{
Write-Host \"+ Fichier WindumpNetcare.csv non présent sur server\" -ForegroundColor Red
}
catch [System.Management.Automation.ParameterBindingException]{
Write-Host \"+ Impossible de copier le fichier WindumpNetcare.csv : Erreur identifiants server\" -ForegroundColor Red
}
If ((Test-Path -Path $filedump) -eq $True) {
Write-Host \"- Fichier CSV :«»server est téléchargé \"-ForegroundColor Green
}
else {
Write-Host \"+ Fichier CSV server non téléchargé\" -ForegroundColor Red
}
Remove-PSSession $idsession
}
else {
Write-Host \"+ Erreur identifiants\" -ForegroundColor Red
}[/code:1]
et surtout utilise l'indentation car vraiment lourd a lire un completement tassé !
si tu veux utilise studio code pour ecrire tes scripts, il a un systeme d'indentation automatique et aussi de remise en forme de script
Connexion ou Créer un compte pour participer à la conversation.
- dimshell
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 86
- Remerciements reçus 0
il y a 7 ans 2 mois #28451
par dimshell
Réponse de dimshell sur le sujet Re:Gestion de logs / erreurs
Merci pour ta réponse et tes corrections.
Je l'utilisé avant le stop mais je trouvais que le silentlycontinue me servirait plus.
Je vais indenter mon code je n'y penses pas je t'avoue =).
J'ai bien fait les modifs ça va niquel mais j'ai cette erreur si l'utilisateur renseigne mal un identifiant
[code:1]Copy-Item : Impossible d'exécuter l'opération, car la session Availability est définie sur None.
[/code:1]
Message édité par: dimshell, à: 12/03/19 14:16<br><br>Message édité par: dimshell, à: 12/03/19 14:41
Je l'utilisé avant le stop mais je trouvais que le silentlycontinue me servirait plus.
Je vais indenter mon code je n'y penses pas je t'avoue =).
J'ai bien fait les modifs ça va niquel mais j'ai cette erreur si l'utilisateur renseigne mal un identifiant
[code:1]Copy-Item : Impossible d'exécuter l'opération, car la session Availability est définie sur None.
[/code:1]
Message édité par: dimshell, à: 12/03/19 14:16<br><br>Message édité par: dimshell, à: 12/03/19 14:41
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.047 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Gestion de logs / erreurs