我有一个控制台命令,我需要使用SID而不是用户名运行。目前我怀疑该命令失败,因为系统区域设置不是英语。
cmd.exe / q / c" for / L%i in(000,1,8010)do netsh http add urlacl url = http://+:%i/ user = Everyone"
提前致谢
答案 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
的语言无关名称。