O script como atualizador (SAU) será necessário se um script arquivo tiver que fazer alterações no sistema solidificado. É necessário modificar o solidificado arquivo e executar arquivos dessolidificado. Qualquer script que esteja configurado como um atualizador, não obtém o privilégio do atualizador
em alguns casos.
Exemplo e explicação:
Os arquivos de script não são executados como outros executáveis ou binários. Eles são executados por meio do processo de intérprete (binário) que compreende os comandos ou scripts no arquivo. Por exemplo,
cmd.exe em
explorer.exe são processos de intérprete para
.bat em
.cmd arquivos, e
cscript.exe é um processo de intérprete para arquivos. vbs.
Os usuários podem não ver diretamente essa diferença porque Windows cuida dela, mapeando o script para o intérprete necessário.
Por exemplo, suponha que os arquivos de três bat
test1.bat, test2.bat em
test3.bat são criadas com o conteúdo como abaixo:
Test1. bat:
Echo "11111"
test2. bat:
Echo "22222"
test3. bat:
Copy/y Test1. bat test2. bat
Solidificar todos os arquivos e tornar
test3.bat como um atualizador. Mesmo
test3.bat o é executado com um clique duplo ou
cmd /c test3.bat, a cópia foi bem-sucedida. Se a execução do prompt de comando for
> test3. bat, falha na cópia.
Se você observar os registros gerados atentamente para os dois casos:
Quando o script é executado no mesmo processo:
No exemplo, a script é executada diretamente a partir do prompt de comando, como
> script_name.
O seguinte evento é visto nos registros do Solidcore:
Quando o script é executado a partir do mesmo processo
O MACC não permite que o processo modifique o solidificado arquivo
test2.batPorque, depois de haver uma entrada de usuário em um processo, a permissão do atualizador não deve ser permitida a esse processo. Não é possível determinar se ele está executando uma script, ou se o usuário está diretamente dando a ele um comando. Portanto, esse tipo de execução é bloqueado devido a questões de segurança.
Quando o script é executado em um novo processo:
No exemplo, clique duas vezes ou execute
cmd/c script_name no prompt de comando para executar o script.
O seguinte evento é visto nos registros do Solidcore (s3diag. log):
Quando a script for executada em um novo processo:
O MACC permite que o processo modifique o solidificado arquivo somente nesse ciclo de vida específico do processo. Clique duas vezes e "
cmd /c script_name"as duas opções geram um novo processo para executar o script. Além disso, esse processo recebe permissão de atualizador até o término do encerramento. Essas permissões não são passadas para os processos filho, ao contrário dos processos regulares do Updater. Obtemos um registro modificado arquivo, conforme mostrado no log acima, que contém a ID do fluxo de trabalho usada para modificar o solidificado arquivo