3

Quest AD コマンドレットで 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

-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
}

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

4

2 に答える 2

0

本当にその情報を返さないのですか?コマンドをGet-MemberまたはにパイプしてみましたかFormat-List -Force *?PowerShellは、アイテムのいくつかのプロパティのみを表示するように構成できますが、ここではすべてが表示されるわけではありません。

Select-ObjectPowerShellがデフォルトでプロパティを表示しない場合でも、プロパティを使用して、またはプロパティselectが存在することがわかっている場合は、プロパティを選択できます。

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れます。しかし、示されているように、もっとたくさんあります。LastWriteTimeLengthNameGet-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;}
于 2011-05-03T05:03:07.020 に答える
0

select-object はオブジェクトを取り除き、新しいオブジェクトを生成することに注意してください。

したがって、この例では:

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

$test は、名前のみを含む 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
于 2011-05-03T08:34:25.337 に答える