windows 服务 只能给 有管理员权限的程序 调用吗?_(语言-java)

该问题来自社区帖: https://bbs.csdn.net/topics/616663177.为符合问答规范, 该问题经过ChatGPT优化

我有一个 Windows 服务 ChangeNetwork

 

 

 

 

 

 

 

 

但我用一个本机客户端程序去调用 这个【服务】 时,一直在报 【System.UnauthorizedAccessException:“对路径的访问被拒绝。”】这个错。

需要怎么设置才能让 这个【服务】支持 【非管理员权限】的程序可以访问到?

这个是我【客户端】调用【服务】的程序

public void ChangeNetwork(string ipAddress, string subnetMask, string defaultGateway, string dns)
        {
            try
            {
                using (var pipeClient = new NamedPipeClientStream(".", "ChangeNetworkPipe", PipeDirection.InOut))
                {
                    pipeClient.Connect(); // 连接到管道服务器

                    string request = $"{ipAddress},{subnetMask},{defaultGateway},{dns}";
                    byte[] requestBytes = System.Text.Encoding.UTF8.GetBytes(request);

                    pipeClient.Write(requestBytes, 0, requestBytes.Length); // 发送请求

                    // 读取响应
                    byte[] responseBytes = new byte[1024];
                    int bytesRead = pipeClient.Read(responseBytes, 0, responseBytes.Length);
                    string response = System.Text.Encoding.UTF8.GetString(responseBytes, 0, bytesRead);

                    Console.WriteLine("Response: " + response);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }
        }

确实只能给有管理员权限的程序调用

开一个管理员的进程,然后你通过这个进程来调用,这样调用者就不用管理员了。

问题点:访问受限,需要管理员权限
解决方案如下

http://www.360doc.com/content/22/0326/17/13237883_1023437396.shtml