web-dev-qa-db-ja.com

リモートサーバー管理ツール(RSAT)を使用しないWindowsドメインコンピューターの一覧表示

Windows7ワークステーションがメンバーになっているWindowsドメインの一部であるコンピューターのリストを取得したいと思います。

追加のインストールをほとんどまたはまったく行わずにこれを実現したいと思います。特に、Microsoftが提供する230MBのリモートサーバー管理ツールパッケージはそうではありません。

これまでに見たオプションには、DSQueryツール(RSATパッケージの一部)とPowerShell用のActiveDirectoryモジュール(RSATパッケージの一部)が含まれます。

  • PowerShellモジュールを単独で使用するオプション(スクリプトのみ)があるのでしょうか、それとも230MBツールセットのすべてのビットが本当に必要なのでしょうか。
  • 私が逃した別のオプションはありますか?

クエリを実行するユーザーの権限については、非特権ドメインユーザーを使用できるようにしたいのですが、非特権の選択肢がない場合は管理者もオプションです。

また、net viewコマンドは、同じサブネット内またはワークステーションの「近く」にある数台のコンピューターを表示しますが、ドメイン内のすべてのコンピューターを表示するわけではありません。一方、コマンドnet view /domain:<domain_name>は結果を表示せず、エラー6118を返します(これは、net viewも結果を表示しないと予想されるため奇妙です)。

5
Charles

[〜#〜] adsi [〜#〜] インターフェイスはPowerShell/.NETおよび System.DirectoryServices 名前空間を介していつでも使用できます。

これは、PowerShellを標準のドメインユーザーとして実行していると仮定して、 DirectorySearcher を使用した簡単な例です。

$searcher = New-Object DirectoryServices.DirectorySearcher
$searcher.Filter = '(objectclass=computer)'
$searcher.SearchRoot = 'LDAP://DC=example,DC=com'
$searcher.FindAll()

私の意見では、ActiveDirectoryモジュールを使用するほど良くはありません。しかし、それは間違いなく実行可能であり、場合によってはActiveDirectoryモジュールよりも高速になる可能性があります。

また、RSATパッケージ全体をインストールする必要はなく、ActiveDirectoryモジュールファイルだけを別のインストールからプルして、個人のプロファイルに追加できる場合もあります。正しく思い出せば、それは1つのフォルダーと約5MB相当のファイルです。

4
Ryan Bolger