Windows7ワークステーションがメンバーになっているWindowsドメインの一部であるコンピューターのリストを取得したいと思います。
追加のインストールをほとんどまたはまったく行わずにこれを実現したいと思います。特に、Microsoftが提供する230MBのリモートサーバー管理ツールパッケージはそうではありません。
これまでに見たオプションには、DSQueryツール(RSATパッケージの一部)とPowerShell用のActiveDirectoryモジュール(RSATパッケージの一部)が含まれます。
クエリを実行するユーザーの権限については、非特権ドメインユーザーを使用できるようにしたいのですが、非特権の選択肢がない場合は管理者もオプションです。
また、net view
コマンドは、同じサブネット内またはワークステーションの「近く」にある数台のコンピューターを表示しますが、ドメイン内のすべてのコンピューターを表示するわけではありません。一方、コマンドnet view /domain:<domain_name>
は結果を表示せず、エラー6118を返します(これは、net view
も結果を表示しないと予想されるため奇妙です)。
[〜#〜] 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相当のファイルです。