Question Résultat requête "Query user" dans un fichier TXT

Plus d'informations
il y a 10 ans 2 mois #21202 par Gauld
Salut à tous,

Je suis ultra débutant en Powershell, je suppose que ceci a déjà été débattu plusieurs fois mais je n'ai pourtant pas trouvé de réponses à mes questions.

Je faisais un script/test tout bête pour visualiser puis exporter des infos sur les sessions ouvertes et les utilisateurs connectés sur des machines distantes. Le script est extrêmement simple, j'ai tenté plein de choses mais je n'arrive pas à faire une sortie propre dans un fichier TXT et encore moins dans un fichier CSV (pareil avec converttohtml). Ca doit bien être un problème d'objet ou quelque chose comme ça mais je sèche.

Voilà le script en question :

[code:1]
##############################################################################################################
#################################### Script - Utilisateurs connectés #########################################
##############################################################################################################

#### Début du script ?
$message = 'Script - Utilisateurs connectés'
$question = 'Lancer le script ?'

$choix = New-Object Collections.ObjectModel.Collection[Management.Automation.Host.ChoiceDescription]
$choix.Add((New-Object Management.Automation.Host.ChoiceDescription -ArgumentList '&Oui'))
$choix.Add((New-Object Management.Automation.Host.ChoiceDescription -ArgumentList '&Non'))

$decision = $Host.UI.PromptForChoice($message, $question, $choix, 1)
if ($decision -eq 0) {

#### Noms des machines
$machines = @(
, \"Machine1\"
, \"Machine2\"
, \"Machine3\"
)

### Création du fichier de Log
$date = Get-Date -Format \"dd.MM.yyyy-HH.mm\"
$FlagJDG = 'C:\temp\'+\"UtilisateursConnectés\"+$date+\".txt\"
New-Item -Path $FlagJDG -type file -Force

ADD-content -path $FlagJDG -value \"============================================================================================================================================\"
ADD-content -path $FlagJDG -value \"====================================== Début du script : $date ==================================================================\"
ADD-content -path $FlagJDG -value \"============================================================================================================================================\"

Foreach ($machine in $machines){
$test1 = Test-Connection -count 2 -ComputerName \"$machine\" -Quiet
if ($test1) {
Write-Host \"`r`nSession - $machine\"
$info = query session /server:$machine
Write-Host \"$info\"

Write-Host \"`r`nUtilisateurs - $machine\"
$info = query user /server:$machine
Write-Host \"$info\"
ADD-content -path $FlagJDG -value \"$info\"

Write-Host \"`r`n============================================================================\"
Write-Host \"Appuyez sur une touche pour continuer...\"
$KeyStroke = $host.UI.RawUI.ReadKey(\"NoEcho,IncludeKeyUp\"«»)
Remove-Variable test1, machine
} else {
Write-Host \"`r`n$machine hors ligne`r`n\"
}
}
Write-Host \"Script terminé. Appuyez sur une touche pour fermer la fenêtre...\"
$KeyStroke = $host.UI.RawUI.ReadKey(\"NoEcho,IncludeKeyUp\"«»)
} Else {
Write-Host \"Script annulé par l'utilisateur\"
Write-Host \"Appuyez sur une touche pour continuer...\"
$KeyStroke = $host.UI.RawUI.ReadKey(\"NoEcho,IncludeKeyUp\"«»)
Remove-Variable test1, machine
Exit
}
[/code:1]

Merci à ceux qui pourront m'éclairer :-)<br><br>Message édité par: Gauld, à: 24/12/15 15:05

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 2 mois #21223 par Philippe
Réponse de Philippe sur le sujet Re:Résultat requête "Query user"
salut ultra

noël est passé et personne ne ta répondu :(

malheureusement ton script n'est pas écrit pour écrire dans un fichier sans de grosse modification !

tu avais pourtant bien commencé ici :
[code:1] ### Création du fichier de Log
$date = Get-Date -Format \&quot;dd.MM.yyyy-HH.mm\&quot;
$FlagJDG = 'C:\temp\'+\&quot;UtilisateursConnectés\&quot;+$date+\&quot;.txt\&quot;
New-Item -Path $FlagJDG -type file -Force

ADD-content -path $FlagJDG -value \&quot;===================================================================================================
=========================================\&quot;
ADD-content -path $FlagJDG -value \&quot;====================================== Début du script : $date
==================================================================\&quot;
ADD-content -path $FlagJDG -value \&quot;===================================================================================================
=========================================\&quot;[/code:1]

mais après tu ne fais que des :
[code:1]Write-Host \&quot;`r`nSession - $machine\&quot;[/code:1]
ce qui n'ecris rien dans le fichier créé juste avant

tu dois donc remplacé les Write-Host par des ADD-content -path $FlagJDG -value
pour que ça marche !

évidemment tous les Write-Host ne sont pas à remplacé si tu veux avoir des message comme \&quot;Script terminé. Appuyez sur une touche pour fermer la fenêtre...\&quot;<br><br>Message édité par: 6ratgus, à: 31/12/15 11:16

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.074 secondes
Propulsé par Kunena