У кого-либо есть сценарий для удаления определенного локального профиля окон?

monit является большим в этом случае - это работает на localhost, таким образом, Вам не нужно сетевое соединение для перезапуска демона (в случае, если это перестало работать, или демон ответственен за сети). Это также имеет маленькое место в системе, и можно использовать его для контроля другие демоны/диск располагают с интервалами/и т.д. также.

Создайте запустить/остановить сценарий (подобный тем, которые в /etc/init.d/ и создайте символьные ссылки для него в runlevels, который Ваша система использует для нормального функционирования, гарантируя, что Ваш демон запустит в перезагрузке и остановке на завершении работы правильно. Если у Вашего демона нет pidfile, создайте использование того start-stop-daemon сценарий.

После этого, установка monit и создайте конфигурацию для своего демона, чего-то вроде этого:

check process daemond with pidfile /var/run/daemond.pid
    start program "/etc/init.d/daemond start"
    stop program "/etc/init.d/daemond stop"
    if failed port 1234 type TCP for 5 times within 10 cycles then restart
    if 3 restarts within 5 cycles then alert

Эта конфигурация гарантирует, что, если демон прекращает отвечать на tcp порте 1234, или прекратит работать, это будет перезапущено с помощью init сценария. monit также отправит Вам предупреждение по электронной почте или сделает другие вещи, в зависимости от того, как Вы настраиваете ее. Просто выезд monit(1) страница справочника.

6
задан 9 October 2009 в 22:09
8 ответов

Powershell делает это довольно просто, если вы используете компьютер с Windows 7 или Windows 2008.

http://techibee.com/powershell/powershell-script-to-delete-windows -user-profiles-on-windows-7windows-2008-r2 / 1556

1
ответ дан 3 December 2019 в 00:40

Я записал этот сценарий VB для подобного вопроса на Отказе сервера. Это циклически повторится через каждый Профиль на целевой машине и предложит Вам (один за другим), если Вы захотите удалить профиль. Это делает это WMI Win32_UserProfile использования, таким образом, это будет чистое удаление.

Это попросит у Вас FQDN целевой машины. Если Вы получаете ошибки полномочий, изменяете Имя пользователя и Пароль для отражения учетной записи, которая имеет Локального Администратора provs на целевой машине.

Option Explicit
On Error Resume Next

Dim strComputer
Dim objWMIService
Dim propValue
Dim objItem
Dim SWBemlocator
Dim UserName
Dim Password
Dim colItems
Dim strMessage
Dim deleteResponse

strComputer = ""
UserName = ""
Password = ""
strMessage = ""

strComputer = InputBox("Please enter the FQDN of the new computer:")

If strComputer = "" Then
    WScript.quit
End If

If Not Ping (strComputer) Then
    MsgBox "The computer (" + strComputer + ") is not responding to ping - exiting"
    WScript.quit
End if

Set SWBemlocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = SWBemlocator.ConnectServer(strComputer,"root\CIMV2",UserName,Password)
Set colItems = objWMIService.ExecQuery("Select * from Win32_UserProfile",,48)
For Each objItem in colItems
    strMessage = ""
    If not objItem.LastDownloadTime = "" Then 
        strMessage = strMessage + "LastDownloadTime: " & left(objItem.LastDownloadTime,8) + Chr(10) + Chr(13)
    End If

    If Not objItem.LastUploadTime = "" Then
        strMessage = strMessage + "LastUploadTime: " & left(objItem.LastUploadTime,8) + Chr(10) + Chr(13)
    End if

    if not objItem.LastUseTime = "" then
        strMessage = strMessage + "LastUseTime: " & left(objItem.LastUseTime,8) + Chr(10) + Chr(13)
    End If

    If Not objItem.Loaded  = "" Then
        strMessage = strMessage + "Loaded: " & objItem.Loaded + Chr(10) + Chr(13)
    End If

    If not objItem.LocalPath = "" then
        strMessage = strMessage + "LocalPath: " & objItem.LocalPath + Chr(10) + Chr(13)
    End If

    if not objItem.RefCount = "" then
        strMessage = strMessage + "RefCount: " & objItem.RefCount + Chr(10) + Chr(13)
    End If

    if not objItem.RoamingConfigured = "" then
        strMessage = strMessage + "RoamingConfigured: " & objItem.RoamingConfigured + Chr(10) + Chr(13)
    End If

    if not objItem.RoamingPath = "" then
        strMessage = strMessage + "RoamingPath: " & objItem.RoamingPath + Chr(10) + Chr(13)
    End If

    if not objItem.RoamingPreference = "" then
        strMessage = strMessage + "RoamingPreference: " & objItem.RoamingPreference + Chr(10) + Chr(13)
    End If

    if not objItem.SID = "" then
        strMessage = strMessage + "SID: " & objItem.SID + Chr(10) + Chr(13)
    End If

    if not objItem.Special = "" then
        strMessage = strMessage + "Special: " & objItem.Special + Chr(10) + Chr(13)
    End If

    if not objItem.Status = "" then
        strMessage = strMessage + "Status: " & objItem.Status + Chr(10) + Chr(13)
    End If

    strMessage = strMessage + Chr(10) + Chr(13) + Chr(10) + Chr(13) + "Do you wish to delete this profile?"

    deleteResponse = MsgBox (strMessage,35,"Profile Found")

    Select Case deleteResponse
        Case 6
                Err.Clear
                objItem.Delete_
                If Err.Number = 0 Then 
                        MsgBox("Profile " & objitem.localpath & " on " & strComputer & " deleted")
                Else
                        MsgBox("Profile " & objitem.localpath & " on " & strComputer & " NOT deleted - Is user logged in?")             
                End If
    End Select

Next

Function Ping(strHost)

    dim objPing, objRetStatus

    set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery _
      ("select * from Win32_PingStatus where address = '" & strHost & "'")

    for each objRetStatus in objPing
        if IsNull(objRetStatus.StatusCode) or objRetStatus.StatusCode<>0 then
                Ping = False
        else
            Ping = True
        end if
    Next
End Function

Это не работает с помощью того же рабочего процесса, который Вы детализировали (это запрашивающий имя пользователя сначала). Проблема с этим подходом состоит в том, что Win32_UserProfile не содержит Имя пользователя, только thr SID. Когда пользователь входит в машину, SID используется для решения, какой профиль является корректным. Это предотвращает проблемы с переименованием учетные записи пользователей в AD.

2
ответ дан 3 December 2019 в 00:40
  • 1
    Спасибо, который похож на что-то, что может работать с. Кажется, нуждается в некотором обновлении хотя, я don' t находят класс Win32_UserProfile. У меня действительно есть другие как Win32_UserAccount и NetworkLoginProfile поэтому, когда я бездельничаю немного, которое начинает отображать SIDs в подсказке, но затем I' m в цикле, I' ll смешивают с ним. У кого-либо есть powershell подобная версия? –  Jordan W. 10 October 2009 в 00:58

Пользовательский улей расположен в соответствии с их пользовательским каталогом (NTUSER.DAT), настолько удаляющий каталог с rmdir /s /q {username} должен быть достаточным. Единственная часть, которая не была бы удалена, находится под списком профиля в реестре HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList но все, что делает, отобразить SID на местоположение профиля.

Если пользователь войдет в систему, и каталог не существует, то он будет создан снова.

К сожалению, не имея их поднимают себя как администраторы, они не смогут удалить профили пользователей.

Пакетный файл:

set /p USERTODEL=Enter the username to delete: 
set USERTODEL=C:\Users\%USERTODEL%
if exist "%USERTODEL%" rmdir /s /q %USERTODEL%
-2
ответ дан 3 December 2019 в 00:40
  • 1
    Ваш сценарий won' t работают если папка профиля isn' t имя пользователя. Для exemple, если у пользователя с тем же именем пользователя, но другим SID уже есть подключение в прошлом, профиль будет сохранен в C:\Users\%domain%. % имени пользователя % или что-то подобное. –  Benoit 9 October 2009 в 23:54

tsprofilecleaner является свободным gui, который может удалить профиль из списка серверов: текст ссылки

1
ответ дан 3 December 2019 в 00:40

Я думаю, что Консультирование Cntrl+Alt+Del в Австралии разработало инструмент, который мог бы помочь Вам. Это назвало REMPROF и с этой командой, можно просто удалить единственный профиль от сервера. Конечно, необходимо было бы заменить фактическим именем пользователя в команде:

remprof USERNAME

Я не полагаю, что можно выполнить это удаленно с другого сервера, и Вы не можете выполнить это без административных прав, к сожалению. Я не полагаю, что Ваш персонал поддержки сможет управлять пользователями и профилями пользователей на любом сервере, не будучи членом локальной администраторской группы.

Во всяком случае можно загрузить REMPROF и много других полезных инструментов с веб-сайта Консультирования Cntrl+Alt+Del здесь:

http://www.ctrl-alt-del.com.au/CAD_TSUtils.htm

Я надеюсь, что это помогает.

Alicia

1
ответ дан 3 December 2019 в 00:40

Хорошо вместо этого мы решили, что был отрицательный результат достаточно причины сохранить любые профили на серверах Citrix (они бродят так или иначе с любыми реальными перенаправленными данными), таким образом, мы устанавливаем политику удалить профиль, когда пользователь выходит из системы. спасибо все для предложений.

1
ответ дан 3 December 2019 в 00:40

Мы используем Сервис Очистки Hive Профиля пользователя + маленький сценарий, которые удаляют весь Профиль пользователя, когда сервер запускается. Работа goood

0
ответ дан 3 December 2019 в 00:40

Вы можете использовать delprof или remprof для удаления профиля. Вы можете создать сценарий из этих команд или использовать tsprofcleaner .

-1
ответ дан 3 December 2019 в 00:40

Теги

Похожие вопросы