Erreur avec MSNdis_DeviceWakeOnMagicPacketOnly
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:
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