Skip to content
View in the app

A better way to browse. Learn more.

Kaspersky Support Forum

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

KSC API, как изменить тег на устройстве?

Привет! Пытаюсь автоматизировать удаление тегов с выводящихся из эксплуатации устройств и не получается. Использую описание https://support.kaspersky.com/help/KSC/14.2/KSCAPI/a00538_adf01d37bd62ad12a67d62d536cbad430.html#adf01d37bd62ad12a67d62d536cbad430

Выполняю HTTP POST запрос к ".../api/v1.0/HostsTags.ListTags.SetTags" с содержимым тела

{
    "pListItemsTags":  [
                           {
                               "value":  {
                                             "KLTAGS_TAGS":  {
                                                                 "value":  [
                                                                               {
                                                                                   "KLTAGS_VALUE":  "Notebook",
                                                                                   "KLTAGS_SET":  "false"
                                                                               }
                                                                           ],
                                                                 "type":  "params"
                                                             },
                                             "KLTAGS_ITEM_ID":  "4a3e66be-0a81-4b1d-b4e0-fbb5f823bbc7"
                                         },
                               "type":  "params"
                           }
                       ]
}

А в ответ получаю ошибку:

code    : 1192
file    : c:\a\c\g_a9ez0wzv\s\product\osmp\ksc\dev\kloapi\contentstream\sax_handler.cpp
line    : 314
message : Field 'type' is not found for the value with name:
module  : KLSTD
subcode : 0

Что я делаю не так?

Спасибо.

Solved by Aleksey Klenin

Featured Replies

Добрый день!

Столкнулся с точно такой же проблемой. Не нашли решение?
 

У меня структура немного другая, но результат такой же.

Имхо, вы структуру не ту указали "KLTAGS_TAGS" - там обычный params, а не paramPapams, поэтому не надо указывать type-value.

{
  "pListItemsTags": [
    {
      "value": {
        "KLTAGS_TAGS": [
          {
            "KLTAGS_SET": "True",
            "KLTAGS_VALUE": "EXCLUDED"
          }
        ],
        "KLTAGS_ITEM_ID": "345235BDC693C2CCD9174F1ECC68105C"
      },
      "type": "params"
    }
  ]
}

  • Author

Алексей, я пошёл другим путём: настроил правила автоматического назначения группы администрирования для компьютера (Выполнять один раз для каждого устройства и при каждой установке Агента) и удаляю компьютер с сервера. Удалять надо 2 раза, т.к. в первый раз УЗ компа падает в Нераспределённые (если уже был в Нераспределённых, то он удаляется), а со второго раза удаляется.

Александр, спасибо!

Да, так тоже можно, но я попробую API победить все-таки. В ТП запрос кинул.
Если найду решение - отпишусь, для закрытия гештальта.

  • Solution

Решение нашлось, пришлось внимательно посмотреть исходники на Python, налицо несоответствие в документации, там для KLTAGS_TAGS указан тип params, а не paramParams.
Рабочий Body:

{
  "pListItemsTags": [
    {
      "type": "params",
      "value": {
        "KLTAGS_ITEM_ID": "345235BDC693C2CCD9174F1ECC68105C",
        "KLTAGS_TAGS": [
          {
            "type": "params",
            "value": {
              "KLTAGS_VALUE": "TagName",
              "KLTAGS_SET": true
            }
          }
        ]
      }
    }
  ]
}

Или на Powershell:

 $body = @{
        "pListItemsTags" = @(
            @{
                "value" = @{
                    "KLTAGS_ITEM_ID" = "$HostName"
                    "KLTAGS_TAGS"    = @(
                        @{
                            "value" = @{
                                "KLTAGS_VALUE" = "$Tag"
                                "KLTAGS_SET"   = $true
                            }
                            "type"  = "params"
                        }
                    )
                }
                "type"  = "params"
            }
        )
    } | ConvertTo-Json -Depth 6

@Aleksey Klenin, добрый день. Спасибо, Георгий дополнительно переслал мне сообщение от вас, справку коллеги поправят, обращение на это зарегистрировал.

Уточню информацию по поводу запросов, отправляемых из Powershell, поскольку столкнулся с периодически отображаемыми ошибками:
@{code=1192; file=/home/builder/a/c/d_00000000/s/product/osmp/ksc/dev/kloapi/contentstream/sax_handler.cpp; line=316; message=Field 'type' is not found for the value with name: value; module=KLSTD; subcode=0}

Для KSC Open API важен порядок следования полей для объекта типа paramParams.
Требуется, чтобы сперва шло поле type, а лишь затем value.
Поэтому, необходимо указать их именно в такой последовательности, а также для хеш-таблиц указать атрибут [ordered] (по умолчанию хеш-таблицы без сортировки), иначе после конвертации в Json порядок следования полей может меняться:

    $body = @{
        "pListItemsTags" = @(
            [ordered]@{
                "type"  = "params"
                "value" = @{
                    "KLTAGS_ITEM_ID" = "$HostName"
                    "KLTAGS_TAGS"    = @(
                        [ordered]@{
                            "type"  = "params"
                            "value" = @{
                                "KLTAGS_VALUE" = "$Tag"
                                "KLTAGS_SET"   = $true
                            }
                        }
                    )
                }  
            }
        )
    } | ConvertTo-Json -Depth 6

Please sign in to comment

You will be able to leave a comment after signing in

Sign In Now

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.