powershell SID

阅读后的理解

  

powershell : working with SIDs
    
     1、 Determining the SID for a Local User Account     确定一个账号的SID

          class System.Security.Principal.NTAccount("kenmyer") ---> used to represent a user or group accuont  
               
                   System.Security.Principal.SecurityIdentifier ---> represents user and group SIDs
 
$objUser = New-Object System.Security.Principal.NTAccount("kenmyer")
$strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier])
$strSID.Value

  创建第一个类,用第一个类的方法创建第二个类 Translate()   ---> 问题:更改过名称后使用方法错误

       调用第二个类的 value 属性
         

     2、Determining the SID for an Active Directory Account  确定一个域帐户的SID
          唯一不同:创建第一个类的方法多一个参数 New-Object System.Security.Principal.NTAccount("fabrikam", "kenmyer")
$objUser = New-Object System.Security.Principal.NTAccount("fabrikam", "kenmyer")
$strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier])
$strSID.Value

    3、Determining Which Account a SID Belons to

   和前边的方法一致,只是方法反过来,用第二个类的Translate() 方法生成第一个类 然后调用第一个类的 value 属性
$objSID = New-Object System.Security.Principal.SecurityIdentifier `
    ("S-1-5-21-1454471165-1004335555-1606985555-5555")
$objUser = $objSID.Translate( [System.Security.Principal.NTAccount])
$objUser.Value
  问题:在测试中,一个机子的帐号被改过名字,在第一小节中,用改过后的账户名建立的 NTAccount 类 调用方法创建 SID 类失败,用改前的也不行,暂时不知道是什么原因
 
  这个有用的点在于,查看系统事件时,好多都是给的SID,我们可以通过第三个步骤来获取到对应的帐号名称,也可以写一个脚本,通过传参数来完成不过也许没有特别大的意义。
 
  本小节使用的两个类 NTAccount 属性方法都不多,比较简单,没有可以把玩的,后一个值得看看,有没有特殊的可以使用到的方法,如果有,可以补在后边。
 
 
 
原文地址:https://www.cnblogs.com/nervertoolate/p/7905585.html