Question
Récupérer la "Description de l'ordinateur"
- Galadan
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 75
- Remerciements reçus 0
il y a 10 ans 1 mois #21433
par Galadan
Réponse de Galadan sur le sujet Re:Récupérer la Description de l'ordinateur
c'est pas faux!
Connexion ou Créer un compte pour participer à la conversation.
- Galadan
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 75
- Remerciements reçus 0
il y a 10 ans 1 mois #21444
par Galadan
Réponse de Galadan sur le sujet Re:Récupérer la Description de l'ordinateur
Hello,
Bon, le GPO ne passe pas...
Lorsque je lance le script sur un PC sans description, il créer bien le CSV mais il ne rempli pas le champs description.
Un fichier log est bien créé mais vide.
Bon, le GPO ne passe pas...
Lorsque je lance le script sur un PC sans description, il créer bien le CSV mais il ne rempli pas le champs description.
Un fichier log est bien créé mais vide.
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 1 mois #21448
par Philippe
je pense que l'utilisateur \"system\" qui exécute la GPO n'a pas accès à l'AD par wmi
pour finir ce script plus vite, on va donc reporté la partie displayname dans le deuxième script
nicolas ou moi on reviens vers toi des que l'on a modifier les scripts !
Nicolas a ton clavier !
si tu veux Galadan tu peut aussi le faire !
on corrigera le script ensemble si besoin !
Réponse de Philippe sur le sujet Re:Récupérer la Description de l'ordinateur
donc pas d'erreur. super !Un fichier log est bien créé mais vide.
si l'utilisateur a bien son displayname rempli dans l'AD, alors y a un problèmeLorsque je lance le script sur un PC sans description, il créer bien le CSV mais il ne rempli pas le champs description.
je pense que l'utilisateur \"system\" qui exécute la GPO n'a pas accès à l'AD par wmi
pour finir ce script plus vite, on va donc reporté la partie displayname dans le deuxième script
nicolas ou moi on reviens vers toi des que l'on a modifier les scripts !
Nicolas a ton clavier !
si tu veux Galadan tu peut aussi le faire !
Connexion ou Créer un compte pour participer à la conversation.
- Galadan
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 75
- Remerciements reçus 0
il y a 10 ans 1 mois #21450
par Galadan
Réponse de Galadan sur le sujet Re:Récupérer la Description de l'ordinateur
J'ai testé en local sur mon poste w10 avec mon compte (qui est admin) et pas de description de remplie...
Mais le script déroule sans erreurs.
Mais le script déroule sans erreurs.
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 1 mois #21451
par Philippe
Réponse de Philippe sur le sujet Re:Récupérer la Description de l'ordinateur
apres un rapide contrôle le script de nicolas avais une petite erreur !
voici la correction :
[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=7}
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
# si la description est vide
if ($description.Trim() -eq \"\"«») {
# 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) {
$login = $($comptesGroupCount[0].Group.Group | Sort-Object TimeLog -Descending)[0].User
}
else {
$login = ($comptesGroup)[0].Name
}
$description = (Get-WmiObject Win32_UserAccount -Filter \"name = '$login'\"«»).FullName
}
# Ecriture de la description dans un fichier au nom de l'ordinateur
\" \" | select @{n=\"computer\";e={$computer}}, @{n=\"description\";e={$description}} | export-Csv c:\partage_description\$computer.csv
[/code:1]
n'oublie pas de changé le dossier pour l'export
si tu peut refaire les tests stp et désolé tu temps perdu
Message édité par: 6ratgus, à: 29/01/16 11:52
recorrection du script corrigé !!!
Message édité par: 6ratgus, à: 29/01/16 12:07<br><br>Message édité par: 6ratgus, à: 1/02/16 10:52
voici la correction :
[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=7}
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
# si la description est vide
if ($description.Trim() -eq \"\"«») {
# 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) {
$login = $($comptesGroupCount[0].Group.Group | Sort-Object TimeLog -Descending)[0].User
}
else {
$login = ($comptesGroup)[0].Name
}
$description = (Get-WmiObject Win32_UserAccount -Filter \"name = '$login'\"«»).FullName
}
# Ecriture de la description dans un fichier au nom de l'ordinateur
\" \" | select @{n=\"computer\";e={$computer}}, @{n=\"description\";e={$description}} | export-Csv c:\partage_description\$computer.csv
[/code:1]
n'oublie pas de changé le dossier pour l'export
si tu peut refaire les tests stp et désolé tu temps perdu
Message édité par: 6ratgus, à: 29/01/16 11:52
recorrection du script corrigé !!!
Message édité par: 6ratgus, à: 29/01/16 12:07<br><br>Message édité par: 6ratgus, à: 1/02/16 10:52
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 1 mois #21452
par Philippe
Réponse de Philippe sur le sujet Re:Récupérer la Description de l'ordinateur
@nicolas
j'ai changé un peu la fin de ton script, tu utilisais la variable $login mais sans la remplir
j'ai aussi changé le logontype pour win10
en effet le \"7\" correspond plus à l'authentification avec le processus lsass que le \"11\" avec svchost, comme j'avais donné au début !<br><br>Message édité par: 6ratgus, à: 29/01/16 12:01
j'ai changé un peu la fin de ton script, tu utilisais la variable $login mais sans la remplir
j'ai aussi changé le logontype pour win10
en effet le \"7\" correspond plus à l'authentification avec le processus lsass que le \"11\" avec svchost, comme j'avais donné au début !<br><br>Message édité par: 6ratgus, à: 29/01/16 12:01
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.062 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Récupérer la "Description de l'ordinateur"