我的任务是在网络中为本地计算机创建一个侦听器。这台计算机是从一个网络应用程序中发布的,并打印了一些东西。到目前为止,我所做的是在一个特定的端口中创建一个httpListener,当收到这个帖子时,我会把东西发送到打印机。这很好,但只有当用户拥有管理权限时才行,因为"netsh http...“需要执行管理权限。有没有办法绕过这个限制,因为计算机是一个简单的pc,它不能拥有管理权限?该应用程序是用VB.NET编写的,将在WindowsServer网络中的windows10 PC上运行。
发布于 2018-01-09 05:22:53
netsh http add urlacl url="http://127.0.0.1:1234/" user=DOMAIN\USER据我所读,反斜杠很重要(尾随端口号)。您还可以将127.0.0.1替换为+或* (通配符)。奇怪的是,我让本地主机监听两个不同的端口,一旦我添加了一个端口,两个端口都可以监听。还可以为user参数指定一个组。(在大多数例子中,它们演示了user=Everyone,如果您能帮忙的话,我肯定不会建议它。(将其锁定到单个帐户,就像服务帐户一样。)
在我的例子中,我使用的是Grapevine。它封装了HttpListener,但是给您一个例子并不是太相关。(我强烈建议您检查它,特别是当您正在创建一个API时。它已经更新多年了,开发人员仍然响应反馈,这将为您节省大量的工作。)只需注意在HttpListener命令中镜像用于netsh的前缀字符串即可。(通过通配符收听绝对不同于localhost,反之亦然。)
https://github.com/sukona/Grapevine
https://msdn.microsoft.com/en-us/library/windows/desktop/cc307223(v=vs.85).aspx
我会查看MSDN链接中的其他参数。似乎您可以进一步锁定ACL命令。
(我也不知道你为什么投了反对票。你的问题很好,我发现它是最好的结果之一,因为我有同样的问题。)
https://stackoverflow.com/questions/47711660
复制相似问题