Question
[Résolu] conversion du lastlogon ds l'AD
- rodriguez
- Auteur du sujet
- Hors Ligne
- Membre senior
-
- Messages : 61
- Remerciements reçus 0
voici un petit script tout simple qui va chercher la derniere connection d'un utilisateur et essais de le convertir en Date correcte et non pas en 64Bits.
Mais voila en prenant le même exemple que le livre d'arnaud et Robin page 194.
j'ai une erreur:
$lastlogon = $user.Properties.[\"lastlogon\"], il ne trouve pas le lastlogon.
si j'ecris:
$lastlogon = $user.Properties.lastlogon
il trouve bien le lastlogon mais il ne peut appliquer:
$date_derniere_connexion = $date.addticks($lastlogon)
car pour lui $lastlogon est:
System.DirectoryServices.ResultPropertyValueCollection\",
et non pas de type \"System.Int64\" pour faire la conversion.
Ma question est donc comment arriver à faire croire que le résultat retourner dans $lastlogon est bien :
de type \"System.Int64\".
Merci.
[code:1]
$ldapquery = [ADSI] 'LDAP://OU=Users,OU=LAV,OU=rEU,OU=client,DC=in1,DC=ad,DC=innovene,DC=com'
$objrechercher = New-object system.directoryservices.directorysearcher($ldapQuery)
$objrechercher.filter ='(&(objectClass=person)(objectCategory=person))'
$ldapquery
$boucle = $objrechercher.findall()
foreach ($user in $boucle)
{
$name = $user.properties.name
$lastlogon = $user.Properties.[\"lastlogon\"]
$date = (get-date –year 1601 –month 1 –day 1 –hour 0 –minute 0 –second 0)
$date_derniere_connexion = $date.addticks($lastlogon)
Write-Host $date_derniere_connexion
}
[/code:1]<br><br>Message édité par: noxydius, à: 17/11/08 10:19
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
C'est une collection dans ce cas voir la propriété Item.car pour lui $lastlogon est:
System.DirectoryServices.ResultPropertyValueCollection\",
et non pas de type \"System.Int64\" pour faire la conversion.
noxydius écrit:
On transforme la valeur par un cast :Ma question est donc comment arriver à faire croire que le résultat retourner dans $lastlogon est bien :
de type \"System.Int64\".
[code:1]
(10).gettype()
#Cast/transformation
([long]10).gettype()
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- rodriguez
- Auteur du sujet
- Hors Ligne
- Membre senior
-
- Messages : 61
- Remerciements reçus 0
noxydius écrit:
C'est une collection dans ce cas voir la propriété Item.car pour lui $lastlogon est:
System.DirectoryServices.ResultPropertyValueCollection\",
et non pas de type \"System.Int64\" pour faire la conversion.
noxydius écrit:On transforme la valeur par un cast :Ma question est donc comment arriver à faire croire que le résultat retourner dans $lastlogon est bien :
de type \"System.Int64\".
[code:1]
(10).gettype()
#Cast/transformation
([long]10).gettype()
[/code:1]
Merci Laurent,
mais je ne comprends ce que je dois chercher, que signifie \"Item\"
et en ce qui concerne ton exemple au sujet de transformer la valeur je pensais utiliser [int64] mais ca ne fonctionne pas... il ne veut pas faire la transformation.
ton code:
[code:1]
(10).gettype()
#Cast/transformation
([long]10).gettype()
[/code:1][/quote]
je ne vois pas comment l'interpréter
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
C'est une propriété de la collection ( n objets, item=1 objet), dans ce cas $lastlogon.Item[x] doit te renvoyer une valeur. Si c'est une collection elle a aussi la propriété $lastlogon.count.mais je ne comprends ce que je dois chercher, que signifie \"Item\"
Il faut donc que cette collection ait au moins un élément.
Regarde cet exemple : www.visualbasicscript.com/m_64851/mpage_1/key_/tm.htm#65350
noxydius écrit:
Tu parles de mon exemple ou du tien ?et en ce qui concerne ton exemple au sujet de transformer la valeur je pensais utiliser [int64] mais ca ne fonctionne pas... il ne veut pas faire la transformation.
Sans code je ne peux pas dire grand chose si ce n'est qu'on ne peut pas transformer une collection en un entier (long ou pas)
Long est un alias sur Int64.
As-tu compris les principes de base de l'objet ?<br><br>Message édité par: Laurent Dardenne, à: 13/11/08 11:39
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Robin Lemesle
- Hors Ligne
- Modérateur
-
- Messages : 260
- Remerciements reçus 0
Pour nous éclairer un peu, peu tu nous dire quelle est ta valeur de $lastlogon (après avoir fait $lastlogon = $user.Properties.lastlogon). Est-ce un tableau (collection) ou tu obtient un chiffre de 64Bits ?
Rob1
Robin MVP PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- rodriguez
- Auteur du sujet
- Hors Ligne
- Membre senior
-
- Messages : 61
- Remerciements reçus 0
Laurent,
Tu parles de mon exemple ou du tien ?
Sans code je ne peux pas dire grand chose si ce n'est qu'on ne peut pas transformer une collection en un entier (long ou pas)
Long est un alias sur Int64.
As-tu compris les principes de base de l'objet ?<br><br>Message édité par: Laurent Dardenne, à: 13/11/08 11:39
[/quote]
Je commence a cerner un peu les differentes classe et leur role. Mais je rame encore beaucoup....
Et effectivement je parlais de test que j'avais effectué.
Qui etait bien de transformer mon résultat $lastlogon
qui etait une collection en un entier 64bits.
[code:1]
$ldapquery = [ADSI] 'LDAP://OU=Users,OU=LAV,OU=rEU,OU=client,DC=in1,DC=ad,DC=innovene,DC=com'
$objrechercher = New-object system.directoryservices.directorysearcher($ldapQuery)
$objrechercher.filter ='(&(objectClass=person)(objectCategory=person))'
$ldapquery
$boucle = $objrechercher.findall()
foreach ($user in $boucle)
{
$lastlogon = $user.Properties.lastlogon
$lastlogon=[int64]$lastlogon
}
[/code:1]
Robin,
oui j'ai apres:
$lastlogon = $user.Properties.lastlogon
J'ai un chiffre en 64bits, c'est pour ca que je voulais le forcer en Entier 64Bits pour ensuite utiliser:
$date = (get-date –year 1601 –month 1 –day 1 –hour 0 –minute 0 –second 0)
$date_derniere_connexion = $date.addticks($lastlogon)
pour avoir une date utilisable et faire recuperer tous les noms avec une derniere connection superieures à 6 mois.
Donc pour le moment je suis bloqué.<br><br>Message édité par: noxydius, à: 14/11/08 08:52
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu] conversion du lastlogon ds l'AD