Использование командной строки, чтобы увидеть, отключена ли локальная гостевая учетная запись данного компьютера

Мне нужно создать отчет, который показывает, что гостевая учетная запись отключена для данного списка компьютеров.

Как я могу использовать net user, powershell или какой-либо другой широко используемый инструмент для этой цели?

3 ответа

Вот небольшая функция PowerShell, чтобы проверить это.

function Test-LocalAccountDisabled
{
    param (
        [string]
        $AccountName = 'Guest',
        [string[]]
        $ComputerName = $env:COMPUTERNAME
    )

    $AccountDisable=0x0002
    foreach ($Computer in $ComputerName)
    {
        [ADSI]$Guest="WinNT://$Computer/$AccountName,User"
        if ($Guest -ne $null)
        {
            New-Object PSObject -Property @{
                Disabled = ($Guest.UserFlags.Value -band $AccountDisable) -as [boolean]
                AccountName = $AccountName
                ComputerName = $Computer
            }
        }
        else
        {
            Write-Error "Unable to find $AccountName on $Computer."
        }
    }
}

Если у вас есть список компьютеров в текстовом файле, разделенный переносами строк, вы можете сделать что-то вроде

Test-LocalAccountDisabled -ComputerName (get-content computers.txt)

PowerShell, вероятно, самый простой способ:

foreach ( $computer in (Get-Content computers.txt) ) {
  Get-WmiObject Win32_UserAccount -Computer $computer -Filter "Name = 'guest'" `
    | Select-Object __Server, Disabled
}

С помощью wmic в партии это некрасиво, но работать тоже будет

set query=useraccount where name^^="guest" get disabled

for /f %c in ('computers.txt') do (
  for /f "delims== tokens=2" %a in ('wmic /node:%c %query% /value') do (
    echo %c %a
  )
)

Сценарий Powershell с чем-то вроде этого должен сработать:

$Servers = Get-Content "C:\Path\To\File\With\Servers.txt"

foreach ($Server in $Servers)
{
    Get-WmiObject Win32_UserAccount -computername $Server -filter "LocalAccount=True AND` 
    Name='Guest'" | Select-Object Domain,Name,Disabled
}

Это будет считывать список имен серверов из текстового файла и проходить по ним, отображая запись для каждой отключенной гостевой учетной записи. Если вы берете AND Name=Guest, он покажет вам все отключенные учетные записи на каждой машине.

Другие вопросы по тегам