Question Resultat du pipe est incorrect ?
- VdB
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 7 ans 3 mois #22889
par VdB
Resultat du pipe est incorrect ? a été créé par VdB
Salut la compagnie !
J'essaies de faire fonctionner un script qui me permet de vérifier si un utilisateur en particulier est loggé sur un de mes servers.
Le script pour lister la liste des servers actifs fonctionne :
[code:1]import-module activedirectory
$DaysInactive = 90
$time = (Get-Date).Adddays(-($DaysInactive))
$Computers = Get-ADComputer -Filter {LastLogonTimeStamp -gt $time} -Properties LastLogonTimeStamp | select-object Name[/code:1]
Ensuite, je devrais pouvoir utiliser le résultat avec une commande qui m'affiche si l'utilisateur est là ou pas :
[code:1]ForEach($PSItem in $Computers) {
$PSItem
qwinsta monutilisateur /SERVER:$PSItem
}[/code:1]
Et bien entendu cela fonctionne pas
Je reçois ce résultat:
[code:1]Name
----
monserver
Error 1722 getting sessionnames
Error [1722]:The RPC server is unavailable.[/code:1]
Bon OK la commande ne comprend pas le \"Name\" et le \"----\"
mais normalement il devrait comprendre le \"monserver\" et me donner ceci:
[code:1]PS C:\_InstallFiles> qwinsta monutilisateur /SERVER:VSINT63
SESSIONNAME USERNAME ID STATE TYPE DEVICE
rdp-tcp#0 monutilisateur 2 Active
[/code:1]
ou
[code:1]PS C:\_InstallFiles> qwinsta monutilisateur /SERVER:monserver
No session exists for monutilisateur[/code:1]
Donc, il y a un problème avec le pipe mais je n'arrive pas à voir ou ?
Quelqu'un aurait une idée ?
Merciii<br><br>Message édité par: Tessai, à: 4/01/17 09:06
J'essaies de faire fonctionner un script qui me permet de vérifier si un utilisateur en particulier est loggé sur un de mes servers.
Le script pour lister la liste des servers actifs fonctionne :
[code:1]import-module activedirectory
$DaysInactive = 90
$time = (Get-Date).Adddays(-($DaysInactive))
$Computers = Get-ADComputer -Filter {LastLogonTimeStamp -gt $time} -Properties LastLogonTimeStamp | select-object Name[/code:1]
Ensuite, je devrais pouvoir utiliser le résultat avec une commande qui m'affiche si l'utilisateur est là ou pas :
[code:1]ForEach($PSItem in $Computers) {
$PSItem
qwinsta monutilisateur /SERVER:$PSItem
}[/code:1]
Et bien entendu cela fonctionne pas
Je reçois ce résultat:
[code:1]Name
----
monserver
Error 1722 getting sessionnames
Error [1722]:The RPC server is unavailable.[/code:1]
Bon OK la commande ne comprend pas le \"Name\" et le \"----\"
mais normalement il devrait comprendre le \"monserver\" et me donner ceci:
[code:1]PS C:\_InstallFiles> qwinsta monutilisateur /SERVER:VSINT63
SESSIONNAME USERNAME ID STATE TYPE DEVICE
rdp-tcp#0 monutilisateur 2 Active
[/code:1]
ou
[code:1]PS C:\_InstallFiles> qwinsta monutilisateur /SERVER:monserver
No session exists for monutilisateur[/code:1]
Donc, il y a un problème avec le pipe mais je n'arrive pas à voir ou ?
Quelqu'un aurait une idée ?
Merciii<br><br>Message édité par: Tessai, à: 4/01/17 09:06
Connexion ou Créer un compte pour participer à la conversation.
- VdB
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 7 ans 3 mois #22890
par VdB
Réponse de VdB sur le sujet Re:Resultat du pipe est incorrect ?
Trouvé, pas très propre mais fonctionnel au moins
[code:1]
import-module activedirectory
$DaysInactive = 90
$time = (Get-Date).Adddays(-($DaysInactive))
$Computers = Get-ADComputer -Filter {LastLogonTimeStamp -gt $time} -Properties LastLogonTimeStamp | select-object Name
$Computers = $Computers -replace '\s+', ''
$Computers = $Computers -replace '@{Name=', ''
$Computers = $Computers -replace '}', ''
ForEach($PSItem in $Computers) {
$PSItem
qwinsta monutilisateur /SERVER:$PSItem
}[/code:1]
Message édité par: Tessai, à: 4/01/17 09:40<br><br>Message édité par: Tessai, à: 4/01/17 09:42
[code:1]
import-module activedirectory
$DaysInactive = 90
$time = (Get-Date).Adddays(-($DaysInactive))
$Computers = Get-ADComputer -Filter {LastLogonTimeStamp -gt $time} -Properties LastLogonTimeStamp | select-object Name
$Computers = $Computers -replace '\s+', ''
$Computers = $Computers -replace '@{Name=', ''
$Computers = $Computers -replace '}', ''
ForEach($PSItem in $Computers) {
$PSItem
qwinsta monutilisateur /SERVER:$PSItem
}[/code:1]
Message édité par: Tessai, à: 4/01/17 09:40<br><br>Message édité par: Tessai, à: 4/01/17 09:42
Connexion ou Créer un compte pour participer à la conversation.
- VdB
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 7 ans 3 mois #22891
par VdB
Réponse de VdB sur le sujet Re:Resultat du pipe est incorrect ?
Et apparemment il existe quelque chose qui fait déjà ça à la base... j'aurais du poster dans le coin des débutants
Get-ADComputer -Filter {LastLogonTimeStamp -gt $time} -Properties LastLogonTimeStamp | select-object -Expand Name<br><br>Message édité par: Tessai, à: 4/01/17 10:05
Get-ADComputer -Filter {LastLogonTimeStamp -gt $time} -Properties LastLogonTimeStamp | select-object -Expand Name<br><br>Message édité par: Tessai, à: 4/01/17 10:05
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 7 ans 3 mois #22963
par Philippe
Réponse de Philippe sur le sujet Re:Resultat du pipe est incorrect ?
salut Tessai
depuis la version 3 de PowerShell tu aussi utilisé cette écriture :
[code:1](Get-ADComputer -Filter {LastLogonTimeStamp -gt $time}).Name
[/code:1]
depuis la version 3 de PowerShell tu aussi utilisé cette écriture :
[code:1](Get-ADComputer -Filter {LastLogonTimeStamp -gt $time}).Name
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.067 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les initiés
- Resultat du pipe est incorrect ?