是否可以从活动目录成员返回单个值并插入到 SQL 表中



我正在尝试从 MemberOf 列中获取单个值,是否可以解析该值并仅返回该字符串的一部分,例如值 0012? 这是类别成员的输出。

CN=Active VMS Users,OU=VMS,DC=evilcorp,DC=net CN=JOJOE, MOE- 0012,
OU=Site Groups,OU=VMS,DC=evilcorp,DC=net

这是我下面的代码

$ADARRAY= Get-ADGroupMember -Identity "Domain Users" -Recursive | 
Get-ADUser -Filter "Mail -like '*'" -and "MemberOf -like '*'"| 
Get-ADUser -Properties ('Mail','MemberOf')
<# this was my first try #>
# $CN = $CN -split '^CN=(.+?-,),(?:OU|CN)=.+','$1'
ForEach($OBJECT in $ADARRAY){ 
$NAME = $OBJECT.Name 
$USER = $OBJECT.SamAccountName
$EMAIL = $OBJECT.Mail
<# this was my second try #>
ForEach($OBJECT in $ADARRAY.Memberof){
$CN = New-Object PSCustomObject -Property @{'CN' = $CN}
$CN.OBJECT = $CN.Split(',')[0]
$INSERT = "INSERT INTO $TABLE VALUES ('$USER','$CN','$EMAIL', '$NAME');"
$SQL.CommandText = $INSERT 
$SQL.ExecuteNonQuery()
} 
}
}
$SQLCON.Close()

是的,您可以使用正则表达式来执行此操作。 只需搜索您想要的数据,拆分和/或提取您想要的数据。

Windows PowerShell:使用正则表达式提取字符串

$input_path = ‘c:psemails.txt’ $output_file =
‘c:psextracted_addresses.txt’ $regex =
‘b[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,4}b’ select-string
-Path $input_path -Pattern $regex -AllMatches | % { $_.Matches } | % { $_.Value } > $output_file

"techtalk.gfi.com/windows-powershell-extracting-strings-using-regular-expressions">

PowerShell - 使用 RegEx 从字符串中获取子字符串

PowerShell的方式

("OU=MTL1,OU=CORP,DC=FX,DC=LAB" -split ",")[0].substring(3)

使用正则表达式

("OU=MTL1,OU=CORP,DC=FX,DC=LAB" -split ',*..=')[1]

"lazywinadmin.com/2013/10/powershell-get-substring-out-of-string.html">

在此处查看完整的PoSH RegEx文章:

"community.idera.com/powershell/powertips/b/ebookv2"第13章。发短信 和正则表达式 "community.idera.com/powershell/powertips/b/ebookv2/posts/chapter-13-text-and-regular-expressions">

最新更新