Bonjour,

J'essaie de faire un script batch qui va activer l'option wol après standby.

Pour ceci, j'utilise un script VBS qui fonctionne très bien quand je l'exécute en double-cliquant dessus.

Par contre quand j'essaie une exécution automatique (fichier dans le dossier startup de l'utilisateur, registry "Run"/"RunOnce") la query sur MSNdis_DeviceWakeOnMagicPacketOnly me sort une erreur.

L'erreur est la suivante :

Error : Not supported
Source : SWbemServicesEx

Google ne m'a pas aidé jusqu'à présent, voilà pourquoi je me tourne vers vous.

Le script complet utilisé est le suivant (trouvé sur internet, fonctionne lorsque je l'exécute Intéractivement)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
' http://forums.whirlpool.net.au/forum-replies-archive.cfm/919407.html

' http://msdn.microsoft.com/en-us/library/aa392301(VS.85).aspx

Const wbemFlagForwardOnly = &h20

' "." --> computer running the script
strComputer = "."

WScript.Echo "Begin"

OSSettings

WScript.Echo "End"


Sub OSSettings

	Set objWMIservice1 = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
	Set Colitems1 = objWMIService1.ExecQuery("Select * From Win32_NetworkAdapter")
	Set objWMIService2 = GetObject("winmgmts:\\" & strComputer & "\root\WMI")
	Set colItems2 = objWMIService2.ExecQuery("SELECT * FROM MSPower_DeviceEnable", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
	Set colItems3 = objWMIService2.ExecQuery("SELECT * FROM MSPower_DeviceWakeEnable", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
	Set colItems4 = objWMIService2.ExecQuery("SELECT * FROM MSNdis_DeviceWakeOnMagicPacketOnly", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)

	For Each objItem1 in Colitems1
		' tester qu'on a bien à faire à une carte réseau filiaire et d'un certain type
		If objitem1.adaptertypeID = 0 and objitem1.netconnectionid <> "" and (objitem1.adaptertypeID = 0 and ( instr(1,objitem1.netconnectionid,"wireless",1) = 0)) and objitem1.adaptertypeID = 0 and objitem1.manufacturer <> "Microsoft" then
			
			' enable "Allow the computer to turn off this device to save power"
			For Each objItem2 In colItems2
				IF LEN(objitem1.PNPDeviceID) <= LEN(objItem2.InstanceName) THEN
					IF UCASE(objItem1.PNPDeviceID) = LEFT(UCASE(objItem2.InstanceName), LEN(objitem1.PNPDeviceID)) THEN
					objitem2.enable = "1"
					objitem2.Put_()
					
						' enable "Allow this device to wake the computer"
						For Each objItem3 In colItems3
							IF LEN(objitem1.PNPDeviceID) <= LEN(objItem3.InstanceName) THEN
								IF UCASE(objItem1.PNPDeviceID) = LEFT(UCASE(objItem3.InstanceName), LEN(objitem1.PNPDeviceID)) THEN
								objitem3.enable = "1"
								objitem3.Put_()
								
									' enable "Allow only management stations to bring the computer out of standby"
									For Each objItem4 In colItems4
										IF LEN(objitem1.PNPDeviceID) <= LEN(objItem4.InstanceName) THEN
											IF UCASE(objItem1.PNPDeviceID) = LEFT(UCASE(objItem4.InstanceName), LEN(objitem1.PNPDeviceID)) THEN
											objItem4.EnableWakeOnMagicPacketOnly = "1"
											objitem4.put_()
											END IF
										END IF
									NEXT
								END IF
							END IF
						NEXT
					END IF
				END IF
			NEXT
		END IF
	NEXT

End Sub
La ligne en erreur est celle en gras.

Merci d'avance de votre aide