#powershell
#powershell
Вопрос:
У меня есть список мобильных номеров, с которыми я хочу попытаться сопоставить пользователей ad, а затем экспортировать в формате csv.
Текущий скрипт работает до сих пор, но я хочу, чтобы он включал строку, когда он не находит пользователя, который указывает номер мобильного телефона, с которого у него не было совпадения.
$ou="OU=User Accounts,OU=Users,OU=Company,DC=dc01,DC=local"
get-content chk_usr_mobile.csv |
ForEach {
$aduser=get-aduser -SearchBase $ou -filter{(mobile -eq $_)} -Properties *|
select -Property company,emailaddress,@{L='departmentnumber'; E={$_.departmentnumber[0]}}, mobile,givenname,sn
if ($aduser -eq $null){
$aduser=$_
}
else{
$aduser}
} | export-csv .tel_result.csv -encoding UTF8 -notypeinformation
Итак, вывод, который я хочу, должен быть таким в csv:
"company","emailaddress","departmentnumber","mobile","givenname","sn"
"Company","user1g@company.com","123","123456789","Joe","Doe"
"no user found for number 98765431"
"Company","user2g@company.com","124","456789123","Jane","Doe"
Комментарии:
1.
departmentnumber
это не стандартное свойство для пользователя AD. Расширена ли схема этим свойством в вашей среде?. P.S. Желаемый результат — неработающий CSV-файл..
Ответ №1:
Судя по вашему коду, входной CSV-файл вообще не CSV-файл, а скорее текстовый файл с номерами телефонов, каждый в отдельной строке..
Чтобы не нарушать вывод CSV, я предлагаю вам сделать следующее:
$ou="OU=User Accounts,OU=Users,OU=Company,DC=dc01,DC=local"
Get-Content chk_usr_mobile.csv | ForEach-Object {
$aduser = Get-ADUser -SearchBase $ou -Filter { mobile -eq $_ } -Properties Company,EmailAddress,departmentnumber,Mobile,GivenName,Surname
if ($aduser) {
$aduser | Select-Object Company,EmailAddress,@{L='DepartmentNumber'; E={$_.departmentnumber[0]}},Mobile,GivenName,Surname
}
else {
[PSCustomObject]@{
Company = 'no user found for number {0}' -f $_
EmailAddress = ''
DepartmentNumber = ''
Mobile = ''
GivenName = ''
Surname = ''
}
}
} | Export-Csv .tel_result.csv -Encoding UTF8 -NoTypeInformation -Force
Комментарии:
1. Исправьте, это просто текстовый файл в качестве входных данных, не знал, что для этого нужны все значения, чтобы не нарушать csv. Теперь это отлично работает!
2. @Anthon Спасибо за отзыв!