Poprawianie DisplayName#

Po przejrzeniu kilku rekordów userów okazało się, że niektórzy mają w Display Name poustawiane pomiędzy imieniem i nazwiskiem 2 spacje zamiast 1. Aby to skorygować, powstał ten skrypt:

$data=get-date -format g
$comment="[changedDN "+$data+"by PeKi]"
$logname = "changedDN";
$logname += get-date -format "yyyyMMdd_hhmmss";
$logname +=".log";
$l=0
$Root = New-Object DirectoryServices.DirectoryEntry $strROOT
Searcher = New-Object DirectoryServices.DirectorySearcher
$Searcher.SearchRoot = $root
$searcher.Filter = "(&(objectClass=person)(objectcategory=person)(displayName=* *))";
$users = $searcher.findAll();
$log=@();
foreach ($user in $users)
{
    $de = New-Object DirectoryServices.DirectoryEntry $user.Path;
    $log+=$de.SAMAccountName + " " + $de.displayName
    $de.displayName=([String]$de.displayName).Replace(" "," ")
    $l++
}

echo "Przetworzonych " $l | out-file $logname -Append
$log| out-file $logname -Append

echo "Przetworzonych " $l
$log

A ten skrypt poprawia błąd, w którym nazwisko jest powtórzone 2 razy:

$data=get-date -format g
$comment="[changedDN "+$data+"by PeKi]"
$logname = "changedDNGN";
$logname += get-date -format "yyyyMMdd_hhmmss";
$logname +=".log";

$Root = New-Object DirectoryServices.DirectoryEntry $strROOT
Searcher = New-Object DirectoryServices.DirectorySearcher
$Searcher.SearchRoot = $root
$searcher.Filter = "(&(objectClass=person)(objectcategory=person)(displayname=* * *)(givenName=* *)(sn=*))";
$users = $searcher.findAll();
$log=@();
$l=0
foreach ($user in $users)
{
    $de = New-Object DirectoryServices.DirectoryEntry $user.Path;
    $gns=([String]$de.givenName).Split(' ')[1].tolower()
    $sn=([String]$de.sn).tolower()
    if ($gns.CompareTo($sn) -eq 0)
    {
    $newGN=([String]$de.givenName).Split(' ')[0];
    $newDN=$newGN+" "+([String]$de.sn)
    $log+=$de.SAMAccountName+ $de.givenName + $de.displayName + $newGN +$newDN
    write-host $l
    $de.givenName=$newGN
    $de.displayName=$newDN
    $l++
    }    
}

echo "Przetworzonych " $l | out-file $logname -Append
$log| out-file $logname -Append

echo "Przetworzonych " $l
$log

Thursday, October 26, 2006 1:30:43 PM (Central European Standard Time, UTC+01:00) #    Comments [0]  |  Trackback

 

Name
E-mail
Home page

Comment (HTML not allowed)  

Enter the code shown (prevents robots):

Live Comment Preview
All content © 2010, Krzysztof Pietrzak
On this page
This site
Calendar
<July 2010>
SunMonTueWedThuFriSat
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567
Archives
Sitemap
Blogroll OPML
  Tokyo by night
blog WiTa
  W-Files
blog n€x¤Ra
 .:fotoblog:.
blog Kfaza
 \\archon\blog$
blog archona
 Czasowstrzymywacz
Blog Fookyego
 Jog Pstryka
Jog Pstryka
 Mac OS X vs. Active Directory
techniczny blog kfaza

Maps
Locations of visitors to this page