PowerShellを使用して広告グループのすべての人に電子メールエイリアスとCNを取得する方法
-
28-10-2019 - |
質問
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
, 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
$テストは、名前のみを含む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