Я пытаюсь удаленно удалить определенную службу, но получаю известное сообщение" FAILED 5: Access is denied ". Я сократил тестовый пример до запуска
sc \\remotemachine.domain.local query "flexnet licensing service"
и получил
[SC] EnumQueryServicesStatus:OpenService FAILED 5:
Access is denied.
Интересно то, что я могу удаленно запросить практически любую другую службу от того же клиента, и это не проблема. но получите известное сообщение «FAILED 5: Access is denied». сообщение. Я сократил тестовый пример до выполнения
sc \\remotemachine.domain.local query "flexnet licensing service"
и получил
[SC] EnumQueryServicesStatus:OpenService FAILED 5:
Access is denied.
. Интересно то, что я могу удаленно запросить практически любую другую службу от того же клиента, и это не проблема. но получите известное сообщение «FAILED 5: Access is denied». сообщение. Я сократил тестовый пример до выполнения
sc \\remotemachine.domain.local query "flexnet licensing service"
и получил
[SC] EnumQueryServicesStatus:OpenService FAILED 5:
Access is denied.
. Интересно то, что я могу удаленно запросить практически любую другую службу от того же клиента, и это не проблема. Хост-компьютер
Используя того же пользователя при входе в систему непосредственно на машине, я могу без проблем запрашивать, запускать или останавливать эту «службу лицензирования Flexnet», это Только при попытке сделать это удаленно я сталкиваюсь с проблемой.
Первоначально мы столкнулись с этой проблемой, когда наш деинсталлятор не смог удалить эту службу с помощью Windows C API. Программа удаления будет нормально работать при запуске непосредственно на машине, но при удаленном вызове через WMI она не сработает. Мы постепенно сокращаем тестовый пример, и до сих пор во всех случаях запросы или попытки остановить или удалить эту конкретную службу не удавались при удаленной попытке.
Я также пробовал удаленно вызвать пакетный сценарий, который содержал команды:
powershell.exe -Command "Start-process C:\myDeleteSvc.exe -Verb RunAs"
Где myDeleteSvc. exe - это простая программа, установленная на целевой машине для удаления службы с использованием Windows C API , но она также не удалась при вызове OpenService с отказом в доступе. Опять же, он отлично работает, если запускается непосредственно на машине.
У меня такое случалось со службой, установленной на машинах с Windows 7 и 2008R2 (не тестировал на других платформах).
Данная служба предназначена для стороннее программное обеспечение. Он зависит от службы инструментария управления Windows, но даже когда я вручную удаляю все зависимости (и иждивенцы), он по-прежнему не может быть запрошен удаленно.
Есть ли у кого-нибудь дальнейшие предложения по исследованию (или решениям)?
Там Это один из случаев, когда службу можно удалить удаленно. Мы поговорили со службой поддержки этого продукта, пытаясь разобраться в проблеме, и пока они Также озадаченные, они предоставили файл msi, который при удаленном запуске удалял рассматриваемую службу. У нас нет доступа к тому сценарию, который использовался для создания этого msi-файла, но нам сказали, что это «очень просто, и все, что он сделал, - это удалил службу». Один из возможных путей исследования - понять, делает ли деинсталляция службы msi что-то «лишнее» при выполнении деинсталляции - кто-нибудь знает?
Некоторые связанные вопросы, хотя все они кажутся одной и той же темой UAC и выполняются как администратора, и поскольку я могу удаленно запрашивать другие службы, я думаю, что моя проблема должна быть немного другой. Включение ссылок заставляет бота думать, что это спам, поэтому просто ищите по заголовкам.
Благодаря Craig620 проблема действительно была связана с дескриптором безопасности.
C:>sc sdshow "flexnet licensing service"
D:(D;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;NU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCLCSWRPLOCRRC;;;IU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)
C:>sc sdshow myService
D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)
И из синтаксиса SID видна первая запись ((D;;...;;;; NU)
). Отключает большинство разрешений для всего, что поступает по сети (NU
). Когда я изменил SD на те же разрешения за вычетом отключения NU
, я мог запросить и удалить службу удаленно с помощью команды sc.exe
.