Powershell 是否可以从Active Directory的MemberOf返回单个值并插入到SQL表中
我试图从MemberOf列中获取一个值,是否可以解析该值并仅返回该字符串的一部分,例如值0012? 这是类别成员的输出Powershell 是否可以从Active Directory的MemberOf返回单个值并插入到SQL表中,powershell,active-directory,Powershell,Active Directory,我试图从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-A
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()
$ADARRAY=Get-ADGroupMember-Identity“域用户”-递归
获取ADUser-过滤器“类邮件'*'”和“类成员'*'”
获取ADUser-Properties('Mail','MemberOf')
#$CN=$CN-拆分“^CN=(.+?-,\),(?:OU | CN)=.+”,“$1”
ForEach($ADARRAY中的对象){
$NAME=$OBJECT.NAME
$USER=$OBJECT.SamAccountName
$EMAIL=$OBJECT.Mail
ForEach($ADARRAY.Memberof中的对象){
$CN=新对象PSCustomObject-属性@{'CN'=$CN}
$CN.OBJECT=$CN.Split(',')[0]
$INSERT=“插入到$TABLE值(“$USER”、“$CN”、“$EMAIL”、“$NAME”);”
$SQL.CommandText=$INSERT
$SQL.ExecuteNonQuery()
}
}
}
$SQLCON.Close()
是的,您可以使用正则表达式来执行此操作。
只需搜索你想要的数据,分割和/或提取你想要的
Windows PowerShell:使用正则表达式提取字符串
'techtalk.gfi.com/windows powershell使用正则表达式提取字符串'
PowerShell-使用正则表达式从字符串中获取子字符串
地狱之路
使用正则表达式
'lazywinadmin.com/2013/10/powershell从string.html中获取子字符串'
在这里可以看到一个完整的高级正则表达式:
“community.idera.com/powershell/powertips/b/ebookv2”第13章。正文
和正则表达式
'community.idera.com/powershell/powertips/b/ebookv2/posts/chapter-13-text-and-regular-expressions'
$input_path = ‘c:\ps\emails.txt’ $output_file =
‘c:\ps\extracted_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
("OU=MTL1,OU=CORP,DC=FX,DC=LAB" -split ",")[0].substring(3)
("OU=MTL1,OU=CORP,DC=FX,DC=LAB" -split ',*..=')[1]