一个小工具,功能有启用禁用外网、USB接口,可由服务端socket长链接进行操控客户端从而达到实现前边的这些功能,这里贴上核心代码,先给上启用禁用USB接口吧,这个方法可随时启用禁用,之前用过一个改usb接口状态那个方法不大行,对于已经插进去的没啥作用了,这个是后来改过的

启用USB

  1. public bool EnableUSB()
  2. {
  3. if (!IsExistRegistKey("HKEY_LOCAL_MACHINE", @"SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices"))
  4. {
  5. CreateRegistKey("HKEY_LOCAL_MACHINE", @"SOFTWARE\Policies\Microsoft\Windows", "RemovableStorageDevices", "");
  6. }
  7. if (!IsExistRegistKey("HKEY_LOCAL_MACHINE", @"SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}"))
  8. {
  9. CreateRegistKey("HKEY_LOCAL_MACHINE", @"SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices", "{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}", "");
  10. }
  11. SetRegistValue("HKEY_LOCAL_MACHINE", @"SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}", "Deny_Read", "", "REG_DWORD");
  12. SetRegistValue("HKEY_LOCAL_MACHINE", @"SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}", "Deny_Write", "", "REG_DWORD");
  13. bool blDevices = SetRegistValue("HKEY_LOCAL_MACHINE", @"SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}", "Deny_All", "", "REG_DWORD");
  14.  
  15. if (!IsExistRegistKey("HKEY_LOCAL_MACHINE", @"SYSTEM\CurrentControlSet\services\USBSTOR"))
  16. {
  17. CreateRegistKey("HKEY_LOCAL_MACHINE", @"SYSTEM\CurrentControlSet\services\", "USBSTOR", "");
  18. }
  19. bool blUsbStor = SetRegistValue("HKEY_LOCAL_MACHINE", @"SYSTEM\CurrentControlSet\services\USBSTOR", "Start", "", "REG_DWORD");
  20.  
  21. if (GetSystemIs64() == "")
  22. {
  23.  
  24. if (!IsExistRegistKey("HKEY_LOCAL_MACHINE", @"SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\RemovableStorageDevices"))
  25. {
  26. CreateRegistKey("HKEY_LOCAL_MACHINE", @"SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\", "RemovableStorageDevices", "");
  27. }
  28. if (!IsExistRegistKey("HKEY_LOCAL_MACHINE", @"SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}"))
  29. {
  30. CreateRegistKey("HKEY_LOCAL_MACHINE", @"SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\RemovableStorageDevices\", "{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}", "");
  31. }
  32. SetRegistValue("HKEY_LOCAL_MACHINE", @"SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}", "Deny_Read", "", "REG_DWORD");
  33. SetRegistValue("HKEY_LOCAL_MACHINE", @"SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}", "Deny_Write", "", "REG_DWORD");
  34. SetRegistValue("HKEY_LOCAL_MACHINE", @"SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}", "Deny_All", "", "REG_DWORD");
  35. }
  36. return blDevices && blUsbStor;
  37. }

 禁用USB

  1. public bool DisableUSB()
  2. {
  3. if (!IsExistRegistKey("HKEY_LOCAL_MACHINE", @"SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices"))
  4. {
  5. CreateRegistKey("HKEY_LOCAL_MACHINE", @"SOFTWARE\Policies\Microsoft\Windows", "RemovableStorageDevices", "");
  6. }
  7. if (!IsExistRegistKey("HKEY_LOCAL_MACHINE", @"SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}"))
  8. {
  9. CreateRegistKey("HKEY_LOCAL_MACHINE", @"SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices", "{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}", "");
  10. }
  11.  
  12. SetRegistValue("HKEY_LOCAL_MACHINE", @"SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}", "Deny_Read", "", "REG_DWORD");
  13. SetRegistValue("HKEY_LOCAL_MACHINE", @"SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}", "Deny_Write", "", "REG_DWORD");
  14. bool blDevices = SetRegistValue("HKEY_LOCAL_MACHINE", @"SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}", "Deny_All", "", "REG_DWORD");
  15.  
  16. if (!IsExistRegistKey("HKEY_LOCAL_MACHINE", @"SYSTEM\CurrentControlSet\services\USBSTOR"))
  17. {
  18. CreateRegistKey("HKEY_LOCAL_MACHINE", @"SYSTEM\CurrentControlSet\services\", "USBSTOR", "");
  19. }
  20. bool blUsbStor = SetRegistValue("HKEY_LOCAL_MACHINE", @"SYSTEM\CurrentControlSet\services\USBSTOR", "Start", "", "REG_DWORD");
  21.  
  22. if (GetSystemIs64() == "")
  23. {
  24.  
  25. if (!IsExistRegistKey("HKEY_LOCAL_MACHINE", @"SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\RemovableStorageDevices"))
  26. {
  27. CreateRegistKey("HKEY_LOCAL_MACHINE", @"SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\", "RemovableStorageDevices", "");
  28. }
  29. if (!IsExistRegistKey("HKEY_LOCAL_MACHINE", @"SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}"))
  30. {
  31. CreateRegistKey("HKEY_LOCAL_MACHINE", @"SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\RemovableStorageDevices\", "{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}", "");
  32. }
  33.  
  34. SetRegistValue("HKEY_LOCAL_MACHINE", @"SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}", "Deny_Read", "", "REG_DWORD");
  35. SetRegistValue("HKEY_LOCAL_MACHINE", @"SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}", "Deny_Write", "", "REG_DWORD");
  36. SetRegistValue("HKEY_LOCAL_MACHINE", @"SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}", "Deny_All", "", "REG_DWORD");
  37. }
  38. return blDevices && blUsbStor;
  39. }

判断获取操作系统位数

  1. private string GetSystemIs64()
  2. {
  3. try
  4. {
  5. string systemtype = "";
  6. ObjectQuery oq = new ObjectQuery("select AddressWidth from Win32_Processor");
  7. ManagementObjectSearcher query1 = new ManagementObjectSearcher(oq);
  8. ManagementObjectCollection moc = query1.Get();
  9. foreach (ManagementObject mo in moc)
  10. {
  11. try
  12. {
  13. systemtype = mo["addressWidth"].ToString();
  14. }
  15. catch
  16. {
  17. systemtype += "null";
  18. continue;
  19. }
  20. }
  21. moc = null;
  22. oq = null;
  23. query1 = null;
  24. return systemtype;
  25.  
  26. }
  27. catch (Exception ex)
  28. {
  29. ErrorCollectHelper.ErrorLog("获取操作系统位数错误", ex.ToString());
  30. return "";
  31. }
  32. }

操作注册表

  1. private bool IsExistRegistKey(string rootKey, string subKey)
  2. {
  3. bool isExistKey = false;
  4. try
  5. {
  6. RegistryKey hkml = GetRegistryKey(rootKey);
  7. if (hkml != null)
  8. {
  9. RegistryKey subkey = hkml.OpenSubKey(subKey, true);
  10. if (subkey != null)
  11. isExistKey = true;
  12. }
  13. }
  14. catch (Exception ex)
  15. {
  16. ErrorCollectHelper.ErrorLog("打开注册表错误", ex.ToString());
  17. }
  18. return isExistKey;
  19. }
  20. private void CreateRegistKey(string rootKey, string subKey, string keyName, string keyValue)
  21. {
  22. try
  23. {
  24. RegistryKey hkml = GetRegistryKey(rootKey);
  25. if (hkml != null)
  26. {
  27. RegistryKey subkey = hkml.CreateSubKey(subKey);
  28. if (subkey != null && keyName != "")
  29. subkey.SetValue(keyName, keyValue, RegistryValueKind.String);
  30. }
  31. }
  32. catch (Exception ex)
  33. {
  34. ErrorCollectHelper.ErrorLog("创建注册表错误", ex.ToString());
  35. }
  36. }
  37.  
  38. private bool SetRegistValue(string rootKey, string subKey, string key, string value, string type)
  39. {
  40. try
  41. {
  42. RegistryKey hkml = GetRegistryKey(rootKey);
  43. if (hkml != null)
  44. {
  45. RegistryKey secKey = hkml.OpenSubKey(subKey, true);
  46. if (secKey != null)
  47. secKey.SetValue(key, value, GetValueKind(type));
  48. else
  49. {
  50. secKey = hkml.CreateSubKey(subKey);
  51. if (secKey != null)
  52. secKey.SetValue(key, value, GetValueKind(type));
  53. }
  54. }
  55. return true;
  56. }
  57. catch (Exception ex)
  58. {
  59. ErrorCollectHelper.ErrorLog("修改注册表错误", ex.ToString());
  60. return false;
  61. }
  62. }
  63. private bool DeleteRegistValue(string rootKey, string subKey, string key)
  64. {
  65. try
  66. {
  67. RegistryKey hkml = GetRegistryKey(rootKey);
  68. if (hkml != null)
  69. {
  70. RegistryKey secKey = hkml.OpenSubKey(subKey, true);
  71. if (secKey != null)
  72. {
  73. if (secKey.GetValue(key) != null)
  74. secKey.DeleteValue(key);
  75. }
  76. }
  77. return true;
  78. }
  79. catch (System.Exception ex)
  80. {
  81. ErrorCollectHelper.ErrorLog("删除注册表错误", ex.ToString());
  82. return false;
  83. }
  84. }
  85. private RegistryValueKind GetValueKind(string typeInfo)
  86. {
  87. switch (typeInfo)
  88. {
  89. case "REG_DWORD":
  90. return RegistryValueKind.DWord;
  91. case "REG_SZ":
  92. return RegistryValueKind.String;
  93. default:
  94. return RegistryValueKind.None;
  95. }
  96. }
  97. private RegistryKey GetRegistryKey(string rootkey)
  98. {
  99. if (string.IsNullOrEmpty(rootkey))
  100. return null;
  101. switch (rootkey)
  102. {
  103. case "HKEY_CURRENT_USER":
  104. return Registry.CurrentUser;
  105. case "HKEY_LOCAL_MACHINE":
  106. return Registry.LocalMachine;
  107. case "HKEY_CLASSES_ROOT":
  108. return Registry.ClassesRoot;
  109. case "HKEY_USERS":
  110. return Registry.Users;
  111. case "HKEY_CURRENT_CONFIG":
  112. return Registry.CurrentConfig;
  113. default:
  114. return null;
  115. }
  116. }

以上内容都是比较固定死的,没什么技术含量,这些内容可以直接拿着作为helper用了

(下一个是启用禁用外网

启用禁用USB接口的更多相关文章

  1. 如何禁用电脑USB接口

    方法一,BIOS设置法 重新启动计算机,在开机过程中,点击键盘上的“Delete”键,进入BIOS设置界面,选择“Integrated Peripherals”选项,展开后将“USB 1.1 Cont ...

  2. USB接口禁用与启用

    前几天闺蜜淘了一台小本,但是发现计算机USB接口是禁用的,有点头疼,所以问了万能的度娘,找到了n种办法.不过这一种是适用于我的情况,简单记录一下. 解决方法:(主要就是修改注册表) 1.打开注册表编辑 ...

  3. USB接口禁用小工具v1.0.1

    由论坛用户原创制作的一个USB接口工具, 可选择手动/自动启动或者禁止启动模式, 开启禁止启动模式后USB接口将关闭识别功能, 有效防止U盘设备侵入,对于机房实验室设施来说相当管用. 下载地址:htt ...

  4. Windows Server 2008 R2域控组策略设置禁用USB

    问题: Windows Server 2008 R2域控服务器如何禁用客户端使用USB移动存储(客户端操作系统需要 Windows Vista以上的操作系统,XP以下的操作系统不能禁用USB移动存储) ...

  5. 域策略禁用usb

    文档及模板可在 http://pan.baidu.com/s/1qYTcjTy  下载 pro_usb_users.adm  此模板可禁用到 指定盘符,针对用户策略 pro_usb_computers ...

  6. USB接口无法识别设备

    http://windows.microsoft.com/zh-cn/windows/answers?tId=14fa1e44-0a19-48ef-9ba7-b7e512a837a4 小琼子 提问 2 ...

  7. 利用win服务定时为网卡启用/禁用

    上周,Boss和我说,他儿子夜里爬起来用笔记本在被窝里玩CF,问路由器可以解决么,我看了是TPLINK的普通家用无线路由器,不支持禁用CF客户端网游,可以通过配置端口屏蔽什么的,但是白天又要开启,想想 ...

  8. 下一代USB接口将支持双向拔插,于明年亮相

    近日,USB接口标准制定组织表示新一代USB接口将于明年年中亮相,而其名称目前被暂定为了USB Type-C.该组织表示USB Type-C标准将允许制造商采用更纤薄的接口设计,在实用性大大提高的同时 ...

  9. C#监控USB接口

    该C#代码实现监控USB接口是否有设备接入或拨出,包括多个U盘. using System; using System.IO; using System.Runtime.InteropServices ...

随机推荐

  1. 判断项目中是否有slf4j的实现类

    /** * 判断项目中是否有slf4j的实现类 */ @org.junit.Test public void test() { try { Enumeration<URL> resourc ...

  2. UVALive 7008 Tactical Multiple Defense System

     Tactical Multiple Defense System Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld &a ...

  3. nyoj 63 小猴子下落

    小猴子下落 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 有一颗二叉树,最大深度为D,且所有叶子的深度都相同.所有结点从左到右从上到下的编号为1,2,3,····· ...

  4. codeforces 371c

    #include<stdio.h> int main() { char s[200]; __int64  r,nb,ns,nc,pb,ps,pc,i,sum,tob,tos,toc; wh ...

  5. C++ - new delete 高维数组小结

    借鉴:http://www.cnblogs.com/beyondstorm/archive/2008/08/26/1276278.html http://www.cnblogs.com/platero ...

  6. [Usaco2015 dec]Max Flow

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 204  Solved: 129[Submit][Status][Discuss] Descriptio ...

  7. Crashing Robots POJ 2632 简单模拟

    Description In a modernized warehouse, robots are used to fetch the goods. Careful planning is neede ...

  8. [bzoj1617][Usaco2008 Mar]River Crossing渡河问题_动态规划

    River Crossing渡河问题 bzoj-1617 Usaco-2008 Mar 题目大意:题目链接. 注释:略. 想法:zcs0724出考试题的时候并没有发现这题我做过... 先把m求前缀和, ...

  9. T1080 线段树练习 codevs

    http://codevs.cn/problem/1080/  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题目描述 Description 一行N个方 ...

  10. centos6.2安装kvm虚拟机

    http://www.wenzizone.com/2012/03/06/centos_6-2_install_kvm.html KVM虚拟机简介 kernel-based Virtual Machin ...