Jak*_*ake 3 permissions perl windows-7
我正在尝试编写一个perl脚本,通过使用query.exe(c:\ Windows\system32\query.exe)确定当前登录到Windows的用户.Perl无法访问此文件,无法执行它,甚至无法查看它是否存在,正如我在以下代码中找到的那样:
print `dir c:\\windows\\system32\\query*`;
Run Code Online (Sandbox Code Playgroud)
这会产生以下输出:
07/13/2009 05:16 PM 1,363,456 Query.dll
1 File(s) 1,363,456 bytes
0 Dir(s) 183,987,658,752 bytes free
Run Code Online (Sandbox Code Playgroud)
我已经使用perl getlogin函数检查了执行脚本的用户,并返回本地Administrators组成员的名称(特别是我).我也尝试为"Everyone"添加读取/执行权限,但是当我尝试修改此文件的权限时,Windows会继续向我提供访问被拒绝的错误.最后,我尝试以管理员身份运行perl.exe,但这也无法解决问题.
这是我可以通过更改Windows中的某些设置来解决的问题吗?我是否需要在perl脚本中添加一些内容?或者是否没有办法授予perl对这些进程的访问权限?
在我的64位机器,我能找到query.exe的Windows\System32(64位系统目录),但不是在Windows\SysWOW64(32位系统目录).
我怀疑你运行64位Windows和32位Perl,因此,在WOW64仿真下,32位Perl进程重定向system32到SysWOW64.
既然system32应该在你的路径中,你应该能够通过query.exe无任何路径执行来执行它.如果您必须参考64位系统文件夹,那么您可以使用32位进程执行此操作C:\Windows\sysnative.
如果我的怀疑是正确的,我建议你在WOW64上做一些阅读,因为它可能会让你感到困惑,直到你掌握它为止.另一方面,如果你已经知道了所有这些,我为光顾而道歉.