PowerShellを使用して広告グループのすべての人に電子メールエイリアスとCNを取得する方法

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

質問

Quest Ad CmdletsでPowerShellを使用しています。

get-qadgroupmember cmdletを使用して、特定のグループの全員のリストを取得できます。これまでのところ良いですが、私も彼らの電子メールエイリアスを取得したいと思います。現在返されているのは、次のようなものだけです。

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

-includeallpropertiesフラグを使用してget -qaduserを使用しようとしましたが、上記のフィールドが返されただけで、ドキュメントがコンピューターにキャッシュしていると書かれた返されたデータを取得する方法がわかりません。

どんな助けも感謝します。

アップデート

以下に似た「選択」を使用することになりました。

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

そして、それは私が必要なものをすべてのハッシュテーブルの配列に入れました。その時点で、次のようなコードを使用してすべての人を繰り返すことで、必要なことは何でも簡単に行うことができます。

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

「」を見つけるために私を永遠に連れて行ってくれました。ハッシュテーブルから特定の値を引き出すための表記。私はテキストの解析を行いましたが、それはうまくいきましたが、それがそれを行う正しい方法ではないことを知っていました、そして最終的にドット表記にドキュメントを見つけました。ここで他の誰かが時間を節約することを文書化することを願っています!

役に立ちましたか?

解決

本当にその情報を返さないと確信していますか?コマンドを配管してみましたか 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

通常の呼び出しは、4つのプロパティのみを生成します。 Mode, LastWriteTime, LengthName. 。ただし、さらに多くのことがあります 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

$テストは、名前のみを含むpscustomobject(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