Efsey
11-01-2013, 23:24
Доброго времени суток.
Необходимо заменить часть описания группы между 3й и 4й #, само описание выглядит так : qwe#qwe#2#114-3#qwe
Содержимое файла csv - 123-123;422-423 (соответственно старое и новое значение)
Вроде должно работать, но...
$file='C:\1\1.csv'
$temp='C:\1\temp.csv'
$put='OU=testgroups,OU=tets,DC=skiffin,DC=home'
Get-content $file|out-file $temp -Encoding unicode
$header='old','new'
$csv=import-csv $temp -header $header -delimiter ";"
Get-ADGroup -filter {*} -SearchBase $put -Properties description |foreach{
$rt=[regex]::Matches($_.description,'(?=\#).(\d\d\d)(.*)(?=\#)') #регулярное выражение читает ничиная с 3-й решётки
$rt=[string]$rt
$oldSTR=$rt.substring(1)
$csv|foreach{
if($oldSTR=$_.old){
$top=$_.new
}
else{
$top=$oldstr
}}
$newdsc=$_.description.replace('#'+$oldstr+'#','#'+$top+'#')
$vse=$oldstr+' '+$top;
$vse #проверка замены
Set-Adgroup $_ -replace @{description=$newdsc}
}
Необходимо заменить часть описания группы между 3й и 4й #, само описание выглядит так : qwe#qwe#2#114-3#qwe
Содержимое файла csv - 123-123;422-423 (соответственно старое и новое значение)
Вроде должно работать, но...
$file='C:\1\1.csv'
$temp='C:\1\temp.csv'
$put='OU=testgroups,OU=tets,DC=skiffin,DC=home'
Get-content $file|out-file $temp -Encoding unicode
$header='old','new'
$csv=import-csv $temp -header $header -delimiter ";"
Get-ADGroup -filter {*} -SearchBase $put -Properties description |foreach{
$rt=[regex]::Matches($_.description,'(?=\#).(\d\d\d)(.*)(?=\#)') #регулярное выражение читает ничиная с 3-й решётки
$rt=[string]$rt
$oldSTR=$rt.substring(1)
$csv|foreach{
if($oldSTR=$_.old){
$top=$_.new
}
else{
$top=$oldstr
}}
$newdsc=$_.description.replace('#'+$oldstr+'#','#'+$top+'#')
$vse=$oldstr+' '+$top;
$vse #проверка замены
Set-Adgroup $_ -replace @{description=$newdsc}
}