Question
Résultat requête "Query user" dans un fichier TXT
- Gauld
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 10 ans 2 mois #21202
par Gauld
Résultat requête "Query user" dans un fichier TXT a été créé 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
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
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 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 \"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 \"===================================================================================================
=========================================\"[/code:1]
mais après tu ne fais que des :
[code:1]Write-Host \"`r`nSession - $machine\"[/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 \"Script terminé. Appuyez sur une touche pour fermer la fenêtre...\"<br><br>Message édité par: 6ratgus, à: 31/12/15 11:16
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 \"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 \"===================================================================================================
=========================================\"[/code:1]
mais après tu ne fais que des :
[code:1]Write-Host \"`r`nSession - $machine\"[/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 \"Script terminé. Appuyez sur une touche pour fermer la fenêtre...\"<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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Résultat requête "Query user" dans un fichier TXT