Wie der Titel schon sagt: Woher weiß ich, auf welchen Computern in meinem Netzwerk das lokale Administratorkonto aktiv ist? Denn gemäß der Anforderung des Sicherheitsberaters müssen wir jedes lokale Administratorkonto auf jedem der über 300 Notebooks/Desktops im Netzwerk kennen und wenn möglich deaktivieren.
Gibt es einen net use
oder wmi
Befehl, um es anzusprechen? Kann es rekursiv eingestellt werden, um jeden Computer im Netzwerk zu fragen? Wir haben einen Domänencontroller, falls das hilft, aber es gibt immer ein paar Gruppen mit Computern, die nicht der Domäne beigetreten sind.
Antwort1
Ich sehe hier einige Probleme.
- Auf Computern, die nicht zur Domäne gehören, musseinAdministratorkonto aktiv, auch wenn es nicht das Konto mit dem Namen „Administrator“ ist.
- Auf Computern, die nicht der Domäne angehören, benötigen Sie ein Konto, um Ihre Abfrage auszuführen
- Im Allgemeinen können Sie eine Abfrage nur ausführen, wenn der Computer online ist. Sie müssen also die regelmäßige Ausführung Ihrer Abfragen planen und selbst dann können Sie nicht garantieren, dass Sie alle Abfragen erhalten, weil Sie nicht garantieren können, dass die PCs in dem Zeitraum, in dem Sie Ihre Abfrage ausführen, online sind.
Davon abgesehen
Auf einem Windows 10-PC können Sie Folgendes ausführen, um das Konto mit dem Namen „Administrator“ abzurufen und festzustellen, ob es aktiviert ist:
Get-LocalUser -Name Administrator | Select-Object Name, Enabled
Sie können diesen Befehl in einem Skript wie dem folgenden verwenden, um den Status eines Computers abzurufen.
[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"
Sie können dann den obigen Befehl als Startskript in der Domäne ausführen (beachten Sie, dass der freigegebene Ordner für die Gruppe „Domänencomputer“ beschreibbar sein muss).
Auf PCs außerhalb der Domäne haben Sie etwas Pech. Wenn Sie ein Konto haben, mit dem Sie sich remote bei mehreren Systemen anmelden können, könnten Sie so etwas verwenden:
$APSCredentialWhichHasTheRightsToDoThis = Get-Credential
Invoke-Command -Computername "RemotePC" -ScriptBlock {Get-LocalUser -Name "Administrator"} -Credential $APSCredentialWhichHasTheRightsToDoThis
um den Status des Remotecomputers abzurufen.