Question
Récupérer la "Description de l'ordinateur"
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
ouiJe suppose qu'il faut ajouter une recherche dans l'AD via le login et extraire l'attribut displayname.
?? il manque dans le compte utilisateurJ'essaye avec un Get-aduser -identity mais il affiche pas le displayname....
de toutes façons, rappelle toi, tu ne peut pas utilisé get-aduser dans la GPO car tu ne peut pas chargé le module AD !
il reste des solutions :
- ADSI
- reporté la recherche du displayname dans le deuxième script
- une autre idée nicolas !?
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
[code:1]get-aduser -identity xxx -Properties DisplayName | select DisplayName
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Galadan
- Auteur du sujet
- Hors Ligne
- Membre senior
-
- Messages : 75
- Remerciements reçus 0
il manque l'option Properties à get-aduser
[code:1]get-aduser -identity xxx -Properties DisplayName | select DisplayName
[/code:1]
yes j'était en train de corriger

Oui peut-etre dans le deuxieme script c'est aussi bien.
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
il faut donc envoyer dans le fichier la description et le compte utilisateurOui peut-etre dans le deuxieme script c'est aussi bien.
et le deuxième script choisi qui utilisé ?
j'ai aussi la solution adsi :
[code:1]
$login = \"xxx\"
$root=[adsi]''
$filter = \"(&(objectCategory=user)(samaccountname=$login))\"
$ds = New-Object system.DirectoryServices.DirectorySearcher ($root)
$ds.filter = $filter
$person = $ds.FindOne()
$person.Properties.displayname
[/code:1]
tu remplace le xxx par le login et c'est bon !!!
Connexion ou Créer un compte pour participer à la conversation.
- Galadan
- Auteur du sujet
- Hors Ligne
- Membre senior
-
- Messages : 75
- Remerciements reçus 0
ADSI, je suis perdu ^^
D'aprés ton script on met la variable qui contient le login a la place des XXX, c'est ça?
Connexion ou Créer un compte pour participer à la conversation.
- NicolasBdn
-
- Hors Ligne
- Membre senior
-
Pour toi 6ratgus

[code:1]#Récupération de la version de l'OS
$OSVersion = (Get-WmiObject -Class Win32_operatingsystem).Version
#Déclaration du logontype en fonction de la version
Switch -Wildcard ($OSVersion){
\"6.1.*\" {$logontype=2}
\"10.0.*\" {$logontype=11}
default {$logontype=2}
}
$filterXML = @\"
<QueryList>
<Query Id=\"0\" Path=\"Security\">
<Select Path=\"Security\">
(*[System[(EventID = 4624 )]] and *[EventData[Data[@Name='LogonType']='$logontype']])
</Select>
</Query>
</QueryList>
\"@
#Récupération du nom du PC
$computer = (Get-WmiObject -Class win32_computersystem).name
#Récupération de la description de l'ordinateur
$description = (Get-WmiObject -class win32_operatingsystem |select Description).description
if ($description -ne \"\"«») {
# on prend la description du pc
$descrip = $description
}
else {
# on prend l'utilisateur le plus fréquemment connecté
$events = Get-WinEvent -FilterXml $filterXML -MaxEvents 20
$comptes = @()
$events | foreach {
$eventXML = [xml]$_.ToXml()
switch ($eventXML.Event.EventData.Data) {
{$_.Name -eq 'TargetUserName'} {$comptesName = $_.\"#text\"}
}
$comptes += $eventXML.Event.System.TimeCreated | Select-Object @{n='User';e={$comptesName}},@{n='TimeLog';e={$_.SystemTime}}
}
#$descrip = ($comptes | Group-Object | Sort-object Count -Descending | select count, name)[0].Name
$comptesGroup = $comptes | Group-Object User | Sort-Object Count -Descending
$comptesGroupCount = $comptesGroup | Group-Object Count
if($comptesGroupCount[0].Count -lt 1){
$descrip = $($comptesGroupCount[0].Group.Group | Sort-Object TimeLog -Descending)[0].User
}else{
$descrip = ($comptesGroup)[0].Name
}
}
# Ecriture de la description dans un fichier au nom de l'ordinateur
\" \" | select @{n=\"computer\";e={$computer}}, @{n=\"description\";e={$descrip}} | export-Csv $home\$computer.csv
[/code:1]
- une autre idée nicolas !?
-ADSI me parait une bonne idée, tu as l'aire d'être bien avancé sur moi sur le sujet ^^.
-Ouverture de PSRemoting sur un ordinateur avec module AD PowerShell. Mais cela implique des opérations complexe niveau sécurité. Comme délégation d'un utilisateur particulier pour interroger l'AD. Et renseigner au niveau de l'écouteur Wsman sur le poste interroger pour se connecter en PSRemoting.
-L'integration au niveau du second script serait le plus simple.
-Ou sinon, continuons dans notre interrogation de la base WMI non? ^^, Win32_UserAccount devrait p-e contenir ce dont nous avons besoin. Sinon j'ai Win32_UserInDomain. mais j'ai pas de domain AD pour voir ce que ça contient.
Si vous pouvez-y jeter un œil à ma place

Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Récupérer la "Description de l'ordinateur"