Script para excluir o perfil de usuários com apenas um mês de perfil com o próprio Registro, mas deve deixar o perfil atual intacto

1

primeiro, sry, se este post for repetitivo para a exclusão do perfil.

Se você tiver um link correto, poste-o abaixo ou o próprio script.

Pergunta: Como eu tenho um monte de computadores com o Windows 7 (2400 sistemas) como o sistema operacional neles e como os usuários continuam mudando ou mudando de lugar de um PC para outro PC e gerenciando o sistema ou a unidade C para o desempenho consistente do sistema ou a liberação de espaço é uma tarefa desafiadora.

Eu gostaria de ter um script que excluísse apenas o perfil antigo (sem meses), bem como o registro em si, mas que também mantivesse o perfil atual instancue o registro.

Eu encontrei o script em algum fórum que faz o trabalho, mas não da maneira correta, pois exclui todo o perfil e exclui o administrador, o administrador, etc. no script, mas não é possível excluir o perfil antigo de uma determinada hora ou data período.

Novamente, desculpe se este post parece uma bagunça, mas ajuda é apreciada

    
por Samuel Fernandes 10.10.2014 / 13:46

1 resposta

2

Se as suas estações de trabalho estiverem associadas ao domínio e você tiver acesso para modificar políticas de grupo, tudo isso poderá ser especificado no GPO;

Computer Configuration | Policies | Administrative Templates | System | User Profiles

Alternativamente, você deve olhar para delprof2 ( link ), isso fará o que você precisa.

É uma ferramenta de linha de comando (para que você possa fazer o script) e usa um parâmetro para especificar quantos anos um perfil deve ter antes de ser qualificado para exclusão. Por exemplo, este comando excluirá todos os perfis locais com mais de 60 dias;

delprof2 /d 60

Ele também tem mais usos, como excluir apenas perfis que são caches locais de perfis móveis (ignorando perfis locais verdadeiros), excluindo perfis remotamente (para que você possa fazer script disso para ser executado em um servidor e segmentar cada uma de suas estações de trabalho por exemplo), correspondência de padrões para inclusão / exclusão, assim você pode dizer para ignorar perfis específicos (por exemplo, todas as contas que começam com john *).

Também é gratuito em muitos casos (cito)

"Delprof2 is free for private use, for educational and non-profit organizations. All other organizations may use Delprof2 for free, too, if they allow us to publish their name. Otherwise a commercial license must be purchased."

Isso ajuda?

Editar:

Veja como você parece querer uma opção adicional, tente este script ou uma modificação dele. Eu encontrei neste fórum ( link ) e é totalmente não testado; Use por sua conta e risco. Você provavelmente desejará remover a linha MsgBox e o período não utilizado poderá ser ajustado alterando o valor da variável 'intMaxProfileAge'

On Error Resume Next

Dim objFSO, objWMIService, strComputer, strFilter, intMaxProfileAge, colProfiles, objProfile, dtmLastUseTime

strComputer = "."
strFilter = "SID Like ""S-1-5-21%"" And Not LocalPath Like ""%Administrator%"""
intMaxProfileAge = 14

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objWMIService = GetObject("Winmgmts:\" & strComputer & "\root\cimv2") 
Set colProfiles = objWMIService.ExecQuery("Select * From Win32_UserProfile Where " & strFilter)

If Not colProfiles Is Nothing Then
    For Each objProfile in colProfiles
        dtmLastUseTime = CDate(Mid(objProfile.LastUseTime, 7, 2) & "/" & Mid(objProfile.LastUseTime, 5, 2) & "/" & Left(objProfile.LastUseTime, 4) & " " & Mid (objProfile.LastUseTime, 9, 2) & ":" & Mid(objProfile.LastUseTime, 11, 2) & ":" & Mid(objProfile.LastUseTime, 13, 2))
        MsgBox DateDiff("d", dtmLastUseTime, Date)
        If DateDiff("d", dtmLastUseTime, Date) > intMaxProfileAge Then
            Err.Clear

            objProfile.Delete_

            If Err.Number = -2147024809 Then
                'Profile in use, skipping.
            ElseIf Err.Number = -2147024751 Then
                objFSO.DeleteFolder objProfile.LocalPath, True
            ElseIf Err.Number <> 0 Then
                '"Error: " & Err.Number & ": " & Err.Description
            Else
                'Profile Deleted.
            End If
        End If
    Next
End If
    
por 10.10.2014 / 15:02