我有一个简单的批处理文件,可以运行旧的DOS二进制文件。永远,.exe已从.bat文件中使用start \b
启动。
最近,我发现DOS程序在尝试创建一些文件时会崩溃,因为某些目录是从中启动批处理文件的。程序可以在任何地方修改文件。很可能DOS程序正在做一些愚蠢的事情 - 它没有发出有用的信息,它只是因c0000005访问冲突而崩溃 - 但我必须忍受它。
通过一点调试,很明显将start \b
更改为runas /savecred /user:ssliva
可以保证DOS程序具有不会崩溃的文件创建权限,即使我已经知道了登录。用户ssliva(我)是一个管理员。
有没有办法让这个DOS程序再次适用于所有目录和所有用户?我不想在批处理文件中对用户名进行硬编码,因此理想情况下我能够发现程序崩溃时哪些权限不同。
我认为问题在于目录的权限,但icacls
表示需要runas [admin]
的目录与start
工作的目录具有相同的权限。用户是(RX)。我不知道为什么文件创建导致某些目录中的应用程序崩溃,而不是其他目录,除非它不是文件夹权限。