[XP] VBScript pour éteindre les machines
nhourcade
Messages postés
2
Statut
Membre
-
Jacques -
Jacques -
Salut,
Nous avons sur notre campus plus de 400 machines. Et nous voulons faire en sorte que les machines s'éteignent automatiquement tous les soirs vers par exemple, 23h00.
Nous voulons faire avec un VBScript qui créé un plannificateur de tâche.
Le script fonctionne bien, c'est à dire qu'il créé la tâche mais ne s'applique pas.
Si je regarde les options de la tâche créé, il faut préciser un user name et mot de passe admin pour que la tâche fonctionne. Mais je ne sais pas comment l'intégrer au script.
Voici le script:
'==========================================================================
'
' VBScript Source File -- Created with SAPIEN Technologies PrimalScript 4.0
'
' NAME: ScheduleShutdown.vbs
'
' AUTHOR: IS Department , IMD
' DATE : 13/09/2006
'
' COMMENT: Schedules a daily shutdown of the computer everyday at 15:00
'
'==========================================================================
strComputer = "."
strOldCommand="shutdown.exe -s -t 00"
strNewCommand=strOldCommand
'Checks if the schedule has already been scheduled
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colScheduledJobs = objWMIService.ExecQuery("Select * from Win32_ScheduledJob")
For Each objJob in colScheduledJobs
if objJob.Command=strOldCommand Then
AlreadyScheduled = True
end If
Next
'If it has not been already scheduled, then schedule it
if not AlreadyScheduled Then
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
JobID = "DailyShutdown"
Set objNewJob = objWMIService.Get("Win32_ScheduledJob")
errJobCreate = objNewJob.Create _
(strNewCommand, "********150000.000000+120", _
True , _
1 OR 2 OR 4 OR 8 OR 16 OR 32 OR 64, _
, _
False, _
JobId)
If not errJobCreate = 0 Then
WScript.Echo "Job not created. Error code = " & errJobCreate
Else
wscript.echo "Scheduled Task created successfully."
End If
Else
wscript.echo "No need to create task"
End If
Merci d'avance pour votre aide,
Nicolas
Nous avons sur notre campus plus de 400 machines. Et nous voulons faire en sorte que les machines s'éteignent automatiquement tous les soirs vers par exemple, 23h00.
Nous voulons faire avec un VBScript qui créé un plannificateur de tâche.
Le script fonctionne bien, c'est à dire qu'il créé la tâche mais ne s'applique pas.
Si je regarde les options de la tâche créé, il faut préciser un user name et mot de passe admin pour que la tâche fonctionne. Mais je ne sais pas comment l'intégrer au script.
Voici le script:
'==========================================================================
'
' VBScript Source File -- Created with SAPIEN Technologies PrimalScript 4.0
'
' NAME: ScheduleShutdown.vbs
'
' AUTHOR: IS Department , IMD
' DATE : 13/09/2006
'
' COMMENT: Schedules a daily shutdown of the computer everyday at 15:00
'
'==========================================================================
strComputer = "."
strOldCommand="shutdown.exe -s -t 00"
strNewCommand=strOldCommand
'Checks if the schedule has already been scheduled
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colScheduledJobs = objWMIService.ExecQuery("Select * from Win32_ScheduledJob")
For Each objJob in colScheduledJobs
if objJob.Command=strOldCommand Then
AlreadyScheduled = True
end If
Next
'If it has not been already scheduled, then schedule it
if not AlreadyScheduled Then
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
JobID = "DailyShutdown"
Set objNewJob = objWMIService.Get("Win32_ScheduledJob")
errJobCreate = objNewJob.Create _
(strNewCommand, "********150000.000000+120", _
True , _
1 OR 2 OR 4 OR 8 OR 16 OR 32 OR 64, _
, _
False, _
JobId)
If not errJobCreate = 0 Then
WScript.Echo "Job not created. Error code = " & errJobCreate
Else
wscript.echo "Scheduled Task created successfully."
End If
Else
wscript.echo "No need to create task"
End If
Merci d'avance pour votre aide,
Nicolas
A voir également:
- [XP] VBScript pour éteindre les machines
- Cle windows xp - Guide
- Raccourci eteindre pc - Guide
- Éteindre pc à distance - Guide
- Cd burner xp - Télécharger - Gravure
- Telecharger windows xp - Télécharger - Systèmes d'exploitation
4 réponses
Salut.
pourquoi n'uitlise tu pas dos?
tu cré la ligne de commande suivante:
shutdown/s/m\\nom_ordinateur
tu le met dans un fichier batch (une ligne pour chaque poste a éteindre )
tu met le fichier batch sur le serveur et tu lui attribue
une tache planifiée...
le tour est joué
pourquoi n'uitlise tu pas dos?
tu cré la ligne de commande suivante:
shutdown/s/m\\nom_ordinateur
tu le met dans un fichier batch (une ligne pour chaque poste a éteindre )
tu met le fichier batch sur le serveur et tu lui attribue
une tache planifiée...
le tour est joué
Salut,
J'y avais pensé mais cela veut dire rentrer à la main les 400 machines dans le batch. Ceci n'est pas une solution.
On veut vraiment faire qqch d'automatique.
merci,
Nico
J'y avais pensé mais cela veut dire rentrer à la main les 400 machines dans le batch. Ceci n'est pas une solution.
On veut vraiment faire qqch d'automatique.
merci,
Nico
c'est pas toi qui la fait?
deja au lieu de 1 OR 2 OR 4 OR 8 OR 16 OR 32 OR 64 met 127
ensuite pour une execution a 23h il faut mettre
"********230000.000000+060" au lieu de "********150000.000000+120" (+60= GMT+1)
sinon je vois pas a quoi sa sert:
'Checks if the schedule has already been scheduled
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colScheduledJobs = objWMIService.ExecQuery("Select * from Win32_ScheduledJob")
For Each objJob in colScheduledJobs
if objJob.Command=strOldCommand Then
AlreadyScheduled = True
end If
Next
deja au lieu de 1 OR 2 OR 4 OR 8 OR 16 OR 32 OR 64 met 127
ensuite pour une execution a 23h il faut mettre
"********230000.000000+060" au lieu de "********150000.000000+120" (+60= GMT+1)
sinon je vois pas a quoi sa sert:
'Checks if the schedule has already been scheduled
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colScheduledJobs = objWMIService.ExecQuery("Select * from Win32_ScheduledJob")
For Each objJob in colScheduledJobs
if objJob.Command=strOldCommand Then
AlreadyScheduled = True
end If
Next
Le SNMP vous connaissez ?
C'est un protocole qui permet de commander des machines à distances.
Il existe des utilitaires permettant de voir l'ensemble des machines du réseau et d'y appliquer des policies.
(comme "net-snmp" qui est sous licence libre - téléchargeable sur https://sourceforge.net/projects/net-snmp/files/net-snmp%20binaries/ - Site officiel: http://www.net-snmp.org/ )
C'est un protocole qui permet de commander des machines à distances.
Il existe des utilitaires permettant de voir l'ensemble des machines du réseau et d'y appliquer des policies.
(comme "net-snmp" qui est sous licence libre - téléchargeable sur https://sourceforge.net/projects/net-snmp/files/net-snmp%20binaries/ - Site officiel: http://www.net-snmp.org/ )