Question
espace entre chaque caractère après un echo
- PELLIER
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 2
- Remerciements reçus 0
j'ai quelque petit soucis pour faire remonter une ligne dans un fichier de log en réseau, l'heur et la date du démarrage du server/PC, (tâche planifier au démarrage du system avec windows 2003 et 2008r2)
avec un simple .bat,
mais le soucis c'est que quand le réseau n'est pas encore initialisé, le .bat s’exécute et ne trouve pas le chemin réseau (logique) et ducoup ne m'inscrit rien dans mon log. (quelque fois le réseau s'initialise un peu plus vite et inscrit bien la ligne dans mon .log)
j'ai contourné le problème avec un départ différé de la tâche mais j'aime pas.
j'ai donc contourné ce problème en PS.
mon problème réel est la sortie de ce fichier
je voudrais un .log qui me ressorte :
26/07/2015 20:55:34 Serveur (re)démarré
sur mon poste actuel en windows 8 le script me ressort bien cette ligne:
27/07/2015 09:54:53 Serveur (re)démarré
et sur mes server en 2003 et 2008 il me ressort
2 7 / 0 7 / 2 0 1 5 1 0 : 0 0 : 3 1 S e r v e u r ( r e ) d é m a r r é
(ces 2 lignes sont exactement le même scripte mais lancé sur 2 poste différent)
donc voila je sollicite votre aide pour régler ce problème ennuyant car au bout de 2 jour de recherche j'ai ne voix aucune info de ce genre, a croire que je suis tout seul à rencontrer ce soucis.
et voici mon script
[code:1]$dossier_Logs = \"\\amnesix.xxxx.local\Sauvegardes\Logs\\"
#pour autoriser lexecution de script PS lancer la commande \"Set-ExecutionPolicy RemoteSigned\" dans PS
#dans le plannificateur de tache, lancer le programme \"powershell.exe\" et mettre le chemin du scripts en argument
#ne pas mettre despace dans le nom du script
$nom = hostname #recuperation du nom d'hote
$fichier_Logs = \"RESTART $nom.log\" #construction du nom du fichier log
while (1){ #debut de boucle
If (-not (Test-Path $dossier_Logs)){ #test de la presence du dossier de Logs
sleep 2 #attend 2 seconde pour relancer le test
}else{
$date = (Get-Date -format 'dd/MM/yyyy HH:mm:«»ss') #recuperation de l'heur et de la date
echo \"$date Serveur (re)démarré\" >> $dossier_Logs$fichier_Logs #inscription dans le fichier Logs une fois la connexion réseau établi
break
}
}[/code:1]<br><br>Message édité par: rabbit14000, à: 27/07/15 10:10
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
rabbit14000 écrit:
si tu est en domaine, tu a une solution par GPO voir cette articlemais le soucis c'est que quand le réseau n'est pas encore initialisé, le .bat s’exécute et ne trouve pas le chemin réseau (logique) et ducoup ne m'inscrit rien dans mon log. (quelque fois le réseau s'initialise un peu plus vite et inscrit bien la ligne dans mon .log)
j'ai contourné le problème avec un départ différé de la tâche mais j'aime pas.
Soit une GPO avec cet options d'activé : Configuration ordinateur\Modèles d'administration\Système\Ouverture de session\ Toujours attendre le réseau lors du démarrage et de l'ouverture de session de l'ordinateur
j'ai fait des test sur 4 ou 5 serveurs 2003 et 2008R2 sans reproduit le problème !mon problème réel est la sortie de ce fichier
je voudrais un .log qui me ressorte :
26/07/2015 20:55:34 Serveur (re)démarré
sur mon poste actuel en windows 8 le script me ressort bien cette ligne:
27/07/2015 09:54:53 Serveur (re)démarré
et sur mes server en 2003 et 2008 il me ressort
2 7 / 0 7 / 2 0 1 5 1 0 : 0 0 : 3 1 S e r v e u r ( r e ) d é m a r r é
Peut être un problème d'encodage ?
essai en modifient cette ligne comme ceci :
[code:1] $date = (Get-Date -format 'dd/MM/yyyy HH:mm:«»ss').tostring() # recuperation de l'heur et de la date
[/code:1]
vérifie et change l'encodage du fichier qui contient le script
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- espace entre chaque caractère après un echo