Проверьте список имен пользователей и, если они уже существуют, Powershell - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть CSV со 100 именами пользователей, я должен проверить, существуют ли они уже. Какой лучший способ сделать это? И есть ли вероятность, что, если имя пользователя «marmar» уже используется, программа самостоятельно проверяет, является ли имя пользователя «marmar1» или используется так же, как «marmar2» свободно?

Проще ли читатьИмена пользователей через CSV или я должен скопировать их в Powershell? примеры имен пользователей:

marmar langas ianmow lowbob berret lawpaw1

и т. д.

Открыт для идей и советов. $

Большое спасибо

1 Ответ

0 голосов
/ 07 ноября 2019

Если ваш CSV-файл выглядит примерно так:

"UserName","OtherStuff"
"marmar","blah"
"langas2","blahblah"
"ianmow","blahblahblah"
"lowbob","blahblahblahblah"
"berret","blahblahblahblahblah"
"lawpaw1","blahblahblahblahblahblah"

Вы можете сделать это примерно так:

$freeUserNames = Import-csv 'D:\UsersNamesToCheck.csv' | ForEach-Object {
    #Check to see if the user already exists in AD
    $name  = $_.UserName
    $dupes = Get-ADUser -Filter "SamAccountName -like '$name*'" -ErrorAction SilentlyContinue | Select-Object -ExpandProperty SamAccountName
    $index = 1
    # check if the username is already in use and if so, increase the index number and test again
    while ($dupes -contains $name) {
        $name = '{0}{1}' -f ($name -replace '\d+$'), $index++
    }
    $name
}

# output on screen
Write-Host "Unused usernames:`r`n"
$freeUserNames

Возможный вывод:

Unused usernames:

marmar
langas1
ianmow1
lowbob
berret1
lawpaw2
...