Метка: Windows 10

  • Аудит события входа пользователей в Windows

    При расследовании различных инцидентов администратору необходимо получить информацию кто и когда заходил на определенный компьютер Windows. Историю входов пользователя в доменной сети можно получить из журналов контроллеров домена. Но иногда проще получить информацию непосредсвенно из логов (далее…)

  • Настройка перенаправления папок пользователей в AD с помощью GPO

    С помощью перенаправления папок (Folder Redirection) вы можете хранить некоторые стандартные каталоги профиля пользователя (специальные папки, типа Desktop, Documents, Pictures, Downloads) в сетевой папке на файловом сервере. Перенаправленные папки работают примерно также как подключенные сетевые (далее…)

  • Отсутствуют серверы, которые могут обработать запрос на вход в сеть

    При входе на компьютер Windows в домене Active Directory пользователь может увидеть следующее сообщение:

    There are currently no logon servers available to service the logon request
    Отсутствуют серверы, которые могли бы обрабатывать запрос на вход в сеть

    Это сообщение говорит о том, что с компьютера (далее…)

  • Определить на каком контроллере домена (Logon Server) вы аутентифицировались

    В некоторых случаях вам нужно определить на каком контроллере домена вы аутентифицированы (ваш logonserver). Это может пригодиться при проблемах с применением групповых политик, когда пользователи жалуются на медленный вход в систему. Пользователь может аутентифицироваться на неверном контроллере (далее…)

  • Ошибка при обработке групповой политики в Windows

    На одном из компьютеров перестали применяться новые параметры групповых политик. Для диагностики я вручную обновил параметров GPO с помощью команды gpupdate /force и увидел такую ошибку в консоли:

    Не удалось успешно обновить политику компьютера. Обнаружены следующие ошибки: Ошибка при обработке (далее…)
  • Настройка двухфакторной аутентификации (2FA) в Windows с помощью MultiOTP

    В этой статье мы покажем, как внедрить двухфакторную аутентификацию пользователей в домене Windows с помощью open source продукта multiOTP. MultiOTP эта набор php скриптов и утилит, который реализует протокол OATH для HOTP/TOTP (Time-based One Time Password). Возможно использовать как в Windows, (далее…)

  • Получить список версий и билдов Windows в домене Active Directory

    В статье рассмотрим несколько способов инвентаризации версии и билдов Windows (особенно актуально это для Windows 10) в домене Active Directory. Если у вас средств автоматизации сбора конфигураций компьютеров, например SCCM, GLPI c FusionInventory, или хотя бы сервер обновлений WSUS (он также позволяет показать версию Windows на обнаруженных компьютерах), вы можете использовать PowerShell скрипт для получения билдов Windows на компьютерах.

    На отдельно-стоящем компьютере Windows можно получить номер билда из реестра или из SystemInfo:

    Get-ItemProperty 'HKLM:SOFTWAREMicrosoftWindows NTCurrentVersion' | Select-Object ProductName, ReleaseID, CurrentBuild

    Get-ComputerInfo | select WindowsProductName, WindowsVersion, OsHardwareAbstractionLayer

    Для получения списка активных компьютеров в домене Active Directory и версий (билдов) Windows на них можно использовать командлет Get-ADComputers.

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

    Убедитесь, что на вашем компьютере установлен модуль Active Directory PowerShell и выполните команду:

    Get-ADComputer -Filter {(Enabled -eq $True)} -Property * | Select-Object Name,OperatingSystem,OperatingSystemVersion

    Чтобы преобразовать номер билда Windows 10 и 11 в более привычный формат (21H1, 21H2 и т.д.), нужно использовать дополнительную функцию.

    function ConvertWindowsBuild{
    [CmdletBinding()]
    param(
    [string] $OperatingSystem,

    [string] $OperatingSystemVersion
    )
    if (($OperatingSystem -like '*Windows 10*') –or ($OperatingSystem -like 'Windows 11*')) {
    $WinBuilds= @{
    '10.0 (22000)' = "Windows 11 21H2"
    '10.0 (19044)' = "Windows 10 21H2"
    '10.0 (19043)' = "Windows 10 21H1"
    '10.0 (19042)' = "Windows 10 20H2"
    '10.0 (18362)' = "Windows 10 1903"
    '10.0 (17763)' = "Windows 10 1809"
    '10.0 (17134)' = "Windows 10 1803"
    '10.0 (16299)' = "Windows 10 1709"
    '10.0 (15063)' = "Windows 10 1703"
    '10.0 (14393)' = "Windows 10 1607"
    '10.0 (10586)' = "Windows 10 1511"
    '10.0 (10240)' = "Windows 10 1507"
    '10.0 (18898)' = 'Windows 10 Insider Preview'
    }
    $WinBuild= $WinBuilds[$OperatingSystemVersion]

    }
    else {$WinBuild = $OperatingSystem}
    if ($WinBuild) {
    $WinBuild
    } else {
    'Unknown'
    }
    }

    Теперь, чтобы получить список версий Windows с названиями билдов, IP адресами, и датой последнего входа (регистрации) компьютера в домене, выполните следующий PowerShell скрипт:

    $Comps= Get-ADComputer -Filter {(Enabled -eq $True)} -properties *
    $CompList = foreach ($Comp in $Comps) {
    [PSCustomObject] @{
    Name = $Comp.Name
    IPv4Address = $Comp.IPv4Address
    OperatingSystem = $Comp.OperatingSystem
    Build = ConvertWindowsBuild -OperatingSystem $Comp.OperatingSystem -OperatingSystemVersion $Comp.OperatingSystemVersion
    LastLogonDate = $Comp.LastLogonDate
    }
    }
    $CompList | Out-GridView

    Результат предоставлен в виде таблицы Out-Gridview либо экспортировать в CSV ( Export-Csv -Path .win_builds_report.csv -NoTypeInformation ).

    Чтобы вывести суммарную статистику по количеству компьютеров с разными версиями Windows в домене:

    $CompList | Group-Object -Property Build | Format-Table -Property Name, Count

    Также можно удаленно опрашивать компьютеры и получить версию Windows на них через PowerShell Remoting. Этот метод намного более медленный, но позволить получить версию Windows на компьютерах, которые находятся в рабочей группе (как через PSRemoting удаленно подключиться к компьютеру в рабочей группе). Для получения информации с удаленных компьютеров можно использовать командлет Invoke-Command:

    Invoke-Command -ScriptBlock {Get-ItemProperty 'HKLM:SOFTWAREMicrosoftWindows NTCurrentVersion' | Select-Object ProductName, ReleaseID, CurrentBuild} -ComputerName wsk-w10BO1| Select-Object PSComputerName,ProductName, ReleaseID, CurrentBuild

    Можно получить версию Windows на нескольких компьютеров по списку из txt файла:

    Invoke-Command –ComputerName (Get-Content c:pscomps.txt) -ScriptBlock {Get-ItemProperty 'HKLM:SOFTWAREMicrosoftWindows NTCurrentVersion' | Select-Object ProductName, ReleaseID, CurrentBuild}|Select-Object PSComputerName,ProductName, ReleaseID, CurrentBuild

    С помощью рассмотренных PowerShell скриптов вы сможете определить версии и билды Windows на компьютерах домена, найти компьютеры с устаревшими билдами Windows 10 и обновить их (пример обновления билда Windows 10 из командной строки).


  • Оптимизации доставки (Delivery Optimization) обновлений Windows в локальной сети

    Функцию оптимизации доставки (Windows Update Delivery Optimization, WUDO) в Windows 10 можно использовать для более эффективного распространения обновлений Windows (полученных через Windows Update или WSUS), и пакетов Configuration Manager в корпоративной сети с множеством сайтов/филиалов. (далее…)

  • Групповые политики: запуск скрипта только один раз

    Логон (логоф) скрипты групповых политик позволяют запустить bat или PowerShell скрипт при загрузке компьютера или входе (выходе) пользователя. В некоторых случаях администратору нужно, чтобы определенный скрипт (команда) запускались для каждого пользователя или компьютера только один раз, и не (далее…)

  • Как узнать имя пользователя на удаленном компьютере?

    Довольно часто администратору нужно быстро узнать имя пользователя, который выполнил вход на удаленном компьютере Windows. В это статье мы рассмотрим несколько утилит и PowerShell скриптов, которые помогут вам узнать имена пользователей, залогиненых на удаленных компьютерах в сети.

    Содержание: (далее…)