2015-01-27 3 views
0

Я знаю, что есть и другие темы на здесь с одинаковой целью, но не думаю, что есть один в формате файл пакетного так что здесь идет:Удаления Родителя реестр на основе значения

Я сделал простой запрос рег в пакете, найти раздел реестра, содержащий профиль пользователя.

set /p username= please enter the user name ? 
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /f "C:\users\%username%" /d /s /e 

это находит точный ключ я ищу что

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProfileList \ S-1-5-21-1908996837-4138030977- 3423296585-49875

затем я хочу, чтобы удалить этот ключ и все, что в нем, но вывод команды рег запроса, на самом деле дает 3 разные результаты, что делает его трудным для меня, чтобы использовать в течение петля.

Вот что он на самом деле выводит в текстовый файл

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProfileList \ S-1-5-21-1908996837-4138030977-3423296585-49875

ПрофильImagePath REG_EXPAND_SZ C: \ Users \ Mr Smith

Конец поиска: найдено 1 совпадений.

Так что следующая строка у меня есть цикл, который, очевидно, основываясь на выходе выше команды, не совсем делать то, что я хочу

for /F %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /f "C:\users\%username%" /d /s /e') do reg delete %%a /f 

Таким образом, конечная цель состоит в том, чтобы выполнить это

reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-21-1908996837-4138030977-3423296585-49875" /va /f 

, но, очевидно, не зная, что и ввод в полном имени ключа

Благодарности

+0

Во-первых, используйте переменную, отличную от '% username%'. Это зарезервированная переменная, содержащая имя пользователя текущего пользователя. Далее, это меня заставляет нервничать. В HKU и каталогах в C: \ Users вы оставите группу сиротских профилей. Лучше всего использовать диалог, полученный из 'rundll32.exe sysdm.cpl, EditUserProfiles', чтобы удалить профили пользователей. – rojo

+0

спасибо за подсказку rojo, я использовал только это имя переменной для удобства примера здесь, но хороший момент. Так можно ли каким-либо образом установить переменную как имя учетной записи пользователя, а затем перенаправить эту переменную в диалог edituserprofiles? Другими словами, не нужно вообще использовать диалог и сделать это автоматически? –

ответ

0

Net User Инструмент командной строки может помочь системным администраторам добавлять, удалять или изменять учетные записи пользователей ...

Net User /? выхода слишком лаконичный, так learn more

0

К сожалению врезаться старый пост, но я имел тот же Q. Вот ваш A:

set /p targetUser=Please enter the user name: 

for /F "tokens=*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /f "C:\users\%targetUser%" /d /s /e ^| FIND /I "HKEY" ') do set "userRegKey=%%a" 

reg delete "%userRegKey%" /va /f 
Смежные вопросы