在console命令中使用SID而不是用户名

时间:2016-01-29 14:56:48

标签: windows command sid

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

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

提前致谢

1 个答案:

答案 0 :(得分:0)

只要我知道,对于您在示例中出现的此类命令,您必须使用字符串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的语言无关名称。