如何从组的成员属性中提取安全标识符?
How to extract security identifier from member attribute of a group?
假设我们有一个 AD 组,其中一些成员是外国安全主体。在这种情况下,成员属性中值的格式如下:
CN=S-1-5-21-XXXX-XXXXXXXX-XXXXXXXXX-XXXX,CN=ForeignSecurityPrincipals,DC=dmc,DC=001,DC=net
我们有一个使用 SID (S-1-5-21-XXXX-XXXXXXXX-XXXXXXXXX-XXXX) 跟踪成员的翻译命令;
([System.Security.Principal.SecurityIdentifier] $SID).Translate([System.Security.Principal.NTAccount]).value
powershell 中有没有办法从成员属性中提取 SID?
您可以使用正则表达式。这样的事情应该有效:
$targetString = 'CN=S-1-5-21-2440625168-151597401-477403795-1001,CN=ForeignSecurityPrincipals,DC=dmc,DC=001,DC=net'
$regEx = '(?<SID>S-\d-\d+-(\d+-){1,14}\d+)'
if($targetString -match $regEx) {
([System.Security.Principal.SecurityIdentifier] $Matches.SID).Translate([System.Security.Principal.NTAccount]).value
}
最简单的方法是使用 SubString 函数:
$CN = 'CN=S-1-5-21-2440625168-151597401-477403795-1001,CN=ForeignSecurityPrincipals,DC=dmc,DC=001,DC=net'
$SID = $CN.SubString(3, 45)
([System.Security.Principal.SecurityIdentifier] $SID).Translate([System.Security.Principal.NTAccount]).value
假设我们有一个 AD 组,其中一些成员是外国安全主体。在这种情况下,成员属性中值的格式如下:
CN=S-1-5-21-XXXX-XXXXXXXX-XXXXXXXXX-XXXX,CN=ForeignSecurityPrincipals,DC=dmc,DC=001,DC=net
我们有一个使用 SID (S-1-5-21-XXXX-XXXXXXXX-XXXXXXXXX-XXXX) 跟踪成员的翻译命令;
([System.Security.Principal.SecurityIdentifier] $SID).Translate([System.Security.Principal.NTAccount]).value
powershell 中有没有办法从成员属性中提取 SID?
您可以使用正则表达式。这样的事情应该有效:
$targetString = 'CN=S-1-5-21-2440625168-151597401-477403795-1001,CN=ForeignSecurityPrincipals,DC=dmc,DC=001,DC=net'
$regEx = '(?<SID>S-\d-\d+-(\d+-){1,14}\d+)'
if($targetString -match $regEx) {
([System.Security.Principal.SecurityIdentifier] $Matches.SID).Translate([System.Security.Principal.NTAccount]).value
}
最简单的方法是使用 SubString 函数:
$CN = 'CN=S-1-5-21-2440625168-151597401-477403795-1001,CN=ForeignSecurityPrincipals,DC=dmc,DC=001,DC=net'
$SID = $CN.SubString(3, 45)
([System.Security.Principal.SecurityIdentifier] $SID).Translate([System.Security.Principal.NTAccount]).value