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 属性方法都不多,比较简单,没有可以把玩的,后一个值得看看,有没有特殊的可以使用到的方法,如果有,可以补在后边。