Главная > Проблемы / ошибки, Powershell > Ошибка: Код (ID): 10016

Ошибка: Код (ID): 10016

Случайно обнаружил, что на одном компьютере системный журнал буквально завален сообщениями о такой ошибке:

Тип события:             Ошибка
Источник события:    DCOM
Категория события:  Отсутствует
Код события:             10016
Пользователь:           NT AUTHORITY\SYSTEM
Описание:
Настройки разрешений  зависящие от конкретного приложения не предоставляют разрешение Локально Запуск для приложения  сервера COM Server с CLSID
{24FF4FDC-1D9F-4195-8C79-0DA39248FF48}
пользователю NT AUTHORITY\SYSTEM SID (S-1-5-18).  Это разрешение  можно изменить с помощью средства администрирования Component Services.

Такая фигня уже когда-то возникала и в тот раз я её победил, но сейчас абсолютно не помнил как, пришлось начинать всё сначала, поэтому решил написать заметку на будущее.

Как сообщает техподдержка Касперского:

Данная ошибка регистрируется в системном журнале в случае, когда Агент администрирования пытается взаимодействовать с установленным, но отключенным сервисом Network Access Protection Agent (далее NAP Agent). На клиентских компьютерах с включенным сервисом NAP Agent данная ошибка не появляется.

В качестве решения проблемы предлагается отключить взаимодействие Агента администрирования с сервисом NAP Agent на клиентских компьютерах, если технология NAP не используется в сети.

Для этого предлагается в разделе реестра HKEY_LOCAL_MACHINE\SOFTWARE\KasperskyLab\Components\34\1103\1.0.0.0\

(для 32-х битной ОС), и

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\KasperskyLab\Components\34\1103\1.0.0.0\ (для 64-х битной) создать раздел NAP, в котором создать ключ Enable (DWORD) со значением:

  • 1 – включить взаимодействие с NAP Agent;
  • 0 – отключить взаимодействие с NAP Agent.

Также там предлагается решения для автоматизации данной задачи, но мне оно показалось громоздким, так как для этого нужно скачать файл, после чего создать инсталляционный пакет, после чего создать задачу удалённой установки этого пакета.

Поэтому, предчувствуя, что столкнутся с этой проблемой мне ещё придётся (и возможно не один раз) решил написать скрипт, который будет делать вышеуказанные действия.

Так как скрипт будет запускаться удалённо, то, всё, что требуется от запускающего это указать имя компьютера, если этого не сделать скрипт, сам напомнит об этом:

param
(
    [string]$Computer = $null
)

# Если имя компьютера не задано, просим ввести
if (!$Computer)
{
    $Computer = Read-Host "Укажите имя компьютера"
}

После чего первым делом проверяется доступность компьютера:

Write-Verbose "Проверяем доступность компьютера..." -Verbose
if (!(Test-Connection -ComputerName $Computer -Count 1 `
    -ErrorAction SilentlyContinue))
{
    Write-Error "Компьютер $Computer не обнаружен" -Category ObjectNotFound
    exit
}

Если всё ОК проверяем на удалённом компьютере наличие службы Kaspersky Lab Network Agent и наличие вышеуказанного раздела реестра, после чего в нём создаётся подраздел NAP, параметр Enable, отключающий  взаимодействие с NAP Agent’ом и перезапускается служба Kaspersky Lab Network:

Invoke-Command -ScriptBlock `
{

    # Проверяем установлена-ли служба Kaspersky Lab Network Agent
    $Service = "Kaspersky Lab Network Agent"
    Write-Verbose "Проверяем наличие службы $Service..." -Verbose
    if (!(Get-Service -DisplayName $Service -ErrorAction SilentlyContinue))
    {
        Write-Error "Служба $Service не установлена" -Category ObjectNotFound
        exit
    }
    
    $reg_path = 'HKLM:\SOFTWARE\KasperskyLab\Components\34\1103\1.0.0.0\'
    
    # Проверяем наличие раздела реестра
    if (!(Test-Path $reg_path))
    {
        Write-Error "Нужный раздел реестра не найден" -Category ObjectNotFound
        exit
    }
    
    Write-Verbose "Создаём раздел NAP..." -Verbose
    
    # Полное имя нового раздела
    $new_path = $reg_path + 'NAP'
    
    # Создаём раздел NAP
    New-Item -Path $new_path
        
    # Создаём параметр Enable и присваиваем ему значение 0
    Write-Verbose "Создаём параметр Enable (со значением 0)..." -Verbose
    New-ItemProperty -Path $new_path -Name Enable -PropertyType DWORD -Value 0
    
    # Перезапускаем службу Kaspersky Lab Network Agent
    Write-Verbose "Перезапускаем службу $Service..." -Verbose
    Restart-Service -DisplayName $Service
    
} -ComputerName $Computer
Реклама
  1. Комментариев нет.
  1. No trackbacks yet.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: