Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3429 connectés 

 


Dernière réponse
Sujet : AD : log off automatique des utilisateurs , shutdown auto des pc
worm'skiller je cherche sous AD, dans la GPO d'arret automatique des stations, la commande exacte du "shutdown" qui me permette d'éteidnre mon parc de machine à une heure donnée.
 

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
worm'skiller je cherche sous AD, dans la GPO d'arret automatique des stations, la commande exacte du "shutdown" qui me permette d'éteidnre mon parc de machine à une heure donnée.
 
esteban74

com21 a écrit :

moyen l'interet d'un firewall sur un pc dans un domaine ;)
 
sinon, si tu fais confiance à ton serveur de domaine, tu autorise son ip dans ton firewall.


 
Ch'uis complement d'ac mais je suis pas le seul a decider  :)  
 
Je vais tester les droits sur une IP et je vous tiens au courant
 
Merci
Esteban74
 
euh ... comment on ajoute une IP dans ce pare feux ??  :??: (comme shutdown est lancé depuis le serveur, je vois pas quelle appli autoriser et je vois pas ou je peux dire : "autorise tout depuis cette ip"
Merci pour l'aide

com21 moyen l'interet d'un firewall sur un pc dans un domaine ;)
 
sinon, si tu fais confiance à ton serveur de domaine, tu autorise son ip dans ton firewall.
esteban74


 
Merci  ;)  
 
Mais y'a pas moyen de garder le parefeu et d'autoriser les scripts du domain (ou depuis un serveur) ?
 
Esteban74

+yann

esteban74 a écrit :

Question a 10 balles
 
J'essaye d'eteindre un winXP depuis un serveur 2K .. ben il veut pas. (shutdown ou psshutdown)
Par contre 2K server -> 2K WOrkstation pas de pb.
 
Il y aurait pas un protection de XP (surtout depuis le SP2) qui m'empeche de faire mon shutdown ??
 
Merci pour les infos
 
Esteban74


 
 
http://forum.hardware.fr/forum2.ph [...] 0&subcat=0
 
grilled :o

esteban74

com21 a écrit :

les pc sont tous dans le meme domaine ?


 
vi
 
J'ai trouvé en virant le parefeu = nickel
 
Qq'un connait le "truc" a faire si je veux garder le parefeu ?
 
Esteban74

com21 les pc sont tous dans le meme domaine ?
 
esteban74 Question a 10 balles
 
J'essaye d'eteindre un winXP depuis un serveur 2K .. ben il veut pas. (shutdown ou psshutdown)
Par contre 2K server -> 2K WOrkstation pas de pb.
 
Il y aurait pas un protection de XP (surtout depuis le SP2) qui m'empeche de faire mon shutdown ??
 
Merci pour les infos
 
Esteban74
Gaard28 Il y a aussi psshutdown qui a des options sympatiques. Voir sur google.
com21 je regarderais en détails à un moment où j'aurais du temps
helvetik Si tu tiens quand même à fournir les noms manuellement, tu peux modifier le code a ta sauce. Tu n'as qu'à inverser ma fonction "IsNotAnExcept", qui exclut de l'extinction général les ordinateurs contenu dans le tableau de chaine de caractère "exception"
com21 non j'utilise dns mais je ne souhaite pas éteindre toutes les machines...
 
Donc il faut bien indiquer le nom de machines à éteindre un moment ou un autre.
 
pour WMI : ça veut dire que si j'installe WMI sur mes postes 98(on trouve ça où ?) je pourrais les éteindre  ?
helvetik Tu abandonnerais DNS pour LMHOST, toi??
 
Sans rire, WMI, c'est dynamique. Ton fichier, faut le maintenir jour manuellement...
Par contre, avec WMI, tu vas avoir des soucis si ton parc contient des PC antérieurs à Win2k (nt inclu) car WMI n'est pas géré nativement et il faut l'installer...
com21 helvetik : n'y a t'il pas un autre moyen d'éteindre les pc en donnant leurs nom dans le script (ou en travaillant avec un fichier contenant la liste des machines à éteindre)
 
 ?
helvetik Voici une nouvelle version de mon code:

Code :
  1. ' ------------------------------------------------------------------------------
  2. ' Script d'extinction des machines présentes sur un réseau
  3. ' HELVETIK Corp.
  4. ' ------------------------------------------------------------------------------
  5. ' Docu  : <ShutAllDown.Ver>, <ShutAllDown.Inf>
  6. ' Code  : <ShutAllDown.Vbs>
  7. ' ------------------------------------------------------------------------------
  8. ' ------------------------------------------------------------------------------
  9. ' Main
  10. ' ------------------------------------------------------------------------------
  11. OPTION EXPLICIT
  12. PUBLIC net, fso, shell, exception, temps, ByeMsg
  13. Set net   = Wscript.CreateObject("WScript.Network"           )
  14. Set fso   = WScript.CreateObject("Scripting.FileSystemObject" )
  15. Set Shell = Wscript.CreateObject("WScript.Shell"             )
  16. exception = array("CHRONO-SRV01","CHRONO-SRV02","CHRONO-TEC01" )
  17. temps     = 10
  18. ByeMsg    = "Arrêt automatique. A bientôt."
  19. CALL DomainDetect()
  20. ' ------------------------------------------------------------------------------
  21. ' End
  22. ' ------------------------------------------------------------------------------
  23. ' ------------------------------------------------------------------------------
  24. FUNCTION DomainDetect
  25. ' ------------------------------------------------------------------------------
  26.  DIM ComputerSystem, domain, ComputerItem
  27.          Set ComputerSystem = GetObject("winmgmts:{impersonationLevel=impersonate}" ).InstancesOf ("Win32_ComputerSystem" )
  28.  For Each ComputerItem in ComputerSystem
  29.           Domain = ComputerItem.Domain
  30.           WScript.Echo "Extinction des pc du domaine : " & Domain
  31.           EnumComputer(Domain)
  32.  Next
  33. END FUNCTION
  34. ' ------------------------------------------------------------------------------
  35. FUNCTION EnumComputer (domain)
  36. ' ------------------------------------------------------------------------------
  37.  DIM oWinnt, classe, Computer, root, oDomainItem
  38.          Set oWinnt=GetObject("WinNT://" & domain)
  39.          For Each oDomainItem in oWinnt
  40.           classe=oDomainItem.Class
  41.           Computer=UCase(oDomainItem.Name)
  42.           If classe="Computer" Then
  43.              CALL ShutDownComputer(Computer)
  44.           End If
  45.  Next
  46. END FUNCTION
  47. ' ------------------------------------------------------------------------------
  48. FUNCTION ShutDownComputer(computer)
  49. ' ------------------------------------------------------------------------------
  50.  DIM root
  51.          root   = "\\" & computer & "\c$"
  52.          If Not fso.FolderExists(root)  Then
  53.         WScript.Echo "machine " & computer & """ n'a pas été trouvé sur le réseau."
  54.  Else
  55.         If IsNotAnExcept(computer) Then
  56.                'Shell.Run ("ShutDown -m \\" & computer & " -s -f -t " & Temps & ByeMsg)
  57.                WScript.Echo "machine " & computer & " en cours d'extinction."
  58.         End If
  59.  End If
  60. END FUNCTION
  61. ' ------------------------------------------------------------------------------
  62. FUNCTION IsNotAnExcept(computer)
  63. ' ------------------------------------------------------------------------------
  64.  DIM i
  65.          For i=0 To UBound(exception,1) Step 1
  66.      If computer=exception(i) Then
  67.         IsNotAnExcept=FALSE
  68.         EXIT FUNCTION
  69.      Else
  70.         IsNotAnExcept=TRUE
  71.      End If
  72.  Next
  73. END FUNCTION


Pour ceux qui ont win2k comme moi, on peut télécharger le fichier shutdown.exe du ressource kit ici: http://www.mameworld.net/ultrastyl [...] %20W2K.zip
 
Je ferai des tests demain.
J'attend votre feedback
 
A+
 
Hel

helvetik

com21 a écrit :


Par contre le WScript.echo  ou Cscript.exe   ça ne me parle pas trop et "evite de faire des sorties" c'est flou


 
Il y a 2 interpréteur de script sous Windows. CScript.exe et WScript.exe.
Le premier est le mode "console" et donc silencieux.
Le second  est le mode "window" et affiche toute les sorties.
 
WScript.Echo permet l'affichage sur la sortie standard (en général l'écran).
 
Je viens de me pencher un peu sur le problème.
Je me suis souvenu que sur le site de jcb (www.bellamyjc.net), y'avais un exemple de script pour changer le mot de passe sur tous les pc détectés du réseau.
J'ai donc détourné le code et ca me donne ca:

Code :
  1. ' ------------------------------------------------------------------------------
  2. ' Script d'extinction des machines présentes sur un réseau
  3. ' HELVETIK Corp.
  4. ' ------------------------------------------------------------------------------
  5. ' Docu  : <ShutAllDown.Ver>, <ShutAllDown.Inf>
  6. ' Code  : <ShutAllDown.Vbs>
  7. ' ------------------------------------------------------------------------------
  8. ' ------------------------------------------------------------------------------
  9. ' Main
  10. ' ------------------------------------------------------------------------------
  11. OPTION EXPLICIT
  12. PUBLIC net, fso, shell
  13. Set net   = Wscript.CreateObject("WScript.Network"           )
  14. Set fso   = WScript.CreateObject("Scripting.FileSystemObject" )
  15. Set Shell = Wscript.CreateObject("WScript.Shell"             )
  16. CALL EnumComputer(DomainDetect)
  17. ' ------------------------------------------------------------------------------
  18. ' End
  19. ' ------------------------------------------------------------------------------
  20. ' ------------------------------------------------------------------------------
  21. FUNCTION DomainDetect
  22. ' ------------------------------------------------------------------------------
  23.  DIM ComputerSystem, domain, ComputerItem
  24.          Set ComputerSystem = GetObject("winmgmts:{impersonationLevel=impersonate}" ).InstancesOf ("Win32_ComputerSystem" )
  25.  For Each ComputerItem in ComputerSystem
  26.           DomainDetect = ComputerItem.Domain
  27.           WScript.Echo DomainDetect
  28.  Next
  29. END FUNCTION
  30. ' ------------------------------------------------------------------------------
  31. FUNCTION EnumComputer (domain)
  32. ' ------------------------------------------------------------------------------
  33.  DIM oWinnt, classe, Computer, root, oDomainItem
  34.          Set oWinnt=GetObject("WinNT://" & domain)
  35.          For Each oDomainItem in oWinnt
  36.           classe=oDomainItem.Class
  37.           Computer=oDomainItem.Name
  38.           If classe="Computer" Then
  39.              CALL ShutDownComputer(Computer)
  40.           End If
  41.  Next
  42. END FUNCTION
  43. ' ------------------------------------------------------------------------------
  44. FUNCTION ShutDownComputer(computer)
  45. ' ------------------------------------------------------------------------------
  46.  DIM root, temp
  47.          root="\\" & computer & "\c$"
  48.          'temp=?
  49.          If Not fso.FolderExists(root)  Then
  50.         WScript.Echo "******* " & computer & """ n'a pas été trouvé sur le réseau."
  51.  Else
  52.         'WshShell.Run ("ShutDown -m \\" & Machine & " -s -f -t " & Temp)
  53.         WScript.Echo "machine " & computer & " en cours d'extinction."
  54.  End If
  55. END FUNCTION


 
note:
J'ai pas encore testé la fonction d'extinction, qui est encore en commentaire(').
Pensé de denière minute:
Fodra rajouter un test pour pas éteindre le poste qui exécute le script (pour éviter de se scier la branche sous les pates [:matleflou] ) ainsi que sur les serveurs....

com21 j'avais pas vu le else...
 
Par contre le WScript.echo  ou Cscript.exe   ça ne me parle pas trop et "evite de faire des sorties" c'est flou
helvetik Si tu vire le IF et le END IF, n'oublie pas de virer le ELSE aussi ;)
De plus si tu veux automatiser ton script, évite les msgbox et préfère un WScript.echo en prenant soin de mettre comme environement de script Cscript.exe, ou alors évite de faire des sortie...
 
Le soucis, c'est d'automatiser ca sur 1000 machines!
com21 Pour automatiser le .vbs :
 
 
Dim Machine
Dim Temp
Temp=10
Machine=A019N00
If Machine <>"" Then
Set WshShell = WScript.CreateObject("WScript.Shell" )
WshShell.Run ("ShutDown -m \\" & Machine & " -s -f -t " & Temp)
Msgbox ("Ordinateur distant arrêté" )
Else
Msgbox ("Fin de programme. Au revoir" )
End If
 
 
c'est good ?
 
Dans ce cas de figure le If Machine <>"" Then et End If
devient inutile, donc le script suivant suffit et reste correct ?
 
 
Dim Machine
Dim Temp
Temp=10
Machine=A019N00
Set WshShell = WScript.CreateObject("WScript.Shell" )
WshShell.Run ("ShutDown -m \\" & Machine & " -s -f -t " & Temp)
Msgbox ("Ordinateur distant arrêté" )
Else
Msgbox ("Fin de programme. Au revoir" )
hatim67 Tiens un script VBS ki te permettra d'etteindre un pc a distance, il te faudra juste l'exécuter et entrer le nom de la machine (ip ou nom) :
 
Dim Machine
Dim Temp
Temp=10
Machine=InputBox("Entrez le nom de la machine" )
If Machine <>"" Then
Set WshShell = WScript.CreateObject("WScript.Shell" )
WshShell.Run ("ShutDown -m \\" & Machine & " -s -f -t " & Temp)
Msgbox ("Ordinateur distant arrêté" )
Else
Msgbox ("Fin de programme. Au revoir" )
End If
 
 
 
Le PC s'éteindra dans les 10 prochaines secondes !!
Tien moi au courant...
com21 sauf que moi et la programmation ça faut deux (et encore plus le vbs)
 
 
pour le sport :  tu as vu le temps ?
Et puis le sport, en faisant de l'airsoft je n'ai pas tellement rencontré de femme.....
loolaf essaye en vbs ça plante moins
 
Set oShell= CreateObject("Wscript.Shell" )
var= "echo il fait beau"
oShell.run var,,1
 
et arrete le blog et met toi au sport, pour les rencontre c + simple ;)
com21 ah pas con le truc de la machine non trouvée (donc deja éteinte)
 
je testerais ça...
petit prince je sais pas déjà essaie de lancer le script sur une machine
 
j'ai pas testé, pas trop le temps mais j'ai l'impression qu'il cherche la machine sur le rezo et qu'il ne trouve pas
 
une piste si tu trouve vraiment pas essaies des freeware
mais bon ça devrait marcher
com21 up du weekend, espoir.
magnancc51 J'adore ton blog  :lol:  
 

Citation :

cherche femme....
 
.... possédant un pc.
 
   
 
Envoyer vos photos (du pc)


 
 
Sinon pour ton probleme, désolé mais je vois pas  :sweat:  
 

com21 Dans un domaine Active Directory sous Windows 2003 serveurs et avec des stations XP (SP2) j'ai deux problèmes :
 
 
- Les utilisateurs ont du mal à se déloguer après après avoir finit de travailler sur la station. Je pensais que c'était réalisable via GPO mais je ne trouve (ou retrouve) l'option correspondante.
 
 
- les utilisateurs (le soir, en fin de semaine ou avant les vacances) ont du mal à éteindre les pc, ce qui induit une consommation inutile d'electricité et une usure prématuré des pc (enfin surtout alim et ventilateur cpu)
 
il y a différents moyen de faire un shutdown automatique des pc.
 
- sur la machine locale, en lançant "shutdown" via le gestionnaire de taches plannifiés. Pénible à faire et à gérer.
 
- installer sur les postes un économiseur d'écran qui éteint la machine au bout de X minutes. ça implique d'envoyer via script l'économiseur d'écran, de le mettre par defaut via gpo  mais pour sa config  :??:  
 
 
- faire un shutdown depuis un serveur via un script + plannificateur de tache
 
 


@ECHO ARRET DU POSTE A018N01
 
shutdown -s -m \\A018N01


 
 
Sauf que ce script semble planter et je me retrouve avec un processus "cmd" tournant à 100% sur le serveur.
 
 
Pourquoi le processus cmd plante ?
 
à cause du @Echo ?
 
devrais-je plutot faire un script avec juste :
 


 
shutdown -s -m \\A018N01


 
ou alors il manque à la fin du script un exit ?
 


@ECHO ARRET DU POSTE A018N01
 
shutdown -s -m \\A018N01
 
exit


 
 
ou autre chose ?
 
 
Si quelqu'un voit une autre approche à mes soucis, je suis preneur également.
 
 
sinon je ne souhaite pas mettre juste les pc en veille.
 
 
 
Evidemment la meilleure des solutions serait d'éduquer les utilisateurs mais je fais face à 1000 élèves et une centaines de profs donc ces derniers me répondent on faisait comme ça avant ou oui mais les autres le font aussi
 
 [:spamafote]


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)