【问题标题】:use SID instead of user name in console command在控制台命令中使用 SID 而不是用户名
【发布时间】:2016-01-29 14:56:47
【问题描述】:

我有一个控制台命令,我需要使用 SID 而不是用户名来运行它。目前我怀疑该命令失败,因为系统语言环境不是英语。

cmd.exe /q /c "for /L %i in (000,1,8010) do netsh http add urlacl url=http://+:%i/user=Everyone"

提前致谢

【问题讨论】:

    标签: windows command sid


    【解决方案1】:

    据我所知,对于您在示例中提供的此类命令,您必须使用字符串 username。

    我不确定你的情况,但我发现自己处于类似情况,我需要作为普通用户在较低端口下运行 IIS,并且我使用了一些类似的命令。只要您的系统是英文的,Everyone 用户名肯定可以工作。

    我搜索了互联网,在 Windows 上根据 SID 获取用户名太复杂了。 Everyone 用户有一个well known SID,即S-1-1-0

    用一些程序,比如PsTools,你可以运行类似的命令比如

    SidToName.exe S-1-1-0

    检索用户的 SID。就我而言,它输出

    [WellKnownGroup]: \Todos

    因为我的系统目前是葡萄牙语,其中Todos 表示Everyone;因此我只需要得到Todos 部分。但是我发现用 DOS 批处理文件操作字符串太麻烦了。

    原来我通过运行带有%USERNAME windows 变量的命令简化了我的情况,因为我只需要允许我自己的用户在较低端口上运行 IIS。如果这是你的情况,它会成功的。 我的命令看起来像

    netsh http add urlacl url=http://mylocalsite.app:80/ user=%USERNAME%

    如果%USERNAME% 不够用,您将不得不进行一些字符串操作,以获取Everyone 的与语言无关的名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-08
      • 2021-08-25
      • 1970-01-01
      • 2016-12-13
      • 1970-01-01
      • 1970-01-01
      • 2016-08-29
      相关资源
      最近更新 更多