Précédent   Forum des professionnels en informatique > Systèmes > Windows > Windows Serveur
Windows Serveur Forum d'entraide professionel pour Windows Serveur : NT, 2000, 2003 , Longhorn...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/07/2007, 09h43   #1
Invité de passage
 
Inscription : juillet 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 4
Points : 1
Points : 1
Par défaut Infos sur les ordis du domaine

Bonjour,

Je souhaite trouver les machines de mon domaine qui ne sont plus sur le réseau depuis X temps.
J'ai réussi à trouver un script qui liste les machines de mon domaine mais je n'arrive pas a trouve le champs pour récupérer leur dernière connection sur le réseau.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Const ADS_SCOPE_SUBTREE = 2

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = ("ADsDSOObject")
objConnection.Open "Active Directory Provider"
objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000 
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE  
objCommand.CommandText = _ 
    "SELECT name  FROM " _   
        & "'LDAP://DC=XXX,DC=XXX'" _ 
            & " WHERE objectClass='computer' "
Set objRecordSet = objCommand.Execute 
objRecordSet.MoveFirst 

Do Until objRecordSet.EOF 
    Wscript.Echo "Name: " & objRecordset.fields("name")
    objRecordSet.MoveNext 
Loop
J'aimerais un truc du genre
Code :
Select name, lastview ....

Merci
linkou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2007, 17h17   #2
Invité de passage
 
Inscription : juillet 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 4
Points : 1
Points : 1
Par défaut Suite ...

Bon j'ai trouvé quelques trucs, j'arrive a avoir des dates maintenant, mais je ne sais pas exactement à quoi elles correspondent.


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Const ADS_SCOPE_SUBTREE = 2

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = ("ADsDSOObject")
objConnection.Open "Active Directory Provider"
objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000 
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE  
objCommand.CommandText = _ 
    "SELECT Name, modifytimestamp FROM " _   
        & "'LDAP://DC=XXX,DC=XXX" _ 
            & " WHERE objectClass='computer' "
Set objRecordSet = objCommand.Execute 
objRecordSet.MoveFirst 

Do Until objRecordSet.EOF 
    Wscript.Echo objRecordSet.Fields("Name").Value & ";" & objRecordSet.Fields("modifytimestamp").Value
    objRecordSet.MoveNext 
Loop
Avec 'modifytimestamp' j'ai une date en retour, pareil si j'utilise 'whencreated' ou 'whenchanged', mais je ne comprend pas trop à quoi correspondent ces champs.

Pour info j'ai trouvé ces champs dans le schéma de l'Active Directory > Classes > Computer, mais les explications la bas ne sont très explicite...


Si vous en savez un peu plus ?

Bonne fin d'aprem et bonne soirée.

Merci
linkou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2007, 13h25   #3
Invité de passage
 
Inscription : juillet 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 4
Points : 1
Points : 1
Par défaut Suite et bientot fin !!!

Alors j'ai réussi a trouver l'attribut qui convient bien : "lastlogon" (dernière authentification de l'ordi sur le domaine).

Mais l'objet qui m'est retourne, je n'arrive pas à l'exploiter.

C'est une date en 64 bits, avec apparement 32 bits pour la date et les 32 autres bits pour l'heure. Si vous avez des infos je suis preneur

Dans mon script VB je l'appel comme ça : (il faut que j'arrive à convertir au moins la date)

Code :
1
2
3
4
var = objRecordSet.Fields("lastLogon")
var.HighPart
var.LowPart
Merci
linkou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2007, 15h49   #4
Invité de passage
 
Inscription : juillet 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 4
Points : 1
Points : 1
Par défaut Fin

Bon j'ai résolu mon problème tout seul. Il n'a pas pationnné les foules

J'ai mis la difficulté un rouge ^^

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var = objRecordSet.Fields("lastLogon")
    'wscript.echo objRecordSet.Fields("Name").Value & " " & isobject(var) & " - " & isnull(var)
    if ( isobject(var) ) then

        lngHigh = var.HighPart 
        lngLow = var.LowPart 

        If lngLow < 0 Then 
            lngHigh = lngHigh + 1 
        End If 

        If (lngHigh = 0) And (lngLow = 0 ) Then 
            dtmDate = objRecordSet.Fields("modifyTimeStamp").Value 
        Else 
            dtmDate = #1/1/1601# + (((lngHigh * (2 ^ 32)) + lngLow)/600000000 - lngBias)/1440 
        End If
	else 
		dtmDate = objRecordSet.Fields("modifyTimeStamp").Value
    end if
Résolu
linkou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h06.


 
 
 
 
Partenaires

Hébergement Web