如何使用VB.NET更改Windows文件夹权限?(System.UnauthorizedAccessException



我正在做这个小VB。. NET应用程序,需要复制一对文件到Windows文件夹,但我得到一个访问拒绝错误;然后,如果我进入文件夹,右键单击它,手动写入写入权限的文件夹,一切都会正常工作。

然而,这个应用程序将被我们的员工在网络的几台机器上使用,他们中的大多数人没有这种水平的"专业知识";这意味着该过程必须顺利且自动地进行,因此权限的更改应由应用程序自己完成。

我在网上找到了一个代码片段,应该可以解决这个问题,但它不适合我。我得到一个运行时错误与以下消息:

系统。UnauthorizedAccessException: ' attempt to perform an unauthorized operation.'

这是我使用的代码:

Dim folder As String = "C:Program Files (x86)MyCompanyMyApp"
Dim sid As SecurityIdentifier = New SecurityIdentifier(WellKnownSidType.AuthenticatedUserSid, Nothing)
Dim writerule As FileSystemAccessRule = New FileSystemAccessRule(sid, FileSystemRights.Write, AccessControlType.Allow)
Dim fsecurity As DirectorySecurity = Directory.GetAccessControl(folder)
fsecurity.AddAccessRule(writerule)
Directory.SetAccessControl(folder, fsecurity) 'the error happens here

错误正好发生在尝试应用权限设置的行中。任何想法?

解决方案是提高应用程序的权限级别。这里是如何强制程序自动执行,而不需要右键单击并选择"以管理员身份运行";每一次:

https://mobitek-system.com/blog/2020/06/how-to-run-vb-net-code-as-an-administrator/

😁

相关内容

最新更新