Lo script As Updater (SAU) è necessario se un file script deve apportare modifiche al sistema solidificato. È necessario modificare il file solidificato ed eseguire file non solidificati. Qualsiasi script configurata come programma di aggiornamento, non ottiene il privilegio di aggiornamento
in alcuni casi.
Esempio e spiegazione:
I file di script non vengono eseguiti come altri eseguibili o binari. Vengono eseguiti attraverso il processo di interpretariato (binario) che comprende i comandi o gli script nel file. Per esempio
cmd.exe e
explorer.exe i processi di interpretariato per
.bat e
.cmd file e
cscript.exe è un processo di interpretariato per i file. vbs.
È possibile che gli utenti non vedano direttamente questa differenza perché Windows ne prende cura mediante la mappatura del script all'interprete necessario.
Ad esempio, supponiamo che tre file bat
test1.bat, test2.bat e
test3.bat vengono creati con il contenuto come indicato di seguito:
test1. bat:
echo "11111"
test2. bat:
echo "22222"
test3. bat:
copia/y test1. bat test2. bat
Solidifica tutti i file e crea
test3.bat come programma di aggiornamento. Se
test3.bat viene eseguito utilizzando un doppio clic o
cmd /c test3.bat, Copia riuscita. Se il prompt dei comandi viene eseguito come
> test3. bat, copia non riuscita.
Se si esaminano i registri generati da vicino per entrambi i casi:
Quando lo script viene eseguito nello stesso processo:
Nell'esempio, lo script viene eseguito direttamente dal prompt dei comandi come
> script_name.
L'evento riportato di seguito viene visualizzato nei registri di solidcore:
Quando lo script viene eseguito dallo stesso processo
MACC non consente al processo di modificare il file solidificato
test2.bat, poiché dopo l'immissione di un utente in un processo, l'autorizzazione dell'Updater non deve essere consentita a tale processo. Non è possibile determinare se è in esecuzione un script o se l'utente fornisce direttamente un comando. Quindi questo tipo di esecuzione è bloccata a causa di problemi di sicurezza.
Quando lo script viene eseguito in un nuovo processo:
Nell'esempio, fare doppio clic o Esegui
script_name cmd/c dal prompt dei comandi per eseguire il script.
L'evento riportato di seguito viene visualizzato nei registri di solidcore (s3diag. log):
Quando lo script viene eseguito un nuovo processo:
MACC consente al processo di modificare il file solidificato solo in quel ciclo di vita specifico del processo. Fare doppio clic su "
cmd /c script_name"entrambi riproducono un nuovo processo per eseguire il script. E, a questo processo viene concessa l'autorizzazione di aggiornamento fino alla relativa risoluzione. Queste autorizzazioni non vengono passate ai processi figlio e, a differenza dei normali processi di aggiornamento. Viene visualizzato un file di registro modificato come mostrato nel registro riportato sopra che contiene l'ID del workflow utilizzato per modificare il file solidificato.