C# · 12月 25, 2021

c# – FileNotFoundException在System.DirectoryServices.Interop.UnsafeNativeMethods.IAds.GetInfo()

我有这个简单的代码行: var entry = new DirectoryEntry(“WinNT://DOMAIN/MachineName,Computer”);Console.WriteLine(entry.Guid);

实际上,路径由命令行提供.这个简单的控制台应用程序是为了测试而编译的,在我的测试中我发现:

>连接到我自己的Windows 7 PC工作.
>连接到网络上的任何其他Windows XP机器,工作.
>连接到网络上的任何其他Windows 7计算机失败,包括:

Unhandled Exception: System.IO.FileNotFoundException: The network path was not found.

at System.DirectoryServices.Interop.UnsafeNativeMethods.IAds.GetInfo()
at System.DirectoryServices.DirectoryEntry.RefreshCache()
at System.DirectoryServices.DirectoryEntry.FillCache(String propertyName)
at System.DirectoryServices.DirectoryEntry.get_NativeGuid()
at System.DirectoryServices.DirectoryEntry.get_Guid()
at GetDirectoryEntryProperties.Program.Main(String[] args) in D:\GetDirectoryEntryProperties\Program.cs:line 15

有任何想法吗?

我是所有机器上的管理员,但是由于设备锁定服务引起了另一个问题,导致在询问时出现UnauthorizedAccessException异常,但在这种情况下,我甚至无法阅读机器的Guid.

事件日志没有任何用处.

卢克

解决方法 对于不同的情况,我遇到了同样的错误信息.也许我发现的解决方案也可以帮助你.

升级到Windows 10后,我的电脑启动时出现弹出错误,看起来就像您发布的那样.这是System.DirectoryServices.Interop.UnsafeNativeMethods.IAds.GetInfo()中的FileNotFoundException.

解决方案是将两个字符串从一个注册表位置复制到另一个.

Copy these strings: RegisteredOwner and RegisteredOrganizationFrom: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersionTo: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion