Alguns aplicativos alteram acidentalmente as permissões na pasta Todos os Usuários / Dados de Aplicativos em cerca de 500 PCs - Como posso restaurá-los para o padrão do Windows?

2

Durante um teste beta, um cliente instalou algum software nosso que acidentalmente modificou as permissões da pasta All Users/Application Data em cerca de 500 computadores. Eles implantaram o software usando o Altiris. As permissões foram alteradas e começaram a causar problemas em aplicativos como o software antivírus que queria gravar dados nessa pasta.

A alteração de permissão não foi recursiva. Como teste, criamos uma versão do software que eles poderiam instalar como um patch que deu ao usuário "todos" controle total. Isso resolveu os problemas com o software antivírus, mas agora as permissões não são seguras.

No meu criador da ferramenta MSI (Instalador Avançado), posso chegar muito perto de replicar as configurações padrão do Windows, com a exceção sendo a entrada indicada pela seta verde abaixo.

texto alternativo http://www.blakerobertson.com/storage/perm/ApplyOnlyToFolders.png

Algum conselho dos administradores do sistema sobre como eles iriam redefinir as permissões? O cliente pode usar o software de gerenciamento Altiris para executar uma espécie de utilitário se alguém souber de um.

    
por blak3r 09.10.2009 / 01:24

3 respostas

2

Tente xcacls.vbs ( link ). É um utilitário de linha de comando VBScript gratuito da Microsoft que é semelhante ao comando cacls, mas com mais opções. Ele tem a capacidade de aplicar permissões mais refinadas do que os cacls, mas leia as instruções (exibidas digitando o comando sem quaisquer opções: cscript xcacls.vbs) com cuidado; eles são bem complexos! tem a capacidade de aplicar permissões apenas em "Esta pasta e subpastas"; Eu usei isso antes para fazer exatamente isso.

Se você estiver executando o Windows Vista ou posterior, o utilitário icacls incluído ( link ) pode ser mais apropriado.

Depois de criar o comando adequado (usando qualquer ferramenta), coloque-o em um script * .cmd e adicione o script a um Objeto de Diretiva de Grupo para aplicá-lo às máquinas por meio da Diretiva de Grupo. Note que você também precisará carregar xcacls.vbs de alguma forma em cada máquina se você seguir essa rota. Isso pode ser feito incluindo um comando para baixar o script xcacls.vbs de um compartilhamento de arquivo e salvá-lo localmente no mesmo script * .cmd onde reside o comando de configuração de permissão (ou você pode tentar executá-lo diretamente de um compartilhamento de arquivo ).

    
por 09.10.2009 / 06:52
1

Você pode corrigir isso usando um GPO facilmente.

Se eles quiserem usar o Altiris, configure um trabalho para usar cacls.exe para redefinir os direitos na pasta.

    
por 09.10.2009 / 03:21
1

Aqui está o código resultante baseado na sugestão de Jay Michaud.

Acabei de adicionar uma ação personalizada ao meu instalador. Isso correu depois que os arquivos foram copiados. Se você fizer isso, você vai querer este código abaixo e você vai querer canalizar como argumentos: APPDIR | CommonAppDataFolder. (sim, isso é um tubo delimitando-os)

dim XCACLS_EXEC, APPDATAFOLDER, WindowStyle

' COMMENT OUT THIS SECTION IF NOT RUNNING AS AN INSTALLER CUSTOM ACTION,
' SET XCACLS_EXEC and APPDATAFOLDER variables some other way.
actdata = Session.Property("CustomActionData")
tokens = Split( actdata, "|", -1)
XCACLS_EXEC = tokens(0) & "XCACLS.vbs"
APPDATAFOLDER = tokens(1)

WindowStyle=0 '0 for hide, 1 for show.
set objShell = CreateObject("WScript.Shell")

'MsgBox  XCACLS_EXEC & " " & APPDATAFOLDER & " " & Session.Property("CustomActionData")

objShell.Run "cscript """ & XCACLS_EXEC & """ """ & APPDATAFOLDER & """ /SPEC C /G users:W", WindowStyle, True
objShell.Run "cscript """ & XCACLS_EXEC & """ """ & APPDATAFOLDER & """ /E /G users:X", WindowStyle, True
objShell.Run "cscript """ & XCACLS_EXEC & """ """ & APPDATAFOLDER & """ /E /G ""Power Users"":M", WindowStyle, True
objShell.Run "cscript """ & XCACLS_EXEC & """ """ & APPDATAFOLDER & """ /E /G ""CREATOR OWNER"":F", WindowStyle, True
objShell.Run "cscript """ & XCACLS_EXEC & """ """ & APPDATAFOLDER & """ /E /G Administrators:F", WindowStyle, True
objShell.Run "cscript """ & XCACLS_EXEC & """ """ & APPDATAFOLDER & """ /E /G Administrator:F", WindowStyle, True
objShell.Run "cscript """ & XCACLS_EXEC & """ """ & APPDATAFOLDER & """ /E /G SYSTEM:F", WindowStyle, True
    
por 09.08.2011 / 04:14