可以查询系统用户名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日

相关文章

  • java面向对象继承与多态介绍

    Java面向对象继承与多态介绍 继承的定义及作用 继承是指一个类继承(获取)另一个类的属性和方法,被继承的类称为父类(也称为基类、超类),继承的类称为子类(派生类)。继承可以使代码复用和扩展程序。子类可以使用父类的方法和属性,同时还可以根据需求重写父类的方法或者添加新的方法和属性。 示例代码: public class Animal { private St…

    other 2023年6月26日
    00
  • qq收到的文件在哪里

    当QQ接收到文件后,默认情况下文件会被保存在电脑中的一个默认路径下。用户可以根据需要更改这个默认路径。以下是详细的攻略: 如何查找QQ接收到的文件路径 首先,在QQ客户端中点击“设置”按钮。 在关于QQ的页面中,找到“文件管理”这一栏。 在“文件管理”页面中,找到“文件接收路径”这一栏,并点击其中的“打开文件夹”按钮。 这时,电脑中默认的QQ接收文件夹就会打…

    其他 2023年4月16日
    00
  • 企业信息防泄漏产品、如何加强网络信息安全、网络信息安全解决方案

    企业信息防泄漏产品攻略 企业信息防泄漏产品可以帮助企业有效地保护企业内部的信息安全,避免敏感信息被泄露的风险,因此在企业中使用这些产品具有非常重要的意义。 选择合适的防泄漏产品 在选择企业信息防泄漏产品时,需要考虑以下几个方面: 功能:产品要能够满足企业的需求,例如可以监测、阻止既定规则外的信息传输,对设备进行远程管理等。 支持的操作系统:产品要支持企业所有…

    other 2023年6月26日
    00
  • 详解SpringBoot读取Yml配置文件的3种方法

    下面我将为您详细讲解“详解SpringBoot读取Yml配置文件的3种方法”的完整攻略。 一、前言 在 Spring Boot 中我们经常会使用 application.yml 或 application.properties 进行配置,这是一种非常方便的方式。在本文中,我们将详细讲解如何在 Spring Boot 中读取 Yml 配置文件,并且提供三种不同…

    other 2023年6月25日
    00
  • mysql 列转行,合并字段的方法(必看)

    MySQL 列转行、合并字段的方法 在 MySQL 中,我们有时需要对数据进行列转行,或者把多个字段的数据合并在一起成为一个字段。本文将介绍两种实现方式。 实现方式一:UNION ALL 使用 UNION ALL 可以将多个 SELECT 语句的结果合并在一起。 先来看一个简单的例子,将一个表的三个字段合并成一个字段: SELECT CONCAT(col1,…

    other 2023年6月25日
    00
  • RedisTemplate常用操作方法总结(set、hash、list、string等)

    RedisTemplate常用操作方法总结 1. RedisTemplate介绍 RedisTemplate是spring-data-redis对jedis客户端的二次封装,提供了一系列的API,可以方便地操作 Redis 数据库。RedisTemplate 的基本用法是先获取 RedisTemplate 对象,然后调用其方法进行具体操作。 2. Redis…

    other 2023年6月27日
    00
  • js变量作用域及可访问性的探讨

    JS变量作用域及可访问性的探讨 在JavaScript中,变量的作用域和可访问性是非常重要的概念。了解这些概念可以帮助我们编写更具可维护性和可扩展性的代码。本攻略将详细讲解JavaScript中的变量作用域和可访问性,并提供两个示例来说明这些概念。 1. 变量作用域 变量作用域指的是变量在代码中的可见范围。在JavaScript中,有三种变量作用域:全局作用…

    other 2023年7月29日
    00
  • C++超详细分析单链表的实现与常见接口

    C++超详细分析单链表的实现与常见接口 什么是单链表? 单链表,英文名为“Singly Linked List”,简称链表,是一种常用的数据结构,它是由若干个节点组成的,每个节点都包含了一个数据域和一个指向下一个节点的指针域。单链表的特点是以节点为单位,可以进行快速的插入和删除操作,但是随机访问就比较慢。 单链表的实现 定义节点类 在C++中,单链表可以通过…

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