使用 C# WMI 我在另一台计算机上启动一个 exe,该 exe 使用 C# 启动另一个 exeProcess
班级。最后一个 exe 尝试调用Directory.CreateDirectory
使用网络路径(又名\\\\comp1\d$\dir\
). Directory.CreateDirectory
抛出这个异常:
Access to the path '\\\\blah\blah\blah' is denied. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.Directory.InternalCreateDirectory(String fullPath, String path, DirectorySecurity dirSecurity)
at System.IO.Directory.CreateDirectory(String path, DirectorySecurity directorySecurity)
如果我直接在计算机上的控制台中运行第三个exe,则不会抛出此异常,并且一切正常。
正在创建目录的文件夹的安全设置已为“Everyone”授予完全权限。
我该如何解决这个问题?
另请注意,通过 WMI 启动应用程序时,存在第三层权限。例如,如果您在现有 WMI 对象上调用方法,它可能不会委托调用者权限,甚至不会委托主机 exe 的权限,但会有一个空主体。这可能会发生在你身上。
转到“计算机管理”,在“服务和应用程序”下,右键单击“WMI 控制”节点并选择“属性”。转到“安全”选项卡,然后导航到正确的 WMI 命名空间(最有可能是 root\CIMV2),并确保您使用的用户也具有适当的权限。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)