Как получить псевдоним по электронной почте и CN для всех в рекламной группе, используя PowerShell

StackOverflow https://stackoverflow.com/questions/5861816

Вопрос

Я использую PowerShell с квестами объявлений.

Я могу использовать командлет get-qadgroupmember, чтобы получить список всех в данной группе. Пока все хорошо, но я хотел бы получить их псевдоним по электронной почте. Все, что возвращается в настоящее время, это что -то вроде:

Name      Type  DN
----      ----  --
Jane Doe  User  CN=Jane Doe,OU=Employee,DC=companyname,DC=com
Job Blow  User  CN=Joe Blow,OU=Employee,DC=companyname,DC=com

Я попытался использовать get -Qaduser с флагом -инкурсионным флагом, но я все еще получаю только возвратные поля, и я не знаю, как получить возвращенные данные, которые, как говорится в документации, кэшируется на компьютере.

Любая помощь будет оценена.

ОБНОВИТЬ

В итоге я использовал «SELECT», аналогичный ниже:

$everyone = Get-QADGroupMember "All employees" | select firstname, lastname, email

И это получило все, что мне было нужно, в множество хэш -стенков. В этот момент легко сделать все, что нужно, чтобы итерация через всех с кодом, как:

for ($i=0; $i -le $everyone .length-1; $i++)
{
    write-host $everyone[$i].email
}

Мне потребовалось вечно, чтобы найти «». обозначения для вытягивания определенных значений из хэштата. Я провели проанализ, и это сработало, но я знал, что это не может быть правильным способом сделать это, и в конечном итоге нашел документацию по обозначениям DOT. Я надеюсь, что документирование этого здесь сэкономит кому -то еще!

Это было полезно?

Решение

Вы уверены, что это действительно не возвращает эту информацию? Вы пробовали завести команду в Get-Member или же Format-List -Force *? PowerShell может быть настроен, чтобы показать только несколько свойств элементов, а не все, что может быть здесь.

Вы можете выбрать свойства, используя Select-Object или просто select Если у вас есть, они там, хотя PowerShell не отображает их по умолчанию:

Some-Command | select Name, Type, DN, SomeOtherProperty

Вы можете увидеть это, например, с Get-ChildItem слишком:

PS Home:\> gci *.ps1


    Directory: C:\Users\Joey


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2011-04-27     18:50        169 format.ps1
-a---        2011-04-26     18:36       1064 Untitled1.ps1
-a---        2011-04-27     18:41         69 x.ps1
-a---        2011-04-23     19:58         91 y.ps1

Нормальный вызов дает только четыре свойства: Mode, LastWriteTime, Length а также Name. Анкет Тем не менее, есть еще много, как Get-Member шоу

PS Home:\> gci *.ps1|gm -MemberType Property


   TypeName: System.IO.FileInfo

Name              MemberType Definition
----              ---------- ----------
Attributes        Property   System.IO.FileAttributes Attributes {get;set;}
CreationTime      Property   System.DateTime CreationTime {get;set;}
CreationTimeUtc   Property   System.DateTime CreationTimeUtc {get;set;}
Directory         Property   System.IO.DirectoryInfo Directory {get;}
DirectoryName     Property   System.String DirectoryName {get;}
Exists            Property   System.Boolean Exists {get;}
Extension         Property   System.String Extension {get;}
FullName          Property   System.String FullName {get;}
IsReadOnly        Property   System.Boolean IsReadOnly {get;set;}
LastAccessTime    Property   System.DateTime LastAccessTime {get;set;}
LastAccessTimeUtc Property   System.DateTime LastAccessTimeUtc {get;set;}
LastWriteTime     Property   System.DateTime LastWriteTime {get;set;}
LastWriteTimeUtc  Property   System.DateTime LastWriteTimeUtc {get;set;}
Length            Property   System.Int64 Length {get;}
Name              Property   System.String Name {get;}

Другие советы

Помните, что Select-Object снимает объект и генерирует новые.

Итак, в этом примере:

$test = get-qaduser atestuser | select-object name

$ test будет PscustomOmobject (System.Object), содержащий только имя.

Что вы хотите сделать с данными? Вывод в консоли ... в файл?

Я бы сделал что -то вроде этого:

get-qadgroupmember "domain users" | format-table name, displayname, email

Или же

get-qadgroupmember "domain users" | select-object name, displayname, email | Export-Csv c:\acsvfile.csv
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top