如何阻止对任何文件或 exe vb.net 的访问?

Posted

技术标签:

【中文标题】如何阻止对任何文件或 exe vb.net 的访问?【英文标题】:How to block access to any file or exe vb.net? 【发布时间】:2017-08-20 14:30:30 【问题描述】:

如何阻止和解除阻止文件或可执行文件在运行时在 vb.net 中永久打开?

【问题讨论】:

***.com/questions/13893232/… 如果我不知道用于防病毒隔离的用户帐户名称怎么办 AFAIK 防病毒隔离区通常只是一个加密数据库,其中存储文件名、内容(字节)和元数据,但实际文件会从磁盘中删除。当您选择恢复文件时,反病毒软件会使用原始名称创建一个新文件,并将数据库中的内容写入文件。 如果我压缩了文件,它也会隔离文件吗? 压缩它是使文件无法运行的一种方法,因为您修改了它的内容,这样操作系统就无法像往常一样读取它。然而,这种方法在安全性方面并不真正安全,因为人们可以很容易地找出如何压缩它然后再次解压缩它。虽然如果你只是想阻止用户通过双击直接运行它,它可以工作。 【参考方案1】:

您可以使用此代码,您可以使用Environment.UserName 获取用户名,这将锁定任何类型的文件,它也会锁定文件夹:

Dim FSS As FileSystemSecurity = File.GetAccessControl(Application.StartupPath & "\quarantine\" & NewTextDoc.Text)
FSS.AddAccessRule(New FileSystemAccessRule(Environment.UserName, FileSystemRights.FullControl, AccessControlType.Deny))
File.SetAccessControl(Application.StartupPath & "\quarantine\" & NewTextDoc.Text, FSS)

要解锁文件/文件夹,只需像这样删除AccessRule

Dim FSS As FileSystemSecurity = File.GetAccessControl(Application.StartupPath & "\quarantine\" & NewTextDoc.Text)
FSS.RemoveAccessRule(New FileSystemAccessRule(Environment.UserName, FileSystemRights.FullControl, AccessControlType.Deny))
File.SetAccessControl(Application.StartupPath & "\quarantine\" & NewTextDoc.Text, FSS)

最后希望这对你有帮助:)

【讨论】:

@BrandonWilliams ,不客气 :),如果它真的对你有帮助,请接受答案,以便它可以帮助其他人。 好的,我会怎么做(对不起,我是新来的)但是当我将路径放入(FilePath/FolderPath)时我能得到快速帮助吗? @BrandonWilliams ,哦,对不起,是的,你需要在最后几行添加FSS 变量,我编辑了我的答案,再次检查。 @BrandonWilliams,谢谢,你看到编辑了吗? @BrandonWilliams :请注意,此代码仅限制当前用户的访问。所有其他用户仍然可以访问它以及系统本身,这意味着该文件仍然可以由另一个用户/管理员或系统执行。如果您想进行“隔离”,最起码您应该做的是修改文件的内容,使其无法运行。

以上是关于如何阻止对任何文件或 exe vb.net 的访问?的主要内容,如果未能解决你的问题,请参考以下文章

VB.NET编好程序后一运行就提示生成错误,重装VB好几遍了还是不行

如何在 VB.NET 项目中插入 exe 文件并使用此文件发布应用程序?

VB.NET将一个已有的A.EXE文件添加到项目资源,如何在项目生成的EXE文件中运行它?

将 Quick BASIC 转换为 VB.Net - 随机访问文件

详细教程:在C#/VB.NET中如何创建图片超链接

文件属性选项卡访问信息 vb.net