【发布时间】:2021-01-03 08:39:03
【问题描述】:
有一个 VB.Net 应用程序,我在其中尝试调用 klist.exe 来清除缓存的 Kerberos 票证。
Dim klist As New ProcessStartInfo("C:\Windows\System32\klist.exe")
klist.Arguments = "purge"
Process.Start(klist)
调试器吐出来:
System.ComponentModel.Win32Exception: 'The system cannot find the file specified'
该文件明确存在,并且可以在从命令提示符提升权限的情况下运行。
这是什么玩意儿?还是我太累了,我错过了一些明显的东西?
【问题讨论】:
-
您的应用是作为 32 位还是 64 位进程运行的?检查
SysWOW64目录。 -
了解File System Redirector - 您的应用程序被重定向到不存在 klist 的文件夹。在我的电脑上,我需要在项目设置的编译选项卡中取消勾选“首选 32 位”才能启动 klist.exe
-
32 vs 64 for Target CPU 似乎没有任何改变。
-
错误... 将目标设置为 64 位已修复此问题。我假设(我们所有人都知道这样做那个......)VS已经踢出64位文件。不是,现在问题已解决。感谢您的提示!
-
只是一个 SO 提示:: 您应该将您的解决方案作为答案,然后将其标记为已接受,这样其他人就不必通读 cmets。 =)