非管理员权限下NamedPipeClientStream无法连接的问题排查
问题分析与解决方案
核心问题
通过Launcher.exe启动Unity游戏进程后,非管理员权限的Deeplink.exe无法连接游戏创建的命名管道;直接启动游戏则连接正常,修改UseShellExecute=false后仍偶发权限拒绝问题。
问题根源
- 管道权限规则不匹配:服务端仅授予
Everyone组读取权限,但客户端使用PipeDirection.InOut双向管道,需要读写权限,导致非管理员进程连接时权限不足。 - 权限上下文继承问题:当
UseShellExecute=true时,Game.exe会继承Launcher的权限上下文(若Launcher以管理员运行,Game.exe会获得高完整性权限),非管理员的Deeplink.exe因权限级别差异被拒绝。 - 进程创建方式的不确定性:
UseShellExecute=false时,进程权限令牌继承存在偶发异常,导致部分场景下权限校验失败。
修复步骤
1. 修正管道安全规则,匹配双向管道需求
服务端创建管道时,需授予Everyone组读写权限,与客户端的双向访问需求一致:
var pipeSecurity = new PipeSecurity(); SecurityIdentifier everyone = new SecurityIdentifier(WellKnownSidType.WorldSid, null); // 授予读写权限,支持客户端双向管道操作 pipeSecurity.AddAccessRule(new PipeAccessRule(everyone, PipeAccessRights.ReadWrite, AccessControlType.Allow)); pipe = new NamedPipeServerStream(PIPE_NAME, PipeDirection.InOut, 1, PipeTransmissionMode.Message, PipeOptions.Asynchronous, 8192, 8192, pipeSecurity);
2. 统一进程权限上下文
- 若Launcher无需管理员权限,禁止以管理员身份运行Launcher,避免Game.exe继承高完整性权限,导致非管理员Deeplink无法连接。
- 若必须以管理员身份运行Launcher,需额外添加当前用户的完全访问权限,确保非管理员令牌能访问管道:
// 添加当前用户的完全控制权限,覆盖管理员进程创建管道的权限限制 SecurityIdentifier currentUser = WindowsIdentity.GetCurrent().User; pipeSecurity.AddAccessRule(new PipeAccessRule(currentUser, PipeAccessRights.FullControl, AccessControlType.Allow));
3. 稳定进程创建方式
保持UseShellExecute=false,让Game.exe直接继承Launcher的权限令牌,避免Shell启动带来的权限上下文波动:
Process process = new(); process.StartInfo.FileName = "/path/to/game.exe"; process.StartInfo.UseShellExecute = false; // 固定为false,确保权限继承稳定 process.StartInfo.CreateNoWindow = false; process.Start();
4. 补充完整性级别权限(可选)
若仍存在权限问题,可添加中完整性级别访问规则,允许非管理员进程访问高完整性进程创建的管道:
// 允许中完整性级别进程访问管道 var mediumIntegritySid = new SecurityIdentifier(WellKnownSidType.MediumMandatoryLabelSid, null); pipeSecurity.AddAccessRule(new PipeAccessRule(mediumIntegritySid, PipeAccessRights.ReadWrite, AccessControlType.Allow));
验证流程
- 确保Game.exe的管道安全规则已更新为
ReadWrite权限。 - 以非管理员身份启动Launcher,再启动Game.exe,运行非管理员的Deeplink.exe测试连接。
- 若需管理员启动Launcher,验证添加当前用户权限后的连接稳定性。
内容的提问来源于stack exchange,提问作者Marco Vincenzi
相关产品推荐
相关产品推荐

