是否可以从用户模式的java应用程序查询特权windows服务
Is it possible to query a privileged windows service from a user mode java application?
背景
我正在开发一个应用程序,需要使用java查询硬盘上所有可用的文件。由于性能是一个主要要求,我编写了一个本机应用程序,它可以访问所有有效文件项的windows Master File Table ($MBT)
。
我计划将本机修改为windows服务(以管理员权限运行…访问MFT所需(,然后使用我的用户模式java应用程序通过一些IPC技术(特别是共享内存或命名管道或套接字…需要评估(与它联系。
目标应用程序是windows特定的,java用于文本处理(我知道python/perl很擅长,但很久没有使用它们了(。
问题
现在我的问题是
- 是否可以从有限的用户级应用程序查询特权windows服务
- 如果没有,实现这一点的变通方法是什么
- 我认为套接字可能是IPC机制,因为其他两个套接字在使用
Access Denied
时会失败。我的假设正确吗 - 将本机代码转换为JNI/DLL然后使用是否正确?但在这种情况下,我必须通过自定义清单文件以管理员权限启动我的java应用程序
平台
- Windows 7企业版
- Visual Studio 2012(用于本机$MFT访问(
- JDK版本1.7.0_25-b17
感谢
由于这是一个特定于Windows的问题,您可以使用特定于Windows解决方案。在这种情况下,一个具有适当安全性的命名管道就足够了。当你在服务中创建管道时,你会保护它以授予允许桌面应用程序访问管道的权限。
- 您可以查询特权服务,如果它提供了一种方式(如插座、管道等(
- 您可以为此使用套接字TCP/UDP套接字。你必须请确保您的防火墙将此端口阻止在计算机外部
- 最简单的&松耦合的方式是Socket。性能取决于传输的数据量
- 监视硬盘文件是一项管理任务。因此,用管理员权限运行这个java应用程序并不是一件坏事。但是如果你允许普通用户通过外部设置管理员权限来运行这个应用程序,这不是一个好的做法
相关文章:
- 试图在visual studio上用C++创建一个桌面应用程序
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- 在C应用程序中运行C++(带有STL)函数
- 使用VerQueryValue检索应用程序的文件描述
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 使用调试/崩溃报告将应用程序部署到客户端
- C++控制台应用程序阻止退出
- 码头化的C++应用程序是否向后兼容早期的内核版本
- 将应用程序从32位移植到64位时出现问题
- 如何改变c++应用程序的视觉效果
- WM_CTLCOLORSTATIC从未在WIN32应用程序中触发
- PC中的程序和PHONE中的本机描述应用程序之间的数据连接
- 如何查询以确定我的 MacOS/X 应用程序是否处于应用程序午睡模式?
- 从C++应用程序查询堆
- 我可以在形式的应用程序中查询用户交互事件
- 从ASP.NET应用程序查询Active Directory对象属性将返回旧结果
- 在 C++ 控制台应用程序中编写 SQL 查询
- 单个应用程序可以是服务器和客户端,也可以是查询本身
- 是否可以从用户模式的java应用程序查询特权windows服务
- c++应用程序中的SQL查询最小化/缓存