在 C# 中禁用 USB 端口访问智能手机内存(无组策略)

Posted

技术标签:

【中文标题】在 C# 中禁用 USB 端口访问智能手机内存(无组策略)【英文标题】:Disable USB port from access smart-phone memory (without Group policy) in C# 【发布时间】:2020-06-27 07:16:25 【问题描述】:

您好,我目前正在开发一个应用程序以在 C# 中以编程方式禁用/启用 USB 端口

我找到了以下代码 sn-p 来启用/禁用 USB 端口。使用普通的 USB 记忆棒可以正常工作。但不幸的是它并没有禁用智能手机的存储卡访问。

//disable USB storage...
Microsoft.Win32.Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR", "Start", 4, Microsoft.Win32.RegistryValueKind.DWord); 

//enable USB storage...
Microsoft.Win32.Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR", "Start", 3, Microsoft.Win32.RegistryValueKind.DWord);

我已经用谷歌搜索了一个更好的解决方案来解决这个问题。我发现了一些使用组策略来实现相同目的的建议。但我的应用程序无意使用组策略。那么是否有任何解决方案可用,例如 编辑任何注册表项 以在 c# 中以编程方式实现智能手机的内存访问限制?

【问题讨论】:

看来您需要重新启动。看看这里。 ***.com/questions/20478042/… 【参考方案1】:

我可以通过更改注册表值来解决这个问题。详情如下,

对于禁止 USB 端口访问智能手机内存和记忆棒:

在注册表键 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\ 中使用 值 00000001 创建了 DWORD 参数 Deny_All可移动存储设备

对于允许访问:

在注册表键 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\ 中使用 值 00000000 创建了 DWORD 参数 Deny_All可移动存储设备

注意:- 要更改访问权限,我们必须重启电脑

C#代码片段如下,

对于允许访问:

Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices", "Deny_All", 0, RegistryValueKind.DWord);

限制访问:

Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices", "Deny_All", 1, RegistryValueKind.DWord);

【讨论】:

以上是关于在 C# 中禁用 USB 端口访问智能手机内存(无组策略)的主要内容,如果未能解决你的问题,请参考以下文章

如何在java中访问USB端口[关闭]

在 Windows 中禁用特定的 USB 端口

如何利用Android手机usb接口当WIFI热点

Android手机使用USB接口与RS232通讯

如果将笔式驱动器插入 USB 端口,如何使用 c# 检测?

浏览器自带的禁用端口