Windows Server环境下如何配置仅指定共享程序可访问共享文件夹
Windows Server 受限共享权限配置方案
前置准备
- 在Windows Server上创建一个专用本地/域账号,命名为
JavaAppSvcAccount,设置强密码,勾选密码永不过期,取消用户下次登录时须更改密码,该账号无需加入任何特权用户组,仅保留基础用户权限即可。
步骤1:配置Java共享程序的访问权限
- 找到服务器上存放Java exe程序的本地目录,右键点击「属性」→「安全」 tab:
- 保留
Administrators、SYSTEM账号的完全控制权限 - 添加3台PC对应的登录用户账号(工作组环境需添加和PC本地账号同名同密的服务器本地账号,域环境直接添加对应域用户/用户组),授予读取和执行、列出文件夹内容、读取权限
- 删除其他所有无关账号的权限条目
- 保留
- 右键点击该目录→「共享」→「高级共享」:
- 勾选「共享此文件夹」,设置共享名(比如
JavaAppShare) - 点击「权限」,添加上述3个PC用户账号,仅授予读取权限,删除其他所有账号的共享权限
- 勾选「共享此文件夹」,设置共享名(比如
步骤2:配置受限共享文件夹的权限(核心配置)
- 找到需要限制访问的共享文件夹,右键点击「属性」→「安全」→「高级」:
- 点击「禁用继承」,选择「将继承的权限转换为此对象的显式权限」
- 删除所有现有权限条目,仅保留3条:
Administrators:完全控制(供管理员维护使用)SYSTEM:完全控制JavaAppSvcAccount:按需授予权限(如果程序只需读取就给「读取和执行、列出文件夹内容、读取」,需要写入就再加「修改、写入」)
- 右键点击该文件夹→「共享」→「高级共享」:
- 勾选「共享此文件夹」,可在共享名末尾加
$设置为隐藏共享(比如SecuredData$),降低被普通用户搜索到的概率 - 点击「权限」,仅保留
JavaAppSvcAccount的完全控制权限,删除其他所有账号的共享权限(包括3台PC的普通用户账号)
- 勾选「共享此文件夹」,可在共享名末尾加
该配置完成后,所有普通用户直接访问该共享路径时都会提示无权限,只有以
JavaAppSvcAccount身份运行的进程可以正常访问。
步骤3:配置Java程序运行身份
要让共享程序有权限访问受限文件夹,需要让程序以JavaAppSvcAccount身份启动,可选择以下任意一种方案:
方案A(用户自助输入密码)
- 在服务器的Java程序共享目录中,给目标exe创建快捷方式,右键点击快捷方式→「属性」→「快捷方式」tab→「高级」,勾选以其他用户身份运行,保存后将快捷方式共享给PC用户即可。用户首次启动时输入
JavaAppSvcAccount的账号密码,勾选记住密码后后续无需重复输入。
方案B(用户无需感知密码)
- 在每台PC上创建启动脚本,内容为:
runas /savecred /user:你的服务器名称\JavaAppSvcAccount "\\服务器IP\JavaAppShare\你的Java程序名称.exe"
- 将脚本保存为
.bat文件交给用户,首次运行时管理员统一输入一次JavaAppSvcAccount的密码,后续用户直接双击脚本即可正常启动程序,不需要知道账号密码。
验证配置
- 用PC普通用户账号登录,直接在资源管理器输入受限共享文件夹的路径,确认提示「权限不足无法访问」
- 启动共享Java程序,测试程序读写受限共享文件夹的功能,确认所有操作正常执行
内容的提问来源于stack exchange,提问作者amn
相关产品推荐
相关产品推荐

