2012-10-10 2 views
1

J'ai besoin d'un moyen simple de désactiver/activer rétroactivement tous les périphériques USB dans Windows 7 via un script C++/C#/powershell SANS avoir à redémarrer la machine. Je comprends que changer l'objet de stratégie de groupe est une option, mais je n'arrive pas à trouver une implémentation qui le fasse sans redémarrage.Désactiver/Activer les pilotes USB sans redémarrage avec C++/C#/PowerShell sous Windows 7

Veuillez expliquer votre solution en détail, je suis nouveau à Administration sur Windows.

Répondre

1

En utilisant PowerShell vous pouvez le faire comme ci-dessous

Ouvrir le registre et accédez à la clé de Registre et de voir quelle valeur après le début clé reg a en elle Si son ensemble à « 3 » signifie que lecteur USB est activé sur le PC.

Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\services\USBSTOR" -name start 


PSPath  : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\USBSTOR 
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services 
PSChildName : USBSTOR 
PSDrive  : HKLM 
PSProvider : Microsoft.PowerShell.Core\Registry 
Start  : 3 

Si vous souhaitez le désactiver, vous pouvez définir la valeur à 4 en utilisant ci-dessous commande

Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\services\USBSTOR" -name start -Value 4 

Si je vérifie à nouveau la valeur de clé reg je vois qu'il a été modifié à 4 et si je branchez un lecteur USB qu'il ne sera pas détecté

Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\services\USBSTOR" -name start 


PSPath  : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\USBSTOR 
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services 
PSChildName : USBSTOR 
PSDrive  : HKLM 
PSProvider : Microsoft.PowerShell.Core\Registry 
Start  : 4 
+0

Je suis plutôt sûr de ce que vous faites ici en changeant le comportement de lancement du service de manutention USB. Cependant, cela ne devrait pas avoir d'influence si c'est déjà en cours ou non. Je suis tout à fait sûr que la question vise à les activer/les désactiver tous en même temps (c'est-à-dire comme un interrupteur marche/arrêt global). – Mario

+0

Mario a raison, le mot clé est rétroactif. –

+0

Salut, avez-vous essayé d'exécuter ce script lorsque les lecteurs USB sont connectés ?? – PowerShell

Questions connexes