PowershellアレイにADコンピューターを追加する方法

2020年9月15日 1220 ビュー powershellは広告コンピューターをアレイに追加します

投稿トピックを閲覧する





序章

ADコンピューターをPowerShellアレイに追加する方法は1つあります。 APowerShell配列は、アイテムのコレクションを格納するデータ構造です。



不和オーバーレイを閉じる方法

理想的には、PowerShell Get-ADComputerコマンドを実行すると、結果が自動的に配列に格納されます。ただし、一部の管理者は、配列の格納方法が原因でデータの操作で問題が発生する可能性があります。

このガイドでは、ADコンピューターをPowerShellアレイに追加する方法を簡単に説明します。配列内のデータを操作するさまざまな方法を示します。このガイドでは、aForEachステートメントのPowerShell配列でADコンピューターを使用する方法についても説明します。



PowershellアレイでADコンピューターの操作を開始する前に、コンピューターを取得する必要があります。次のセクションでは、PowerShellGet-ADComputerコマンドを使用してADコンピューターを取得する方法を示します。



ActiveDirectoryからADコンピュータを取得する方法

ADコンピューターを入手するには、以下のコマンドを実行します。

Get-ADComputer -Filter * -Properties Name | Select-Object Name

このコマンドは、ドメイン内のすべてのコンピューターの名前を返します。



powershellはアレイの例にadcomputersを追加します上記のコマンドを実稼働環境で実行することはお勧めしません。これは、数千台のコンピューターがある場合、時間がかかりすぎる可能性があるためです。 *を使用する代わりに、別のフィルタリングを使用する方がよい場合があります。

上記のコマンドの結果を参照してください。 ADコンピューターを取得すると、既にPowerShell配列に含まれていることを先に述べました。



これを確認するには、以下のコマンドを実行します。

(Get-ADComputer -Filter * -Properties Name | Select-Object Name).GetType()

これが結果です

前のコマンドを()演算子でラップし、 GetType 方法 返されるPowerShellオブジェクトの種類を判別します。

結果は、Get-ADComputerコマンドの結果が System.array

それで、それがアレイである場合、なぜ人々はまだPowerShellを検索し、アレイに広告コンピューターを追加するのですか?

このガイドの残りの部分では、この質問に答えます。変数を介してADコンピューターをアレイに追加する方法を含みます。また、ForEachステートメントで使用するデータを準備する方法。

PowerShellADコンピューターをアレイに追加

ADコンピューターをアレイに追加するさまざまな方法を次に示します。

PowerShell変数のないアレイにADコンピューターを追加する

前のセクションですでに説明したように、Get-ADComputerを使用してActive Directoryからコンピューターを取得すると、結果は既に配列に含まれています。

予期しない構成の問題0x80040003

ほとんどの人が配列に含まれていないと思う理由は、データの表示方法にあると思います。

コマンドをもう一度見てみましょう。ここにあります:

Get-ADComputer -Filter * -Properties Name | Select-Object Name

そして結果:

PowerShell変数のないアレイにADコンピューターを追加する

結果には、というヘッダーが含まれていることに注意してください。 名前 。これは、Select-Objectコマンドで返したオブジェクトプロパティです。

それ自体は問題ではありません。ただし、これをaForEachステートメントで使用しようとすると、エラーが返されます。特に、ForEachステートメント内の別のPowerShellコマンドで値を使用しようとした場合。

プロパティヘッダーなしで値を返すにはどうすればよいですか?これを行うには2つの方法があります。

1つは、次のようにコマンドを修正することです。

(Get-ADComputer -Filter * -Properties Name | Select-Object Name).Name 

ヘッダーがなくなっていることに注意してください。

クラス道場から教師を削除する方法

結果からヘッダーを削除する別の方法は、 -ExpandProperty のパラメータ Select-Object

Get-ADComputer -Filter * -Properties Name | Select-Object -ExpandProperty Name

これがヘッダーが作成された結果です。

PowerShell変数を使用してADコンピューターをアレイに追加する

PowerShellスクリプトでは、変数を使用するとデータを簡単に管理できます。最初の例では、スクリプトの長さが短くなります。

変数を使用してADコンピューターをPowerShellアレイに追加するには、次のようにコマンドを変更します。

$ADComputers = Get-ADComputer -Filter * -Properties Name | Select-Object -ExpandProperty Name

上記のコマンドは結果を返さないように見えます。どうして?結果は現在、に保存されているため $ ADComputers 変数!

結果がに保存されていることを確認するには $ ADComputers 変数、以下のコマンドを実行します

$ADComputers

これがあなたの結果です

しかし、ADコンピューターはPowerShellアレイに含まれていますか?以下のコマンドで調べてみましょう。

$ADComputers.GetType()

結果は、ADコンピューターが変数に格納されているにもかかわらず、ADコンピューターがまだ配列内にあることを示しています。

アプリがインストールされていないマシュマロ

PowerShellはADコンピューターをアレイとForEachステートメントに追加します

PowerShellForEachステートメントを使用すると、オブジェクトのコレクションを反復処理して特定のタスクを実行できます。

1つのアプリケーションは、Get-ADComputerコマンドを使用して取得した各ADコンピューターのプロパティを更新することです。

このコマンドでは、ADコンピューターが$ ADComputers変数に格納されていると想定しています。配列内のADコンピューターの結果をForEachステートメントと組み合わせる方法は次のとおりです。

ForEach ($ADComputer in $ADComputers) {  



}

結論

PowerShellアレイへのADコンピューターの追加は、を使用してコンピューターを取得するのと同じくらい簡単です。 Get-ADComputer 指図。このガイドではこれについて説明しましたが、結果を操作してヘッダーを削除する方法も示しました。また、結果を変数に追加し、ForEachを使用して結果をループする方法についても説明しました。

ガイドがお役に立てば幸いです。質問やコメントがある場合は、このページの最後にある「返信を残す」フォームを使用してください。または、PowerShellアレイでADコンピューターを操作した経験を共有することもできます。

PowerShellの詳細については、PowerShellページをご覧ください。さらに良いことに、すべてのPowerShellガイドのリストについては、PowerShellを検索してください(検索リンクは新しいブラウザータブで開きます)。

その他の役立つガイド

  • ActiveDirectoryグループメンバーを取得するためのPowerShellスクリプト
  • Powershellで最後にキャッチしてエラー処理を試す

追加のリソースとリファレンス