使用Dsget用户-sid的Windows批处理脚本

时间:2017-04-16 15:05:39

标签: windows batch-file

我创建了这个简单的命令:

dsget user -sid%UserName%

它产生了这个输出:

sid
S-1-5-21-438975769-448141152-163212925-1186
dsget succeeded

我只想要中间线。需要做些什么才能揭示出来?

2 个答案:

答案 0 :(得分:3)

dsget user -sid %UserName% | find "S-"  

因为只有SID以" S - "。

开头

答案 1 :(得分:1)

您可以使用以下内容:

@echo off
for /f "eol=d skip=1" %%a in (
    'dsget user -sid %username%'
) do echo(%%a

在非服务器操作系统中,有两种选择:

内置WMIC命令。 (这允许您根据需要替换%username%,而非当前用户

@echo off
for /f "skip=1" %%a in (
    '"wmic useraccount where name='%username%' get sid"'
) do for %%b in (%%a) do echo(%%b

或者仅针对当前登录用户的内置WhoAmI,您可以尝试:

@echo off
for /f tokens^=3^ delims^=^" %%a in (
    'whoami /user /FO CSV /NH') do echo(%%a