[Résolu] Lister le nom des PC

Lister le nom des PC [Résolu] - Infrastructures serveurs - Systèmes & Réseaux Pro

Marsh Posté le 23-05-2008 à 16:34:07    

Bonjour à tous!  
 
Voilà je présente un peu la chose: je suis actuellement en fin d'année de BTS et donc en stage. Dans celui-ci on m'a confier la gestion du réseau en fonction d'un onduleur, c'est à dire que je doit:  
-prévenir les admins par mail en cas de coupure de courant  
-prévenir les utilisateurs des ordinateurs que leurs machines vont être éteinte  
-couper les PC et les serveurs  
 
Mon problème est dans la récupération des noms de toutes les machines connectées sur le réseau pour pouvoir ensuite excuter un script tel que:  
 

Code :
  1. @echo off
  2. echo Coupure des Ordinateurs en cour...
  3. for /f "eol=; delims=," %%a in (nomdespc.txt) do shutdown -s -f -m %%a -t 10 -c "Coupure..."


 
J'aimerais donc créer un autre script qui m'écrirais le nom des PC trouvés dans ce justement le fichier nomdespc.txt  
 
Est ce qu'en cherchant au niveau d'Active Directory et LDAP il y a moyen de faire quelque chose?
 
Si quelqu'un à des idées sur la question je lui en serais très reconnaissant :D


Message édité par Aldriss le 28-05-2008 à 11:31:30
Reply

Marsh Posté le 23-05-2008 à 16:34:07   

Reply

Marsh Posté le 23-05-2008 à 17:51:21    

Tu peux query ton LDAP pour obtenir la date de dernière connexion, puis tester si la machine est toujours présente.
 
Dans ton cas, pas la peine de te soucier du résultat : machine absente = erreur,machine présente = message. Il suffit de faire une lecture des objets de l'AD concerné et de les avertirs.
 
Maintenant, tu peux également créer une adresse de diffusion à l'attention des utilisateurs concernés et leur envoyé un mail, comme pour les admins.

Reply

Marsh Posté le 23-05-2008 à 19:31:55    

Perso ton bat je le mettrai à la poubelle et je m'appuierai entièrement sur vbs/wmi/ad

 

Tu trouves des trucs très simplement :
- Lister les PC : http://www.microsoft.com/technet/s [...] x?mfr=true
- Eteindre : http://www.microsoft.com/technet/s [...] x?mfr=true

 

Pour mettre les raisons etc. tu as une autre fonction : http://www.microsoft.com/technet/s [...] x?mfr=true

 

C'est vraiment pas compliqué de mixer ces 2 scripts, il suffit d'injecter dans la variable computerstr du 2ème le nom de la machine que tu récup dans le premier.


Message édité par Je@nb le 23-05-2008 à 19:32:46
Reply

Marsh Posté le 24-05-2008 à 13:27:34    

Merci pour vos réponses :)
 
Pas compliquer surement quand on connais tout ça :D  
Personnellement je n'ai aucune connaissance dans ce domaine et je rame un peu. Je vais étudier le site que tu m'as donné!
Encore merci et surement à bientôt :)

Reply

Marsh Posté le 24-05-2008 à 16:33:30    

Boah, comme le dit Je@nb, c'est du copier-coller hein. Et le VBScript est plutôt aisément lisible.

Reply

Marsh Posté le 26-05-2008 à 08:55:53    

tu as la commande "net view" ... simple efficace!


Message édité par coco_atchoum le 26-05-2008 à 08:56:00
Reply

Marsh Posté le 27-05-2008 à 09:30:18    

Bonjour bonjour!
Net view à été la première commande que j'ai tapée pour essayer de faire ce que je voulais mais ca ne marchais pas je n'avais pas tout les PC :/
 
Ensuite j'ais essayé par la méthode de Je@nb ca ne marchais pas non plus :/ il ne trouvais pas la base de données d'AD.
 
Ducoup en réfléchissant un peu plus je me suis rendu compte que le PC sur lequel j'était connecté en admin n'était pas sur le même domaine que les autres ordi :( eh oui une erreur bête!
 
Ducoup maintenant j'ai les 2 méthodes qui marche xD Je suis repartie avec la commande Net view qui est beaucoup plus simple que l'autre méthode :D
 
Ducoups voilà en gros ce que j'obtiens:
 

Code :
  1. Nom de serveur         Remarque
  2. -------------------------------------------------------------------------------
  3. \\1ARGE0004C           Mr Dupond                                         
  4. \\1ASGE1105P           Mr Truk                                 
  5. \\1BDGE6806C   
  6.                                                
  7.      ...
  8. \\2RHUM1102G     
  9.      ...
  10. \\8SHMU0678C           Mr Hello                                                     
  11. \\8SICO2383T           Mr World
  12. \\VGH-OMS 
  13. La commande s'est termin‚e correctement.


 
Maintenant j'aimerais filtrer pour n'obtenir que les noms de station commencant par 1 :
 
1ARGE0004C  
1ASGE1105P                                  
1BDGE6806C    
 
J'ai essayer de plusieurs manière mais sans succès :/ je n'arrive à obtenir que:
 

Code :
  1. La commande s'est termin‚e correctement.


 
Si quelqu'un à une idée pour ce filtre je suis preneur :D

Reply

Marsh Posté le 27-05-2008 à 11:14:55    

Dans mon script tu as bien modifié le domaine d'exemple par le tiens hein ? :D

Reply

Marsh Posté le 27-05-2008 à 11:27:21    

Je@nb a écrit :

Dans mon script tu as bien modifié le domaine d'exemple par le tiens hein ? :D


Oui oui bien sur  :)  Mais n'étant pas sur ce domaine je ne pouvais y acceder, j'étais réster en Admin de ma machine pour pouvoir avoir plus de droit (finalement c'est le contraire qui c'est passé^^)
Bref tout est bien qui fini bien ^^
 
Maintenant j'arrive à ce résultat:

Code :
  1. 1ARGE0004C     
  2. 1ASGE1105P                           
  3. 1BDGE6806C
  4.    ...
  5. 2RHUM1102G
  6.    ...
  7. 8SHMU0678C
  8. 8SICO2383T
  9. VGH-OMS
  10. La commande s'est termin‚e correctement.


 
Et j'ai beau me creuser la tête je ne voy pas comment faire pour isoler les noms de machines commençant par 1 :/

Reply

Marsh Posté le 27-05-2008 à 18:45:53    

Bonjour  
 
et par un bat ?  
style (a adapter en fonction des besoins bien entendu)
 
@echo off
rem Test presence machine
rem echo Test presence Station : %1
IF EXIST \\%1\C$\pagefile.sys GOTO LOGOOD
echo ---- NON present -----: %1
GOTO PCOUT
 
:PCOUT
echo %1 >> c:\@ScanF\PCout.log
GOTO END
 
:DEBUT
:IF EXIST \\%1\C$\winnt\site.ini GOTO logood
:rem IF EXIST \\%1\C$\sms.ini GOTO logood
:GOTO LOGBAD
 
:LOGOOD
rem copy c:\@siteINI\site.ini \\%1\C$\winnt
copy c:\@siteINI\tnsnames.ora \\%1\C$\Systeme\Sqlnet8j\network\Admin\tnsnames.ora
copy c:\@siteINI\tnsnames.ora \\%1\C$\Systeme\Orant\network\Admin\tnsnames.ora
echo %1 >> c:\@ScanF\good.log
echo PC Good : %1
GOTO END
 
:LOGBAD
echo %1 >> c:\@ScanF\bad.log
echo PC Bad  : %1
GOTO END
 
:END

Reply

Marsh Posté le 27-05-2008 à 18:45:53   

Reply

Marsh Posté le 28-05-2008 à 09:38:16    

Coucou!
 
Tout d'abords Merci Carinae pour ta réponse! :) Bien que je ne l'ai pas utilisé elle me servira peut-être plus tard  :lol:  
 
 
Pour ceux que ca intéresse voilà le code du filtre:
 
 

Code :
  1. for /f %%i in ('findstr /b /r /C:1 nompc.txt') do echo %%i>>nompcfiltrer.txt


 
Voili voilou merci encore à tous ceux qui m'ont aidé!  :sarcastic:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed