タイトルの通り、ネットワーク内でローカル管理者アカウントがアクティブなコンピューターはどれか、どうすればわかりますか? セキュリティ コンサルタントの要請により、ネットワーク上の 300 台以上のノートブック/デスクトップのすべてにあるローカル管理者アカウントをすべて把握し、可能であれば無効にする必要があるためです。
net use
これに対処するには、またはコマンドがありますかwmi
? ネットワーク上のすべてのコンピューターに問い合わせるように再帰的に設定できますか? 役立つ場合はドメイン コントローラーがありますが、ドメインに参加していないコンピューターを含むグループが常にいくつかあります。
答え1
ここでいくつか問題があるようです。
- ドメインに参加していないコンピュータでは、の管理者という名前のアカウントでなくても、管理者アカウントはアクティブになります。
- ドメインに参加していないコンピュータでは、クエリを実行するためにアカウントが必要になります
- 一般的に、クエリを実行できるのはコンピュータがオンラインのときだけなので、クエリを定期的に実行するようにスケジュールする必要があります。ただし、クエリを実行する時間枠内に PC がオンラインになることを保証できないため、すべてのクエリが取得されるとは限りません。
そうは言っても
Windows 10 PC では、次のコマンドを実行して、Administrator という名前のアカウントを取得し、それが有効かどうかを確認できます。
Get-LocalUser -Name Administrator | Select-Object Name, Enabled
次のようなスクリプトでこのコマンドを使用して、コンピューターのステータスを取得できます。
[pscustomobject]@{
Computername = $env:Computername
AdminEnabled = Get-LocalUser -Name "Administrator" | Select-Object -ExpandProperty Enabled
} | Export-CSV -Path "\\a\share\where\you\can\put\this\$($env:Computername).csv"
その後、上記のコマンドをドメイン内のスタートアップ スクリプトとして実行できます (共有フォルダーは「Domain Computers」グループに対して書き込み可能である必要があることに注意してください)
ドメイン外の PC では、少し運が悪いです。複数のシステムにリモートでログオンできるアカウントがある場合は、次のような方法を使用できます。
$APSCredentialWhichHasTheRightsToDoThis = Get-Credential
Invoke-Command -Computername "RemotePC" -ScriptBlock {Get-LocalUser -Name "Administrator"} -Credential $APSCredentialWhichHasTheRightsToDoThis
リモート コンピュータの状態を取得します。