Question Convertir un PSCustomObject en chaine/string ?

Plus d'informations
il y a 13 ans 6 mois #12645 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.

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

Plus d'informations
il y a 13 ans 6 mois #12647 par SiSMik
Laurent Dardenne écrit:

Aleator écrit:

PS. : Pardon pour la mise en forme, je suis nouveau sur les forums et suis incapable d'utiliser les 'BoardCode'.

Editer le message, puis insérer

[ code ]

au début du code et

[/ code ]

en fin de 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.

Plus d'informations
il y a 13 ans 6 mois #12651 par Laurent Dardenne

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

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