PowerShell 5.1 を使用して、Active Directory からコンピューターのリストを反復処理していますが、単純にする必要があることに苦労しています。
以下のコードでは、foreach ループで各コンピューターの名前と説明を選択しています。ループ内で名前と説明を個別に参照するにはどうすればよいですか?
$OU=@('OU=...')
$computers = $OU | foreach {Get-ADComputer -filter {
Name -notlike 'xxx*'
-and Name -notlike 'yyy*'
} -searchbase $_ -Properties description | Select name, description }
foreach ($computer in $computers) {
$computerName = $computer | select -ExpandProperty name
$computerDescription = $computer | select -ExpandProperty description
Write-Host "Host: $computerName [$computerDescription]"
}
を使用して動作させることができましたselect -ExpandProperty
が、これは不必要に複雑に思えます。$computer 変数は、次のようなキーと値のペアを保持します。
@{name=ABCDE12345; description=Kiosk PC [Domain Separated]}
ドット表記を使用してみ$computer.name $computer.description
ましたが、ドットは無視され、テキストとして扱われました。
これをグーグルで検索してみましたが、PowerShell は初めてで、質問の言い方がわかりません。