Advertisement
Koffko

syncPN.ps1

Jul 7th, 2012
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Add-PSSnapin Quest.ActiveRoles.ADManagement
  2.  
  3. $csvPath = ".\usernumbers.csv"
  4. $content = Get-Content $csvPath
  5.  
  6. foreach ($str in $content)
  7. {
  8.     $strArr = $str -split ";"
  9.     $enFIO = $strArr[3]
  10.     $pn = $strArr[7]
  11.    
  12.     $enFIOArr = $enFIO -split " "
  13.     $enSN = $enFIOArr[0] + " " + $enFIOArr[1]
  14.    
  15.    
  16.     if (($adUser = Get-QADUser -IncludedProperties extensionAttribute15 $enSN) -ne $null)
  17.     { # Поиск по "имя-фамилия" удачен
  18.         if ($adUser.Count -eq $null)
  19.         { # Найден один эллемент
  20.             if ($pn -eq $adUser.extensionAttribute15)
  21.             {
  22.                 $msg = "У пользователя " + $adUser.Name + " табельный номер актуальный."
  23.                 echo $msg
  24.             }
  25.             else
  26.             {
  27.                 $msg = "Внимание! У пользователя " + $adUser.Name + " табельный номер неактуальный." + $adUser.extensionAttribute15 + ". (в таблице номер - " + $pn + ")."
  28.                 try
  29.                 {
  30.                     Set-QADUser $adUser -objectAttributes @{extensionAttribute15=$pn}
  31.                     $msg = $msg + " Исправлено."
  32.                 }
  33.                 catch
  34.                 {
  35.                     $msg = $msg + " Ошибка! Невозможно исправить!"
  36.                 }
  37.                 echo $msg
  38.             }
  39.         }
  40.         else
  41.         {
  42.             $errorMsg = "Найдено несколько пользователей ("
  43.             foreach ($usr in $adUser)
  44.             {
  45.                 $errorMsg = $errorMsg + $usr.Name + ";"
  46.             }
  47.             $errorMsg = $errorMsg + ")."
  48.             Write-Error $errorMsg
  49.             echo $errorMsg
  50.             continue
  51.         }
  52.     }
  53.     else
  54.     { # Поиск по "имя-фамилия" неудачен
  55.     $sam = $enFIOArr[1][0] + $enFIOArr[0]
  56.         if (($adUser = Get-QADUser -IncludedProperties extensionAttribute15 $sam) -ne $null)
  57.         { # Поиск по "фамилия" удачен
  58.             if ($adUser.Count -eq $null)
  59.             { # Найден один эллемент
  60.                 if ($pn -eq $adUser.extensionAttribute15)
  61.                 {
  62.                     $msg = "У пользователя " + $adUser.Name + " табельный номер актуальный."
  63.                     echo $msg
  64.                 }
  65.                 else
  66.                 {
  67.                 $msg = "Внимание! У пользователя " + $adUser.Name + " табельный номер неактуальный."
  68.                 try
  69.                     {
  70.                         Set-QADUser $adUser -objectAttributes @{extensionAttribute15=$pn}
  71.                         $msg = $msg + " Исправлено."
  72.                     }
  73.                     catch
  74.                     {
  75.                         $msg = $msg + " Ошибка! Невозможно исправить!"
  76.                     }
  77.                     echo $msg
  78.                 }
  79.             }
  80.             else
  81.             {
  82.                 $errorMsg = "Найдено несколько пользователей ("
  83.                 foreach ($usr in $adUser)
  84.                 {
  85.                     $errorMsg = $errorMsg + $usr.Name + ";"
  86.                 }
  87.                 $errorMsg = $errorMsg + ")."
  88.                 Write-Error $errorMsg
  89.                 echo $errorMsg
  90.                 continue
  91.             }
  92.         }
  93.         else
  94.         { # Поиск по "фамилия" неудачен
  95.             $errorMsg = "Пользователь " + $enSN + " в AD не найден."
  96.             Write-Error $errorMsg
  97.             echo $errorMsg
  98.             continue
  99.         }
  100.     }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement