Имея проблему с удалением профилей пользователей на сервере 2008, когда они становятся поврежденными, мы успешно сделали это сейчас, закрыв процесс, но он убил сервер и принудительно перезапустил его, что неплохо, поскольку мы тестируем этот сервер и на нем было только 2 пользователя. .
Есть ли безопасный / быстрый способ сделать это с помощью скрипта?
Вы можете сделать это в Powershell:
get-wmiobject win32_userprofile -filter "localpath='c:\\users\\BadProfile'" -computer MyServer | remove-wmiobject
Это должно сделать это за вас. Очевидно, замените «BadProfile» именем пользователя, а MyServer - именем вашего сервера. В -computer
switch позволяет при необходимости делать это удаленно. Вы можете опустить этот переключатель, если работаете с локальным профилем.
ntuser.dat
- файл куста реестра, который содержит записи реестра, связанные с профилем. В самом ядре файл открыт; улей должен быть выгружен, чтобы разблокировать файл. Вы можете заставить его разгрузиться reg unload
, хотя вам понадобится SID пользователя, владеющего профилем. Есть связанный улей "классов", который расширяется HKEY_CLASSES_ROOT
для каждого профиля.
reg unload HKEY_USERS\S-1-5-21-1555713158-3015222722-1959872020-2924
reg unload HKEY_USERS\S-1-5-21-1555713158-3015222722-1959872020-2924_Classes
Это относится ко всем версиям Windows, начиная с XP, и есть нечто подобное во всех предыдущих версиях WinNT.
В общем, лучше разрешить Windows выгружать сам профиль, удалив на него открытые ссылки.