可以查询系统用户名sid的vbs

首先,系统用户名对应着Windows系统中的Security Identifier(SID),每个用户都有唯一的SID标识符。查询系统用户名的方法可以使用VBScript语言编写,以下是具体的攻略步骤。

步骤一:编写vbs代码,定位用户的SID值。

在vbs代码区块中编写以下代码,通过WScript实现获取当前用户的用户名。

Set objWshNetwork = WScript.CreateObject("WScript.Network") 
strUserName = objWshNetwork.UserName 
WScript.Echo strUserName

通过objWshNetwork获取当前用户的用户名,存入变量strUserName中,最后输出结果。

接下来使用以下代码段,通过Windows API函数ConvertStringSidToSid() 将用户名转换为相应的SID。

Set objWMI = GetObject("winmgmts:\\.\root\cimv2")  
Set objSID = objWMI.Get("Win32_UserAccount.Domain='" & strComputer & "',Name='" & strUserName & "'")  
strSID = objSID.SID  

Dim arrByte, i  
ReDim arrByte(UBound(strSID))  
For i = 0 To UBound(strSID)  
   arrByte(i) = AscB(Mid(strSID, i + 1, 1))  
Next  
strBinarySID = Join(arrByte, ",")  
Set objSID = Nothing  
WScript.Echo  strBinarySID

以上代码段首先通过objWMI对象获取 Win32_UserAccount类中指定对应用户名的对象,并存入objSID对象中;然后再通过一系列操作将strSID (一个二进制格式的Security Identifier)转换成为一个十进制数字形式的字符串.

最终输出的结果为当前用户的SID值。

步骤二:执行vbs。

将以上代码段保存为SID.vbs文件,注意将变量 strComputer 替换成你的计算机名,然后在文件所在路径打开命令行窗口,输入以下命令并执行:

cscript SID.vbs

将会看到如下类似的查询结果:

李三(T10201) 的 SID: S-1-5-21-3623811015-3361044348-30300820-1001

示例一:

如果现有一组电脑名和用户名,可以将以上代码段封装为函数,然后传入函数参数进行查询。

Function GetSID(ComputerName, UserName)  
   Set objWMI = GetObject("winmgmts:\\" & ComputerName & "\root\cimv2")  
   Set colAccounts = objWMI.ExecQuery ("Select SID from Win32_UserAccount where Name='" & UserName & "'")  
   For Each objAccount in colAccounts  
      strSID = objAccount.SID  
   Next  
   Set objWMI = Nothing  
   GetSID = strSID  
End Function  

以上代码中,GetSID函数接受两个参数,ComputerName和UserName。使用Win32_UserAccount类查询 Win32_UserAccount.Domain 对应电脑名(ComputerName);Name 对应用户名(UserName)即可查询到指定用户的SID值。

示例二:

如果需要查询一个域用户的SID值,可以根据以下代码段执行。

Set objWMI = GetObject("winmgmts:\\.\root\cimv2")  
Set objSID = objWMI.Get("Win32_SID.SID='S-1-5-21-3623811015-3361044348-30300820-1104'")  
strDomain = objSID.ReferencedDomainName  
strUserName = objSID.AccountName  
WScript.Echo strUserName & "'s domain is " & strDomain

以上代码中,查找Win32_SID 类中SID属性为指定值(‘S-1-5-21-3623811015-3361044348-30300820-1104’)的用户,获取相应对象中的 ReferencedDomainName和AccountName 属性的值。最终输出的结果为该用户所在的域名以及用户的账号名。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:可以查询系统用户名sid的vbs - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • 锐龙5 3600和酷睿i5-9600KF怎么选 锐龙5 3600和酷睿i5-9600KF对比介绍

    当选择锐龙5 3600和酷睿i5-9600KF之间的处理器时,可以考虑以下几个方面进行对比和评估: 性能对比 首先,我们可以比较它们的性能指标,包括核心数量、线程数量和主频。锐龙5 3600拥有6个核心、12个线程和3.6GHz的基础主频,而酷睿i5-9600KF则有6个核心、6个线程和3.7GHz的基础主频。从核心和线程数量上看,锐龙5 3600具有更多的…

    other 2023年10月17日
    00
  • mybatis-plus 返回部分字段的解决方式

    Mybatis-Plus是Mybatis的增强工具,具有简化Mybatis使用的优点。本文将讲解如何在Mybatis-Plus中返回部分字段的解决方式。 方法一:使用wrapper Mybatis-Plus提供了Wrapper对象,可以通过select方法指定需要查询的字段。 例如,我们有一个User实体类,表示用户信息。假如我们只需要查询用户名和邮箱,可以…

    other 2023年6月25日
    00
  • TPLink路由器隐藏wifi用户名的方法

    关于“TPLink路由器隐藏wifi用户名的方法”的完整攻略,我来详细讲解一下。 步骤一:打开TPLink路由器的管理页面 首先,我们需要打开TPLink路由器的管理界面。一般情况下,我们可以在浏览器的地址栏里输入“192.168.1.1”(也可能是“192.168.0.1”)来进入。登录时需要输入用户名和密码。如果你从未更改过路由器的管理密码,那么可以尝试…

    other 2023年6月27日
    00
  • Vuejs第七篇之Vuejs过渡动画案例全面解析

    Vuejs第七篇之Vuejs过渡动画案例全面解析 1. 介绍 本篇攻略将详细讲解Vue.js过渡动画的使用方法和应用案例,帮助读者了解如何在Vue.js应用中添加各种过渡效果。过渡动画在Web开发中非常常见,可以为应用增加视觉上的吸引力和交互性。 2. 过渡的类型 Vue.js提供了多种过渡的类型,包括CSS过渡、CSS动画和JavaScript钩子函数。下…

    other 2023年6月28日
    00
  • JavaScript本地存储实现用户名存储案例

    要实现JavaScript本地存储,可以使用浏览器提供的localStorage对象。该对象可以存储键值对,在页面刷新甚至关闭浏览器后依然可以保留数据。 下面是实现一个用户名存储的案例,步骤如下: 步骤一:检查浏览器是否支持localStorage对象 首先检查浏览器是否支持localStorage对象。可以使用以下代码: if (typeof(Storag…

    other 2023年6月27日
    00
  • 如何将Linux命令设置成键盘快捷键?

    如何将Linux命令设置成键盘快捷键 在Linux系统中,你可以通过设置键盘快捷键来执行常用的命令,提高工作效率。下面是设置Linux命令为键盘快捷键的完整攻略。 步骤一:创建自定义脚本 首先,你需要创建一个自定义的脚本文件,用于执行你想要设置为快捷键的Linux命令。你可以使用任何文本编辑器创建一个新的文件,比如custom_script.sh。 示例脚本…

    other 2023年8月18日
    00
  • Flutter学习LogUtil封装与实现实例详解

    Flutter学习LogUtil封装与实现实例详解 介绍 在Flutter开发的过程中,Log输出是非常重要的调试工具,而LogUtil则是一个更加便捷的输出日志的工具类。本篇文章将详细介绍如何在Flutter中封装并实现一个LogUtil工具类,帮助开发者进行快速的日志输出,提高开发效率。 步骤 第一步:新建LogUtil类 在Flutter项目中,新建一…

    other 2023年6月25日
    00
  • 浅谈Android中Service的注册方式及使用

    让我为您详细讲解“浅谈Android中Service的注册方式及使用”的完整攻略。 介绍 在Android中,Service是一种组件,用于在后台执行长时间操作而不需要用户交互。Service可以在单独的进程中运行,这使得它可以在不同的应用程序之间共享。在本文中,我们将讨论Service的注册方式及使用,包括两种Service的注册方式、调用Service的…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部