Jump to content

Recommended Posts

Posted

Приветствую! Столкнулись с такой проблемой - создаем задачу "Удаление данных", нужно распространить ее на устройствах, удалить остатки вируса, который, к сожалению, не распознается на клиентских машинах. Исполняемые файлы дропнулись по пути "C:\Windows\System32\config\systemprofile\AppData\Local\UNPManager", как я понял, системная папка. Задачу создаем от имени доменного администратора, но содержимое папки удалить у него не получается, как я подозреваю, не хватает каких-то прав (к слову, KSC пишет, что задача успешно выполнена). После перезагрузки целевых устройств содержимое папки так же остается на месте. Подскажите, пожалуйста, что делаем неправильно?

Posted

создать пакет из CMD файла и попробовать удалить через него? добавить сохранение вывода команд rd/del в какой ни будь файл для отладки? и whoami добавить.

этот же администратор домена может удалить папку, если делать это локально? что если прав на папку подкинуть через icacls?

Posted (edited)
1 час назад, rand.olf сказал:

Исполняемые файлы дропнулись по пути "C:\Windows\System32\config\systemprofile\AppData\Local\UNPManager",

Вы пытались использовать переменные окружения?

Если да, то не все эти переменные применимы в задачах "KSC", т.к. они исполняются от имени "СИСТЕМА".

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

Сейчас поищу, где-то лежал готовый.

Например, один из вариантов, в командном сценарии в переменную %user% поместит залогиненного пользователя в пользовательской системе:

@for /f "tokens=2 delims=\" %%u in ('wmic computersystem get username^|find "\"') do @set "user=%%u"

после эту переменную можно использовать для составления путей.

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

Нижеуказанный сценарий перечислит директории всех, за некоторым исключением (исключения можете добавить), пользователей, в которые разворачивается переменная %appdata% для каждого пользователя:

@echo off
SetLocal EnableExtensions

For /F "Tokens=2*" %%I In ('Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /V ProfilesDirectory') Do Set Profiles=%%J
Call Set Profiles=%Profiles%

For /F "Delims=" %%I In ('Dir /B /AD-S-H "%Profiles%" ^| FindStr /V /B /I /C:"All Users" /C:"Public"') Do (
  echo."%Profiles%\%%I\AppData\Roaming\"
)

Если сложить оба сценария, то можно получить %appdata% текущего пользователя:

@echo off
SetLocal EnableExtensions

@for /f "tokens=2 delims=\" %%u in ('wmic computersystem get username^|find "\"') do @set "user=%%u"
@for /f %%s in ('wmic useraccount where name^='%user:  =%' get SID^|find "-"') do @set SID=%%s
For /F "Tokens=2*" %%I In ('Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\%SID%" /V ProfileImagePath') Do Set Profiles=%%J
echo."%Profiles%\AppData\Roaming\"

 

Edited by durtuno

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now


×
×
  • Create New...