Question
Convertir un PSCustomObject en chaine/string ?
- Fournier
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 13 ans 6 mois #12645
par Fournier
Convertir un PSCustomObject en chaine/string ? a été créé par Fournier
Bonjour,
Je cherche à lister toutes les machines du réseau pour identifier celles pour lesquelles l'utilisateur a laissé un session ouverte/verouillée.
Voici le script :
clear
# J'interroge mon AD
$adsPath = 'LDAP://OU=Stations du Groupe, ' + ([ADSI]'').distinguishedName
$objDomaine = [ADSI]$adsPath
$objRecherche = New-Object `
System.DirectoryServices.DirectorySearcher ($objDomaine)
$requete = '(&(objectCategory=computer) (objectClass=computer))'
$objRecherche.Filter=$requete
#J'ai donc ma liste de machines
$Machines = $objRecherche.FindAll()
$Message=@()
# Je les interroge une par une
Foreach ($Computer in $Machines | select-object @{e={$_.properties.cn};n='computer'})
{
$Results = $null
$Results = ./PsLoggedon.exe -x -l \\$Computer |
Where-Object {$_ -match '^\s{2,}((?<domain>\w+)\\(?<user>\S+))'} |
Select-Object @{
Name = 'Computer'
Expression = {$Computer}
},
@{
Name = 'Domain'
Expression = {$matches.Domain}
},
@{
Name = 'User'
Expression = {$Matches.User}
}
$Message +=(,$Results)
}
$Message
Le script me renvoie le message suivant :
+ $Results = ./PsLoggedon.exe <<<< -x -l \\$Computer |
+ CategoryInfo : NotSpecified: (:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
Il ne me reste plus qu'à dire : A l'aide.
Je cherche à lister toutes les machines du réseau pour identifier celles pour lesquelles l'utilisateur a laissé un session ouverte/verouillée.
Voici le script :
clear
# J'interroge mon AD
$adsPath = 'LDAP://OU=Stations du Groupe, ' + ([ADSI]'').distinguishedName
$objDomaine = [ADSI]$adsPath
$objRecherche = New-Object `
System.DirectoryServices.DirectorySearcher ($objDomaine)
$requete = '(&(objectCategory=computer) (objectClass=computer))'
$objRecherche.Filter=$requete
#J'ai donc ma liste de machines
$Machines = $objRecherche.FindAll()
$Message=@()
# Je les interroge une par une
Foreach ($Computer in $Machines | select-object @{e={$_.properties.cn};n='computer'})
{
$Results = $null
$Results = ./PsLoggedon.exe -x -l \\$Computer |
Where-Object {$_ -match '^\s{2,}((?<domain>\w+)\\(?<user>\S+))'} |
Select-Object @{
Name = 'Computer'
Expression = {$Computer}
},
@{
Name = 'Domain'
Expression = {$matches.Domain}
},
@{
Name = 'User'
Expression = {$Matches.User}
}
$Message +=(,$Results)
}
$Message
Le script me renvoie le message suivant :
+ $Results = ./PsLoggedon.exe <<<< -x -l \\$Computer |
+ CategoryInfo : NotSpecified: (:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
Il ne me reste plus qu'à dire : A l'aide.
Connexion ou Créer un compte pour participer à la conversation.
- SiSMik
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 492
- Remerciements reçus 0
il y a 13 ans 6 mois #12647
par SiSMik
Réponse de SiSMik sur le sujet Re:Convertir un PSCustomObject en chaine/string ?
Laurent Dardenne écrit:
Merci de lire les réponses et de les mettre en pratique, ça aide pour que les utilisateurs du forum lisent et comprennent le code.
Pour ton problème, ça vient évidement d'ici comme tu l'as dit suite à l'erreur obtenue.
[code:1]
Foreach ($Computer in $Machines | select-object @{e={$_.properties.cn};n='computer'})
{
$Results = $null
$Results = ./PsLoggedon.exe -x -l \$Computer |
Where-Object {$_ -match '^s{2,}((?<domain>w+)\(?<user>S+))'} |
Select-Object @{
Name = 'Computer'
Expression = {$Computer}
}
[/code:1]
Je ne connais ce PsLoggedon.exe mais a mon avis tu devrais voir à éxécuter ce programme d'une autre manière tu peux déjà voir ce post où le principe reste le même.
Aleator écrit:
Editer le message, puis insérerPS. : Pardon pour la mise en forme, je suis nouveau sur les forums et suis incapable d'utiliser les 'BoardCode'.
au début du code et[ code ]
en fin de code.[/ code ]
Ces noms de balises ne contenant pas d'espace, il faut les supprimer.
Merci de lire les réponses et de les mettre en pratique, ça aide pour que les utilisateurs du forum lisent et comprennent le code.
Pour ton problème, ça vient évidement d'ici comme tu l'as dit suite à l'erreur obtenue.
[code:1]
Foreach ($Computer in $Machines | select-object @{e={$_.properties.cn};n='computer'})
{
$Results = $null
$Results = ./PsLoggedon.exe -x -l \$Computer |
Where-Object {$_ -match '^s{2,}((?<domain>w+)\(?<user>S+))'} |
Select-Object @{
Name = 'Computer'
Expression = {$Computer}
}
[/code:1]
Je ne connais ce PsLoggedon.exe mais a mon avis tu devrais voir à éxécuter ce programme d'une autre manière tu peux déjà voir ce post où le principe reste le même.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 13 ans 6 mois #12651
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Convertir un PSCustomObject en chaine/string ?
Un autre
exemple
.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.043 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Convertir un PSCustomObject en chaine/string ?