我正在尝试将 uralacl 提供给运行此命令的用户 ad\user:
netsh http add urlacl url=http://+:443/ user=ad\user
Run Code Online (Sandbox Code Playgroud)
但收到此错误:Url 保留添加失败,错误:183 当该文件已存在时无法创建文件。
然后我运行这个命令,看看它是否已经被使用:
netsh http show url
Run Code Online (Sandbox Code Playgroud)
我看到它已经被保留了,可能是由 IIS 保留的:
保留 URL:https://+:443/sra_ {BA195980-CD49-458b-9E23-C84EE0A DCD75}/ 用户:NT SERVICE\SstpSvc 监听:是 代表:是 用户:BUILTIN\Administrators 监听:否 代表:否 用户: NT AUTHORITY\SYSTEM 听:是 委托:是 SDDL:D:(A;;GA;;;S-1-5-80-3435701886-3791383489-3228296122 -2938884314);(A); (A;;GA;;;SY)
我不想将我的用户添加到管理员。
所以我的问题是:我可以以某种方式将我的用户添加到这个 urlacl 而不删除然后添加它吗?所以结果 urlacl 是相同的,但包括我的用户。
问题不在于重用端口...而是以相同的协议重用端口。Http.sys 不允许您在同一端口上侦听 https 和 http(我没有见过支持此功能的服务,也没有见过对此的需要,尽管我想您可以尝试使用 TCP 自己制作一个插座)。看来 MS 正试图在 urlacl 内强制实施这一限制。这是有道理的。如果两个应用程序尝试使用两种不同的协议打开连接,http.sys 应该使用哪种协议?
请注意,如果您将另一个 https URL 添加到端口 443,则不会出现问题(只要 URL 的路径与现有记录不同)。遗憾的是来自 netsh 的错误消息没有解释更多。