Get-Ryan

[PowerShell] Get-SamAccountName

Apr 18th, 2017
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Function Get-SamAccountName {
  2.    
  3.     [cmdletbinding()]
  4.  
  5.     param(
  6.         [String]
  7.         $FirstName,
  8.  
  9.         [String]
  10.         $LastName
  11.     )
  12.  
  13.     If($FirstName -eq $null -and $LastName -eq $null){
  14.         Write-Host "FirstName and LastName cannot both be empty." -ForegroundColor Red
  15.         Break
  16.     }
  17.  
  18.     $FirstNameWild = "*$FirstName*"
  19.     $LastNameWild = "*$LastName*"
  20.  
  21.     If($FirstName -and $LastName){
  22.         $users = Get-ADUser -Filter {Givenname -like $FirstName -and Surname -like $LastName -and Enabled -eq $true}
  23.         If($users -eq $null){
  24.             $users = Get-ADUser -Filter {Givenname -like $FirstNameWild -and Surname -like $LastNameWild -and Enabled -eq $true}
  25.             If($users -eq $null){
  26.                 Write-Host "No active users found with name $FirstName $LastName."
  27.                 Break
  28.             }
  29.         }
  30.         $users | Sort-Object Surname | Select-Object SamAccountName, @{Name="FirstName";Expression={$_.Givenname}}, @{Name="LastName";Expression={$_.Surname}}
  31.         Return
  32.     }
  33.  
  34.     If($FirstName){
  35.         $users = Get-ADUser -Filter {Givenname -like $FirstName -and Enabled -eq $true}
  36.         If($users -eq $null){
  37.             $users = Get-ADUser -Filter {Givenname -like $FirstNameWild -and Enabled -eq $true}
  38.             If($users -eq $null){
  39.                 Write-Host "No active users found with name $FirstName."
  40.                 Break
  41.             }
  42.         }
  43.         $users | Sort-Object Surname | Select-Object SamAccountName, @{Name="FirstName";Expression={$_.Givenname}}, @{Name="LastName";Expression={$_.Surname}}
  44.         Return
  45.     }
  46.  
  47.     If($LastName){
  48.         $users = Get-ADUser -Filter {Surname -like $LastName -and Enabled -eq $true}
  49.         If($users -eq $null){
  50.             $users = Get-ADUser -Filter {Surname -like $LastNameWild -and Enabled -eq $true}
  51.             If($users -eq $null){
  52.                 Write-Host "No active users found with name $LastName."
  53.                 Break
  54.             }
  55.         }
  56.         $users | Sort-Object Surname | Select-Object SamAccountName, @{Name="FirstName";Expression={$_.Givenname}}, @{Name="LastName";Expression={$_.Surname}}
  57.         Return
  58.     }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment