无法保存旧的netsh http urlacl预留。

4

我正在对服务器进行设置实验,并且它从netsh http show urlacl中提供了这些信息:

Reserved URL            : http://+:47001/wsman/
    User: NT SERVICE\WinRM
        Listen: Yes
        Delegate: No
    User: NT SERVICE\Wecsvc
        Listen: Yes
        Delegate: No
        SDDL: D:(A;;GX;;;(redacted)((A;;GX;;;(redacted))

显然,两个用户帐户注册了同一个URL,对吧?但是自从删除了该预订(我用NT AUTHORITY\NETWORK SERVICE替换了它,这是某个地方推荐的,但现在不再需要,因为我修复了真正的原因)后,我就无法将其恢复到这些设置,因为netsh似乎只允许您为每个预订创建一个用户。
是否有一些特殊的语法?还有其他设置方法吗?我读到过“将其作为组执行”,但这看起来不像最初是一个组,而且每个其他服务器都是这样设置的...所以肯定有办法。我错过了什么?
谢谢
3个回答

4

抱歉,我已经想出解决方法了。

解决方案是:您可以使用SDDL指定多个组(我不知道什么是SDDL,但它是一些权限设置加上SID的简写)。

因此,我执行了netsh http add urlacl url=http://+:47001/wsman/ sddl="D:(A;;GX;;;[redacted])(A;;GX;;;[redacted])"

最终将设置恢复到以前的状态。值得注意的是,您必须完全准确地使用以上语法才能接受它。如果需要,还有一些PowerShell命令可以将用户帐户(例如上面的命令)转换为SID。


在至少 Windows 10 上,SID 相当简单。BU=BUILTIN\Users,BA=BUILTIN\Administrators,LS=NT AUTHORITY\LocalSservice 等。 - Stephen Chung

3

为了帮助其他人,我想补充一下上面的netsh命令,你只需要用要添加的用户的SID替换[redacted]。因此,对于一个用户:

netsh http add urlacl url=http://+:47001/wsman/ sddl="D:(A;;GX;;;<SID>)"

and for two users...

netsh http add urlacl url=http://+:47001/wsman/ sddl="D:(A;;GX;;;<SID1>)(A;;GX;;;<SID2>)" 

这些命令将授予指定SID的用户帐户通用执行访问权限。

1

要使用命令添加/删除URL,首先以管理员身份运行cmd

添加URL:netsh http add urlacl url=http://192.168.1.143:9608/ user=everyone 将190.168.1.143替换为您的本地IP地址,并将9608替换为您的本地端口。

删除已存在的URL:netsh http delete urlacl url=http://192.168.1.1.143:9608

最后一步是配置Windows防火墙允许端口的外部流量:netsh advfirewall firewall add rule name="IISExpressXamarin" dir=in protocol=tcp localport=9608 profile=private remoteip=localsubnet action=allow


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接