Вот полезный скрипт, который автоматически удалит ВСЕ пользовательские профили на компьютере с Windows Server 2008 / R2.
ПРЕДУПРЕЖДЕНИЕ!
Это опасная операция, предназначенная для использования администратором, который должен выполнить полную очистку; например, в конце семестра.
Заметка:
Для целей этого примера мы будем использовать следующий путь для файлов сценария:
D: \ Scripts
- Скопируйте приведенный ниже код в блокнот и сохраните его как delete_profiles.vbs в D: \ Scripts
- Создайте новый файл блокнота и скопируйте следующую строку:
cscript.exe «D: \ Scripts \ delete_profiles.vbs SRVNAME»> «D: \ Scripts \ profile_delete.txt»
- Где SRVNAME — это имя сервера, на котором вы хотите удалить профили. Перенаправление (>) в этой командной строке действует для создания (или добавления) текстового файла с именем profile_delete.txt это будет действовать для регистрации удалений.
- Сохранить как delete_all_profiles.bat и сохранить его в D: \ Scripts
- Создать запланированное задание и запустить delete_all_profiles.bat в нужное время.
Я предлагаю использовать пакетный файл и настроить запланированное задание, так как оно позволяет запускать сценарий с необходимыми разрешениями.
Вот код для файла скрипта: delete_profiles.vbs
При ошибке возобновить следующее
args = WScript.Arguments.Count
Если аргументы 1, то
WScript.Echo "использование: delete_profiles SVRNAME"
WScript.Echo "пример (для удаленных профилей): cscript.exe delete_profiles SOMESERVER"
WScript.Echo "пример (для локальных профилей): cscript.exe delete_profiles."
WScript.Quit
End If
strComputer = WScript.Arguments.Item (0)
Установите objWMIService = GetObject ("winmgmts: \\" strComputer "\ Корень \ cimv2")
Установить colProfiles = objWMIService.ExecQuery («Выбрать * из Win32_UserProfile»)
Wscript.Echo "==" Wscript.Arguments.Item (0) "==" vbNewLine
Для каждого объекта в профиле
Установите objSID = objWMIService.Get ("Win32_SID.SID = '" objProfile.SID "'")
Если (objSID.ReferencedDomainName = "ДОМЕННОЕ ИМЯ"), то
Если нет ((objSID.AccountName = "ИМЯ ПОЛЬЗОВАТЕЛЯ ДЛЯ ИСКЛЮЧЕНИЯ") Или (Слева (objSID.AccountName, 2) = "ИМЯ ИМЕНИ ПОЛЬЗОВАТЕЛЯ ИСКЛЮЧИТЬ")) Тогда
Установите objUserProfile = GetObject ("winmgmts: {impersonationlevel = impersonate}! \\" _
strComputer "\ Корень \ cimv2: Win32_UserProfile." _
"SID = '" objProfile.Sid "'")
objUserProfile.Delete_
Wscript.Echo objSID.AccountName ";" objSID.ReferencedDomainName ";" objProfile.LocalPath "-" «УДАЛИТЬ»
End If
End If
следующий
ПРИМЕЧАНИЯ: В строка 19 Вы должны указать доменное имя, которое будет использоваться в сценарии и в строка 20 Вы можете указать учетные записи пользователей, которые не должны быть удалены, например учетные записи администратора.
Предоставлено KresimiK