Sur un serveur IIS, j'aimerai eplucher le LOG à la date du jour, en faisant
resortir comme
resultat, l'adresse IP et le champ URL.
En tapant mon IP en Echo, l'ouput searit par exemple:
192.168.1.45 get www.google.fr/recherche/toto
Merci d'avance,
Robby
Sur un serveur IIS, j'aimerai eplucher le LOG à la date du jour, en faisant resortir comme resultat, l'adresse IP et le champ URL. En tapant mon IP en Echo, l'ouput searit par exemple: 192.168.1.45 get www.google.fr/recherche/toto
A priori très facile à faire. Je n'ai pas de fichier log d'IIS sous la main, tu peux fournir quelques lignes en exemple?
Jacques
"Robby" <fabrice@discussions.microsoft.com> wrote in message
news:uREBHIADIHA.5328@TK2MSFTNGP05.phx.gbl...
Bonjour,
Sur un serveur IIS, j'aimerai eplucher le LOG à la date du jour, en
faisant resortir comme
resultat, l'adresse IP et le champ URL.
En tapant mon IP en Echo, l'ouput searit par exemple:
192.168.1.45 get www.google.fr/recherche/toto
A priori très facile à faire. Je n'ai pas de fichier log d'IIS sous la main,
tu peux fournir quelques lignes en exemple?
Sur un serveur IIS, j'aimerai eplucher le LOG à la date du jour, en faisant resortir comme resultat, l'adresse IP et le champ URL. En tapant mon IP en Echo, l'ouput searit par exemple: 192.168.1.45 get www.google.fr/recherche/toto
A priori très facile à faire. Je n'ai pas de fichier log d'IIS sous la main, tu peux fournir quelques lignes en exemple?
Jacques
Robby
J'ai fait cela et ca fonctionne : param ($IP = ".") get-content "monserveurW3SVC1ex071011.log" | select-string "$IP" > result.txt
Mais je voudrais que se soit interactif comme avec une commande ECHO -n Il y a aussi le pb que le fichier log change de nom en fonction de la date du jour.
le debut du fichier log : --------------------------- #Software: Microsoft Internet Information Services 5.1 #Version: 1.0 #Date: 2007-10-11 00:01:24 #Fields: time c-ip cs-method cs-uri-stem sc-status 00:01:24 192.168.1.178 GET /mrtg/index1.html 304 -------------------------------------------- Pourrais tu m'aider ?
Merci d'avance,
Robby
"Jacques Barathon [MS]" a écrit dans le message de news: Og%
"Robby" wrote in message news:
Bonjour,
Sur un serveur IIS, j'aimerai eplucher le LOG à la date du jour, en faisant resortir comme resultat, l'adresse IP et le champ URL. En tapant mon IP en Echo, l'ouput searit par exemple: 192.168.1.45 get www.google.fr/recherche/toto
A priori très facile à faire. Je n'ai pas de fichier log d'IIS sous la main, tu peux fournir quelques lignes en exemple?
Jacques
J'ai fait cela et ca fonctionne :
param ($IP = ".")
get-content "\monserveurW3SVC1ex071011.log" | select-string "$IP" >
result.txt
Mais je voudrais que se soit interactif comme avec une commande ECHO -n
Il y a aussi le pb que le fichier log change de nom en fonction de la date
du jour.
le debut du fichier log :
---------------------------
#Software: Microsoft Internet Information Services 5.1
#Version: 1.0
#Date: 2007-10-11 00:01:24
#Fields: time c-ip cs-method cs-uri-stem sc-status
00:01:24 192.168.1.178 GET /mrtg/index1.html 304
--------------------------------------------
Pourrais tu m'aider ?
Merci d'avance,
Robby
"Jacques Barathon [MS]" <jbaratho@online.microsoft.com> a écrit dans le
message de news: Og%23pKXBDIHA.4836@TK2MSFTNGP06.phx.gbl...
"Robby" <fabrice@discussions.microsoft.com> wrote in message
news:uREBHIADIHA.5328@TK2MSFTNGP05.phx.gbl...
Bonjour,
Sur un serveur IIS, j'aimerai eplucher le LOG à la date du jour, en
faisant resortir comme
resultat, l'adresse IP et le champ URL.
En tapant mon IP en Echo, l'ouput searit par exemple:
192.168.1.45 get www.google.fr/recherche/toto
A priori très facile à faire. Je n'ai pas de fichier log d'IIS sous la
main, tu peux fournir quelques lignes en exemple?
J'ai fait cela et ca fonctionne : param ($IP = ".") get-content "monserveurW3SVC1ex071011.log" | select-string "$IP" > result.txt
Mais je voudrais que se soit interactif comme avec une commande ECHO -n Il y a aussi le pb que le fichier log change de nom en fonction de la date du jour.
le debut du fichier log : --------------------------- #Software: Microsoft Internet Information Services 5.1 #Version: 1.0 #Date: 2007-10-11 00:01:24 #Fields: time c-ip cs-method cs-uri-stem sc-status 00:01:24 192.168.1.178 GET /mrtg/index1.html 304 -------------------------------------------- Pourrais tu m'aider ?
Merci d'avance,
Robby
"Jacques Barathon [MS]" a écrit dans le message de news: Og%
"Robby" wrote in message news:
Bonjour,
Sur un serveur IIS, j'aimerai eplucher le LOG à la date du jour, en faisant resortir comme resultat, l'adresse IP et le champ URL. En tapant mon IP en Echo, l'ouput searit par exemple: 192.168.1.45 get www.google.fr/recherche/toto
A priori très facile à faire. Je n'ai pas de fichier log d'IIS sous la main, tu peux fournir quelques lignes en exemple?
Jacques
Gilles LAURENT [MVP]
"Robby" a écrit dans le message de news: | Bonjour,
Bonjour,
| Sur un serveur IIS, j'aimerai eplucher le LOG à la date du jour, en | faisant resortir comme | resultat, l'adresse IP et le champ URL. | En tapant mon IP en Echo, l'ouput searit par exemple: | 192.168.1.45 get www.google.fr/recherche/toto
Note: Le chemin du fichier log est à adapter. Actuellement le fichier doit se situer dans le répertoire courant
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
"Robby" <fabrice@discussions.microsoft.com> a écrit dans le message de
news:uREBHIADIHA.5328@TK2MSFTNGP05.phx.gbl
| Bonjour,
Bonjour,
| Sur un serveur IIS, j'aimerai eplucher le LOG à la date du jour, en
| faisant resortir comme
| resultat, l'adresse IP et le champ URL.
| En tapant mon IP en Echo, l'ouput searit par exemple:
| 192.168.1.45 get www.google.fr/recherche/toto
"Robby" a écrit dans le message de news: | Bonjour,
Bonjour,
| Sur un serveur IIS, j'aimerai eplucher le LOG à la date du jour, en | faisant resortir comme | resultat, l'adresse IP et le champ URL. | En tapant mon IP en Echo, l'ouput searit par exemple: | 192.168.1.45 get www.google.fr/recherche/toto
Note: Le chemin du fichier log est à adapter. Actuellement le fichier doit se situer dans le répertoire courant
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
Jacques Barathon [MS]
"Robby" wrote in message news:e%
J'ai fait cela et ca fonctionne : param ($IP = ".") get-content "monserveurW3SVC1ex071011.log" | select-string "$IP" > result.txt
Mais je voudrais que se soit interactif comme avec une commande ECHO -n Il y a aussi le pb que le fichier log change de nom en fonction de la date du jour.
le debut du fichier log : --------------------------- #Software: Microsoft Internet Information Services 5.1 #Version: 1.0 #Date: 2007-10-11 00:01:24 #Fields: time c-ip cs-method cs-uri-stem sc-status 00:01:24 192.168.1.178 GET /mrtg/index1.html 304 -------------------------------------------- Pourrais tu m'aider ?
Pour le fichier log du jour, voir le script fourni par Gilles. Pour l'interactivité, un read-host devrait faire l'affaire. Les deux combinés, ça donne qq chose comme ça:
while ($true) { Get-Content $LogFile | Select-String $ip $ip = Read-Host -Prompt "Entrez une adresse IP ou pressez CTRL+C pour quitter" } # --- fin du script ---
Tu devrais pouvoir broder à partir de ça pour obtenir le résultat final que tu veux. Dans les optimisations possibles, tu pourrais charger le fichier en mémoire avant de commencer la boucle interactive. Ca évitera de recharger le fichier à chaque fois à partir du disque dur. Il y a également moyen d'améliorer l'affichage.
Jacques
"Robby" <fabrice@discussions.microsoft.com> wrote in message
news:e%230Ea0BDIHA.4956@TK2MSFTNGP06.phx.gbl...
J'ai fait cela et ca fonctionne :
param ($IP = ".")
get-content "\monserveurW3SVC1ex071011.log" | select-string "$IP" >
result.txt
Mais je voudrais que se soit interactif comme avec une commande ECHO -n
Il y a aussi le pb que le fichier log change de nom en fonction de la date
du jour.
le debut du fichier log :
---------------------------
#Software: Microsoft Internet Information Services 5.1
#Version: 1.0
#Date: 2007-10-11 00:01:24
#Fields: time c-ip cs-method cs-uri-stem sc-status
00:01:24 192.168.1.178 GET /mrtg/index1.html 304
--------------------------------------------
Pourrais tu m'aider ?
Pour le fichier log du jour, voir le script fourni par Gilles. Pour
l'interactivité, un read-host devrait faire l'affaire. Les deux combinés, ça
donne qq chose comme ça:
while ($true)
{
Get-Content $LogFile | Select-String $ip
$ip = Read-Host -Prompt "Entrez une adresse IP ou pressez CTRL+C pour
quitter"
}
# --- fin du script ---
Tu devrais pouvoir broder à partir de ça pour obtenir le résultat final que
tu veux. Dans les optimisations possibles, tu pourrais charger le fichier en
mémoire avant de commencer la boucle interactive. Ca évitera de recharger le
fichier à chaque fois à partir du disque dur. Il y a également moyen
d'améliorer l'affichage.
J'ai fait cela et ca fonctionne : param ($IP = ".") get-content "monserveurW3SVC1ex071011.log" | select-string "$IP" > result.txt
Mais je voudrais que se soit interactif comme avec une commande ECHO -n Il y a aussi le pb que le fichier log change de nom en fonction de la date du jour.
le debut du fichier log : --------------------------- #Software: Microsoft Internet Information Services 5.1 #Version: 1.0 #Date: 2007-10-11 00:01:24 #Fields: time c-ip cs-method cs-uri-stem sc-status 00:01:24 192.168.1.178 GET /mrtg/index1.html 304 -------------------------------------------- Pourrais tu m'aider ?
Pour le fichier log du jour, voir le script fourni par Gilles. Pour l'interactivité, un read-host devrait faire l'affaire. Les deux combinés, ça donne qq chose comme ça:
while ($true) { Get-Content $LogFile | Select-String $ip $ip = Read-Host -Prompt "Entrez une adresse IP ou pressez CTRL+C pour quitter" } # --- fin du script ---
Tu devrais pouvoir broder à partir de ça pour obtenir le résultat final que tu veux. Dans les optimisations possibles, tu pourrais charger le fichier en mémoire avant de commencer la boucle interactive. Ca évitera de recharger le fichier à chaque fois à partir du disque dur. Il y a également moyen d'améliorer l'affichage.
Jacques
Robby
Bonjour Gilles,
Merci pour ton SUPER script, ca fonctionne. Pourrais-tu m'expliquer un peu ce qu'il fait. Par ex: ForEach-Object {
"$_".Substring(9,"$_".Length-12) Encore merci,
Robby
"Gilles LAURENT [MVP]" a écrit dans le message de news:
"Robby" a écrit dans le message de news: | Bonjour,
Bonjour,
| Sur un serveur IIS, j'aimerai eplucher le LOG à la date du jour, en | faisant resortir comme | resultat, l'adresse IP et le champ URL. | En tapant mon IP en Echo, l'ouput searit par exemple: | 192.168.1.45 get www.google.fr/recherche/toto
Note: Le chemin du fichier log est à adapter. Actuellement le fichier doit se situer dans le répertoire courant
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
Bonjour Gilles,
Merci pour ton SUPER script, ca fonctionne.
Pourrais-tu m'expliquer un peu ce qu'il fait.
Par ex: ForEach-Object {
"$_".Substring(9,"$_".Length-12)
Encore merci,
Robby
"Gilles LAURENT [MVP]" <glsft@free.fr> a écrit dans le message de news:
OEuHMRCDIHA.3884@TK2MSFTNGP05.phx.gbl...
"Robby" <fabrice@discussions.microsoft.com> a écrit dans le message de
news:uREBHIADIHA.5328@TK2MSFTNGP05.phx.gbl
| Bonjour,
Bonjour,
| Sur un serveur IIS, j'aimerai eplucher le LOG à la date du jour, en
| faisant resortir comme
| resultat, l'adresse IP et le champ URL.
| En tapant mon IP en Echo, l'ouput searit par exemple:
| 192.168.1.45 get www.google.fr/recherche/toto
Merci pour ton SUPER script, ca fonctionne. Pourrais-tu m'expliquer un peu ce qu'il fait. Par ex: ForEach-Object {
"$_".Substring(9,"$_".Length-12) Encore merci,
Robby
"Gilles LAURENT [MVP]" a écrit dans le message de news:
"Robby" a écrit dans le message de news: | Bonjour,
Bonjour,
| Sur un serveur IIS, j'aimerai eplucher le LOG à la date du jour, en | faisant resortir comme | resultat, l'adresse IP et le champ URL. | En tapant mon IP en Echo, l'ouput searit par exemple: | 192.168.1.45 get www.google.fr/recherche/toto
Note: Le chemin du fichier log est à adapter. Actuellement le fichier doit se situer dans le répertoire courant
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
Robby
Bonjour Jacques, voila mon script qui fonctionne: Param ([String]$IP="127.0.0.1") $ip = Read-Host -Prompt "Entrez une adresse IP ou pressez CTRL+C pour quitter" while ($true) { $LogFile="ex"+$(Get-Date -uFormat "%y%m%d")+".log" Get-Content "infoxpW3SVC1$LogFile" | Select-String $IP >> resultatIP.txt }
MAIS il y a 2 choses qui ne vont pas, je voudrais que mon script revienne sur le prompt alors que je suis obligé de faire crtl-c. j'ai essayé avec DONE à la fin du script mais KO. le 2eme, c'est que je voudrais concerver le resultat precedent dans mon fichier resultatIP. j'ai essayé avec >> mais ca met les enregistrements en double. Merci d'avance, Robby
"Jacques Barathon [MS]" a écrit dans le message de news: %
"Robby" wrote in message news:e%
J'ai fait cela et ca fonctionne : param ($IP = ".") get-content "monserveurW3SVC1ex071011.log" | select-string "$IP" > result.txt
Mais je voudrais que se soit interactif comme avec une commande ECHO -n Il y a aussi le pb que le fichier log change de nom en fonction de la date du jour.
le debut du fichier log : --------------------------- #Software: Microsoft Internet Information Services 5.1 #Version: 1.0 #Date: 2007-10-11 00:01:24 #Fields: time c-ip cs-method cs-uri-stem sc-status 00:01:24 192.168.1.178 GET /mrtg/index1.html 304 -------------------------------------------- Pourrais tu m'aider ?
Pour le fichier log du jour, voir le script fourni par Gilles. Pour l'interactivité, un read-host devrait faire l'affaire. Les deux combinés, ça donne qq chose comme ça:
while ($true) { Get-Content $LogFile | Select-String $ip $ip = Read-Host -Prompt "Entrez une adresse IP ou pressez CTRL+C pour quitter" } # --- fin du script ---
Tu devrais pouvoir broder à partir de ça pour obtenir le résultat final que tu veux. Dans les optimisations possibles, tu pourrais charger le fichier en mémoire avant de commencer la boucle interactive. Ca évitera de recharger le fichier à chaque fois à partir du disque dur. Il y a également moyen d'améliorer l'affichage.
Jacques
Bonjour Jacques,
voila mon script qui fonctionne:
Param ([String]$IP="127.0.0.1")
$ip = Read-Host -Prompt "Entrez une adresse IP ou pressez CTRL+C pour
quitter"
while ($true)
{
$LogFile="ex"+$(Get-Date -uFormat "%y%m%d")+".log"
Get-Content "\infoxpW3SVC1$LogFile" |
Select-String $IP >> resultatIP.txt
}
MAIS il y a 2 choses qui ne vont pas, je voudrais que mon script revienne
sur le prompt alors que je suis obligé de faire crtl-c. j'ai essayé avec
DONE à la fin du script mais KO.
le 2eme, c'est que je voudrais concerver le resultat precedent dans mon
fichier resultatIP.
j'ai essayé avec >> mais ca met les enregistrements en double.
Merci d'avance,
Robby
"Jacques Barathon [MS]" <jbaratho@online.microsoft.com> a écrit dans le
message de news: %23AEFGPEDIHA.5044@TK2MSFTNGP03.phx.gbl...
"Robby" <fabrice@discussions.microsoft.com> wrote in message
news:e%230Ea0BDIHA.4956@TK2MSFTNGP06.phx.gbl...
J'ai fait cela et ca fonctionne :
param ($IP = ".")
get-content "\monserveurW3SVC1ex071011.log" | select-string "$IP" >
result.txt
Mais je voudrais que se soit interactif comme avec une commande ECHO -n
Il y a aussi le pb que le fichier log change de nom en fonction de la
date du jour.
le debut du fichier log :
---------------------------
#Software: Microsoft Internet Information Services 5.1
#Version: 1.0
#Date: 2007-10-11 00:01:24
#Fields: time c-ip cs-method cs-uri-stem sc-status
00:01:24 192.168.1.178 GET /mrtg/index1.html 304
--------------------------------------------
Pourrais tu m'aider ?
Pour le fichier log du jour, voir le script fourni par Gilles. Pour
l'interactivité, un read-host devrait faire l'affaire. Les deux combinés,
ça donne qq chose comme ça:
while ($true)
{
Get-Content $LogFile | Select-String $ip
$ip = Read-Host -Prompt "Entrez une adresse IP ou pressez CTRL+C pour
quitter"
}
# --- fin du script ---
Tu devrais pouvoir broder à partir de ça pour obtenir le résultat final
que tu veux. Dans les optimisations possibles, tu pourrais charger le
fichier en mémoire avant de commencer la boucle interactive. Ca évitera de
recharger le fichier à chaque fois à partir du disque dur. Il y a
également moyen d'améliorer l'affichage.
Bonjour Jacques, voila mon script qui fonctionne: Param ([String]$IP="127.0.0.1") $ip = Read-Host -Prompt "Entrez une adresse IP ou pressez CTRL+C pour quitter" while ($true) { $LogFile="ex"+$(Get-Date -uFormat "%y%m%d")+".log" Get-Content "infoxpW3SVC1$LogFile" | Select-String $IP >> resultatIP.txt }
MAIS il y a 2 choses qui ne vont pas, je voudrais que mon script revienne sur le prompt alors que je suis obligé de faire crtl-c. j'ai essayé avec DONE à la fin du script mais KO. le 2eme, c'est que je voudrais concerver le resultat precedent dans mon fichier resultatIP. j'ai essayé avec >> mais ca met les enregistrements en double. Merci d'avance, Robby
"Jacques Barathon [MS]" a écrit dans le message de news: %
"Robby" wrote in message news:e%
J'ai fait cela et ca fonctionne : param ($IP = ".") get-content "monserveurW3SVC1ex071011.log" | select-string "$IP" > result.txt
Mais je voudrais que se soit interactif comme avec une commande ECHO -n Il y a aussi le pb que le fichier log change de nom en fonction de la date du jour.
le debut du fichier log : --------------------------- #Software: Microsoft Internet Information Services 5.1 #Version: 1.0 #Date: 2007-10-11 00:01:24 #Fields: time c-ip cs-method cs-uri-stem sc-status 00:01:24 192.168.1.178 GET /mrtg/index1.html 304 -------------------------------------------- Pourrais tu m'aider ?
Pour le fichier log du jour, voir le script fourni par Gilles. Pour l'interactivité, un read-host devrait faire l'affaire. Les deux combinés, ça donne qq chose comme ça:
while ($true) { Get-Content $LogFile | Select-String $ip $ip = Read-Host -Prompt "Entrez une adresse IP ou pressez CTRL+C pour quitter" } # --- fin du script ---
Tu devrais pouvoir broder à partir de ça pour obtenir le résultat final que tu veux. Dans les optimisations possibles, tu pourrais charger le fichier en mémoire avant de commencer la boucle interactive. Ca évitera de recharger le fichier à chaque fois à partir du disque dur. Il y a également moyen d'améliorer l'affichage.
Jacques
Jacques Barathon [MS]
"Robby" wrote in message news:%
Bonjour Jacques, voila mon script qui fonctionne: Param ([String]$IP="127.0.0.1") $ip = Read-Host -Prompt "Entrez une adresse IP ou pressez CTRL+C pour quitter" while ($true) { $LogFile="ex"+$(Get-Date -uFormat "%y%m%d")+".log" Get-Content "infoxpW3SVC1$LogFile" | Select-String $IP >> resultatIP.txt }
MAIS il y a 2 choses qui ne vont pas, je voudrais que mon script revienne sur le prompt alors que je suis obligé de faire crtl-c. j'ai essayé avec DONE à la fin du script mais KO.
Dans le script que tu as recopié ci-dessus, le prompt n'est proposé qu'une fois pour toutes au début. C'est seulement après que le script attaque sa boucle "while ($true)". La boucle est sans fin puisque le test $true est toujours vrai par définition, donc en clair tu poses une fois la question "Entrez une adresse IP..." puis tu boucles à l'infini sur la même extraction de données. Il faut alors interrompre le processus avec CTRL+C.
Si tu veux 1) poser la question, 2) extraire les données correspondantes, et 3) reboucler sur 1, la version que je te proposais hier devrait convenir. Sinon, explique-moi ce que tu veux faire, je ne comprends pas bien.
Au passage, tu peux également remettre la ligne $LogFile=etc avant la boucle puisque, à moins que tu restes dans cette boucle autour de minuit, la valeur de $LogFile n'a aucune raison de changer en cours de route. Ca fera économiser quelques cycles de CPU à ton PC. :)
le 2eme, c'est que je voudrais concerver le resultat precedent dans mon fichier resultatIP. j'ai essayé avec >> mais ca met les enregistrements en double.
La démarche est pourtant bonne. Mais à mon avis, corrige déjà le problème de boucle comme signalé plus haut et ça ira mieux.
Jacques
"Robby" <fabrice@discussions.microsoft.com> wrote in message
news:%23UnZSSKDIHA.3916@TK2MSFTNGP02.phx.gbl...
Bonjour Jacques,
voila mon script qui fonctionne:
Param ([String]$IP="127.0.0.1")
$ip = Read-Host -Prompt "Entrez une adresse IP ou pressez CTRL+C pour
quitter"
while ($true)
{
$LogFile="ex"+$(Get-Date -uFormat "%y%m%d")+".log"
Get-Content "\infoxpW3SVC1$LogFile" |
Select-String $IP >> resultatIP.txt
}
MAIS il y a 2 choses qui ne vont pas, je voudrais que mon script revienne
sur le prompt alors que je suis obligé de faire crtl-c. j'ai essayé avec
DONE à la fin du script mais KO.
Dans le script que tu as recopié ci-dessus, le prompt n'est proposé qu'une
fois pour toutes au début. C'est seulement après que le script attaque sa
boucle "while ($true)". La boucle est sans fin puisque le test $true est
toujours vrai par définition, donc en clair tu poses une fois la question
"Entrez une adresse IP..." puis tu boucles à l'infini sur la même extraction
de données. Il faut alors interrompre le processus avec CTRL+C.
Si tu veux 1) poser la question, 2) extraire les données correspondantes, et
3) reboucler sur 1, la version que je te proposais hier devrait convenir.
Sinon, explique-moi ce que tu veux faire, je ne comprends pas bien.
Au passage, tu peux également remettre la ligne $LogFile=etc avant la boucle
puisque, à moins que tu restes dans cette boucle autour de minuit, la valeur
de $LogFile n'a aucune raison de changer en cours de route. Ca fera
économiser quelques cycles de CPU à ton PC. :)
le 2eme, c'est que je voudrais concerver le resultat precedent dans mon
fichier resultatIP.
j'ai essayé avec >> mais ca met les enregistrements en double.
La démarche est pourtant bonne. Mais à mon avis, corrige déjà le problème de
boucle comme signalé plus haut et ça ira mieux.
Bonjour Jacques, voila mon script qui fonctionne: Param ([String]$IP="127.0.0.1") $ip = Read-Host -Prompt "Entrez une adresse IP ou pressez CTRL+C pour quitter" while ($true) { $LogFile="ex"+$(Get-Date -uFormat "%y%m%d")+".log" Get-Content "infoxpW3SVC1$LogFile" | Select-String $IP >> resultatIP.txt }
MAIS il y a 2 choses qui ne vont pas, je voudrais que mon script revienne sur le prompt alors que je suis obligé de faire crtl-c. j'ai essayé avec DONE à la fin du script mais KO.
Dans le script que tu as recopié ci-dessus, le prompt n'est proposé qu'une fois pour toutes au début. C'est seulement après que le script attaque sa boucle "while ($true)". La boucle est sans fin puisque le test $true est toujours vrai par définition, donc en clair tu poses une fois la question "Entrez une adresse IP..." puis tu boucles à l'infini sur la même extraction de données. Il faut alors interrompre le processus avec CTRL+C.
Si tu veux 1) poser la question, 2) extraire les données correspondantes, et 3) reboucler sur 1, la version que je te proposais hier devrait convenir. Sinon, explique-moi ce que tu veux faire, je ne comprends pas bien.
Au passage, tu peux également remettre la ligne $LogFile=etc avant la boucle puisque, à moins que tu restes dans cette boucle autour de minuit, la valeur de $LogFile n'a aucune raison de changer en cours de route. Ca fera économiser quelques cycles de CPU à ton PC. :)
le 2eme, c'est que je voudrais concerver le resultat precedent dans mon fichier resultatIP. j'ai essayé avec >> mais ca met les enregistrements en double.
La démarche est pourtant bonne. Mais à mon avis, corrige déjà le problème de boucle comme signalé plus haut et ça ira mieux.
Jacques
F. Dunoyer [MVP]
Robby a formulé la demande :
Bonjour,
Sur un serveur IIS, j'aimerai eplucher le LOG à la date du jour, en faisant resortir comme resultat, l'adresse IP et le champ URL. En tapant mon IP en Echo, l'ouput searit par exemple: 192.168.1.45 get www.google.fr/recherche/toto Merci d'avance, Robby
AVant de réinventer la roue, regarde l'outil logparser de chez krosoft :)
exemple : http://www.hotline-pc.org/scripting/logparser.html
-- François Dunoyer [MVP Windows Server / Security] Quelques liens pour Windows : http://fds.mvps.org/AdressesInternets.htm Site perso : http://www.fdunoyer.net
Robby a formulé la demande :
Bonjour,
Sur un serveur IIS, j'aimerai eplucher le LOG à la date du jour, en faisant
resortir comme
resultat, l'adresse IP et le champ URL.
En tapant mon IP en Echo, l'ouput searit par exemple:
192.168.1.45 get www.google.fr/recherche/toto
Merci d'avance,
Robby
AVant de réinventer la roue, regarde l'outil logparser de chez krosoft
:)
exemple :
http://www.hotline-pc.org/scripting/logparser.html
--
François Dunoyer [MVP Windows Server / Security]
Quelques liens pour Windows : http://fds.mvps.org/AdressesInternets.htm
Site perso : http://www.fdunoyer.net
Sur un serveur IIS, j'aimerai eplucher le LOG à la date du jour, en faisant resortir comme resultat, l'adresse IP et le champ URL. En tapant mon IP en Echo, l'ouput searit par exemple: 192.168.1.45 get www.google.fr/recherche/toto Merci d'avance, Robby
AVant de réinventer la roue, regarde l'outil logparser de chez krosoft :)
exemple : http://www.hotline-pc.org/scripting/logparser.html
-- François Dunoyer [MVP Windows Server / Security] Quelques liens pour Windows : http://fds.mvps.org/AdressesInternets.htm Site perso : http://www.fdunoyer.net
Jacques Barathon [MS]
"F. Dunoyer [MVP]" ~.net> wrote in message news: ...
AVant de réinventer la roue, regarde l'outil logparser de chez krosoft :)
La syntaxe get-content ... | select-string ... est assez loin de l'invention de la roue. :-)
Jacques
Robby
Merci, Jacques mais plus precisement ??? La roue, elle existe deja, moi j'aimerais autre chose. Est-ce possible ? Consulter le LOG du jour et dans le fichier de resultat champ IP URL ? Merci d'avance, Robby.
"Jacques Barathon [MS]" a écrit dans le message de news: %237m$
"F. Dunoyer [MVP]" ~.net> wrote in message news: ...
AVant de réinventer la roue, regarde l'outil logparser de chez krosoft :)
La syntaxe get-content ... | select-string ... est assez loin de l'invention de la roue. :-)
Jacques
Merci, Jacques mais plus precisement ???
La roue, elle existe deja, moi j'aimerais autre chose.
Est-ce possible ?
Consulter le LOG du jour et dans le fichier de resultat champ IP URL ?
Merci d'avance,
Robby.
"Jacques Barathon [MS]" <jbaratho@online.microsoft.com> a écrit dans le
message de news: %237m$2PeEIHA.5044@TK2MSFTNGP03.phx.gbl...
"F. Dunoyer [MVP]" <wdunoyer-nimportequoi@laposte~.net> wrote in message
news:mn.90677d7a149ce399.14554@laposte.net...
...
AVant de réinventer la roue, regarde l'outil logparser de chez krosoft :)
Merci, Jacques mais plus precisement ??? La roue, elle existe deja, moi j'aimerais autre chose. Est-ce possible ? Consulter le LOG du jour et dans le fichier de resultat champ IP URL ? Merci d'avance, Robby.
"Jacques Barathon [MS]" a écrit dans le message de news: %237m$
"F. Dunoyer [MVP]" ~.net> wrote in message news: ...
AVant de réinventer la roue, regarde l'outil logparser de chez krosoft :)