У вас есть несколько вопросов здесь:
1) Вы выбираете "GivenName" дважды - PowerShell не допустит, что: ![enter image description here](https://i.stack.imgur.com/tjydk.jpg)
2) Вы хотите подстроки (0,1) - начинать как позицию 0 и считать 1 букву.
3) это должно делать то, что вы хотите сделать:
Get-ADUser -Filter * -Properties * | `
Select @{n='initial';e={$_.surname.substring(0,1)}},surname,givenName,samaccountname,Mail,Department | `
Export-CSV "C:\installs\Users.csv" -NoTypeInformation
по существу, вы создаете и утилизации небольшой массив имущества каждый раз - что позволяет установить значение (подстроки), который затем возвращается в цепочку до выбора, а затем в файл CSV :)
(также стоит отметить, что вы выбираете первую букву фамилии, но в своем вопросе вы спрашиваете получить K от Kevin - вы можете захотеть выбрать из поля forename).
Другие ноты:
-filter * -properties *
является очень вычислительно дорого - вы получаете все поля для всех пользователей и только выбрать несколько. попробуйте указать свойства так же, как и в своем выборе.
select -property
- -property переключатель является излишним и необязательным - только с помощью Select stuff,otherstuff
будет делать то же самое, и будет легче читать
Я бы сказал, что обнадеживающая стенография - не лучший совет. 'Select-Object -Property' будет завершен. Это также позволяет лучше понять то, что * вы просите PowerShell; выберите набор свойств объекта, подаваемого по конвейеру. Без него может быть немного неясно, когда начинающие/люди просматривают сценарии, если/когда OP покинул компанию, поскольку она требует знания сокращений PowerShell и необязательных и стандартных позиционных параметров. Кодекс, который «легче» читать, субъективен, но быть технически полным - нет. Просто мой 2c, и все равно :) – Robin