Question
Exporter le résultat d'un script Write-Host
- Pierre_oum90
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 4 ans 3 mois #29565
par Pierre_oum90
Exporter le résultat d'un script Write-Host a été créé par Pierre_oum90
Bonjour,
J'ai crée un script PowerShell permettant de récupérer les connexions sur des serveurs Citrix (le nom d'utilisateur et la date de connexion).
Voici le code :
[code:1]Get-WinEvent -MaxEvents 10 -FilterHashtable @{LogName = 'Application'
ID = 1}| Select-Object -Property Message, TimeCreated |ForEach-Object {
$Message = $_.Message
$TimeCreated=$_.TimeCreated
if( $Message.Contains(\"Nomdudomaine\"«»)) {
$Length = ($Message.ToCharArray() | Where-Object {$_} | Measure-Object).Count
$Message = $_
Write-Host $TimeCreated.ToString() $Message.Message.Substring(45, $Length - 47)
}}
[/code:1]
Cela fonctionne parfaitement ainsi, le problème est que j'aimerai maintenant exporter ces résultats dans un fichier .Txt ou un .Csv, or j'ai essayé en vain la fonction Export-Csv (qui génére un fichier .Csv vide).
Quelqu'un aurait une idée pour pouvoir me permettre d'exporter facilement mes résultats ?
Merci d'avance <br><br>Message édité par: Pierre_oum90, à: 18/12/19 12:11
J'ai crée un script PowerShell permettant de récupérer les connexions sur des serveurs Citrix (le nom d'utilisateur et la date de connexion).
Voici le code :
[code:1]Get-WinEvent -MaxEvents 10 -FilterHashtable @{LogName = 'Application'
ID = 1}| Select-Object -Property Message, TimeCreated |ForEach-Object {
$Message = $_.Message
$TimeCreated=$_.TimeCreated
if( $Message.Contains(\"Nomdudomaine\"«»)) {
$Length = ($Message.ToCharArray() | Where-Object {$_} | Measure-Object).Count
$Message = $_
Write-Host $TimeCreated.ToString() $Message.Message.Substring(45, $Length - 47)
}}
[/code:1]
Cela fonctionne parfaitement ainsi, le problème est que j'aimerai maintenant exporter ces résultats dans un fichier .Txt ou un .Csv, or j'ai essayé en vain la fonction Export-Csv (qui génére un fichier .Csv vide).
Quelqu'un aurait une idée pour pouvoir me permettre d'exporter facilement mes résultats ?
Merci d'avance <br><br>Message édité par: Pierre_oum90, à: 18/12/19 12:11
Connexion ou Créer un compte pour participer à la conversation.
- Troxsa
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 30
- Remerciements reçus 0
il y a 4 ans 3 mois #29566
par Troxsa
Réponse de Troxsa sur le sujet Re:Exporter le résultat d'un script Write-Host
Bonjour,
ou pouvez faire
[code:1]Write-Output $TimeCreated.ToString() $Message.Message.Substring(45, $Length - 47) | Out-File .\toto2.txt -Append[/code:1]
Votre chaine n'est pas une chaine de type string la mise en en forme ne va pas être top
Votre bout de script est a mon gout trop encapsuler vous devriez le faire en le décomposant un peut plus
attention a la redéfinition des variables cela pourrais avoir des problèmes de traitement ou avoir des relectures difficile
voila comment j'aurais fait
[code:1] $Event = Get-WinEvent -MaxEvents 10 -FilterHashtable @{ LogName = 'Application'; ID = 1} | Select-Object -Property Message, TimeCreated
$OutFileLog = @()
$Event | % {
$Message = $_.Message
$TimeCreated=$_.TimeCreated
if( $Message.Contains(\"DomaineGroup\"«»))
{
#Write-Output $TimeCreated.ToString() $Message.Substring(45, ($Message.Length) - 47) | Out-File .\toto2.txt -Append
$OutFileLog += [pscustomobject]@{
TimeCreated = $TimeCreated.ToString()
Message = $Message.Substring(45, ($Message.Length) - 47)
}
}
}
$OutFileLog | Export-Csv .\outfile.csv -Encoding Default -NoTypeInformation -Append[/code:1]
ou pouvez faire
[code:1]Write-Output $TimeCreated.ToString() $Message.Message.Substring(45, $Length - 47) | Out-File .\toto2.txt -Append[/code:1]
Votre chaine n'est pas une chaine de type string la mise en en forme ne va pas être top
Votre bout de script est a mon gout trop encapsuler vous devriez le faire en le décomposant un peut plus
attention a la redéfinition des variables cela pourrais avoir des problèmes de traitement ou avoir des relectures difficile
voila comment j'aurais fait
[code:1] $Event = Get-WinEvent -MaxEvents 10 -FilterHashtable @{ LogName = 'Application'; ID = 1} | Select-Object -Property Message, TimeCreated
$OutFileLog = @()
$Event | % {
$Message = $_.Message
$TimeCreated=$_.TimeCreated
if( $Message.Contains(\"DomaineGroup\"«»))
{
#Write-Output $TimeCreated.ToString() $Message.Substring(45, ($Message.Length) - 47) | Out-File .\toto2.txt -Append
$OutFileLog += [pscustomobject]@{
TimeCreated = $TimeCreated.ToString()
Message = $Message.Substring(45, ($Message.Length) - 47)
}
}
}
$OutFileLog | Export-Csv .\outfile.csv -Encoding Default -NoTypeInformation -Append[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Pierre_oum90
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 4 ans 3 mois #29573
par Pierre_oum90
Réponse de Pierre_oum90 sur le sujet Re:Exporter le résultat d'un script Write-Host
Bonjour,
Merci, cela fonctionne parfaitement
A+
Merci, cela fonctionne parfaitement
A+
Connexion ou Créer un compte pour participer à la conversation.
- Pierre_oum90
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 4 ans 2 mois #29586
par Pierre_oum90
Réponse de Pierre_oum90 sur le sujet Re:Exporter le résultat d'un script Write-Host
<br><br>Message édité par: Pierre_oum90, à: 2/01/20 09:58
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
- Exporter le résultat d'un script Write-Host