AppEnforce.log действительно регистрирует контекст, используемый для установки неправильно?

У меня есть тип развертывания со следующими атрибутами:

Technology: MSI
Installation behavior: Install for system
Logon requirement: Whether or not a user is logged on
Installation program visibility: Hidden

Когда msiexec выполняется клиент, следующую запись показывают в AppEnforce.log:

Выполнение Командной строки: "C:\WINDOWS\system32\msiexec.exe"/i "AppleApplicationSupport.msi"/qn с пользовательским контекстом

Это странно, так как я выбрал "Установку для системы".

Поиск с помощью Google показывает некоторое предположение, что вход является неправильным:

если это имеет значение я заметил, что в appenforce.log, кажется, всегда говорится в пользовательском контексте, даже когда это не.

Я нашел некоторые другие подобные комментарии, но не нашел категорической ссылки. Это оставляет меня со следующими вопросами:

AppEnforce.log действительно регистрирует контекст как пользователя, даже когда он выполняется как система?

2
задан 27 July 2015 в 22:16
1 ответ

TL; DR: AppEnforce.log действительно неправильно регистрирует контекст (по крайней мере, для технологии «Установщик сценариев»).

Тест

Я создал тип развертывания со следующими атрибутами:

Technology: Script Installer
Installation behavior: Install for system
Logon requirement: Whether or not a user is logged on
Installation program visibility: Hidden
Installation program: powershell .\Install-Application.ps1

Install-Application.ps1 создает файл журнала с именем script-install-test-YYYY-MM-DD__HH-MM -SS.log . Этот сценарий находится в конце этой публикации.

Затем я развернул этот тип развертывания и просмотрел AppEnforce.log и script-install-test-X.log .

Результаты

Я нашел следующую запись в AppEnforce.log :

Выполнение командной строки: «C: \ WINDOWS \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe». \ Install-Application.ps1 с контекстом пользователя

В течение секунд после этого script-install-test-X.log был записан в папку script-install-test-SYSTEM . Суффикс SYSTEM указывает на то, что сценарий был запущен как SYSTEM.

Заключение

Для технологии «установщик сценария» контекст записывается в сообщения AppEnforce.log стиля

Выполнение командной строки: «C: \ WINDOWS \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe». \ Install-Application.ps1 с пользовательским контекстом

может неправильно записываться как «пользовательский контекст», даже если команда строка выполняется как системный контекст.

Как насчет технологии установщика MSI?

Я не проводил тест для технологии установщика MSI. Однако, учитывая, что контекст иногда неверен для технологии установщика скриптов, контекст, записанный в AppEnforce.log , вероятно, следует рассматривать как ненадежный для всех типов развертывания, независимо от технологии.

Install-Application.ps1

function Write-EnvToLog
{
    $appName = 'script-install-test'

    $logFolderPath = "c:\$appName-$([System.Environment]::UserName)"

    if ( -not (Test-Path $logFolderPath -PathType Container) )
    {
        New-Item -Path $logFolderPath -ItemType Directory | Out-Null
    }

    if ( -not (Test-Path $logFolderPath -PathType Container ) )
    {
        return
    }

    $logFileName = "$appName`__$((Get-Date).ToString("yyyy-MM-dd__HH-mm-ss")).txt"

    $fp = "$logFolderPath\$logFileName"

    Get-ChildItem Env: | Out-File $fp | Out-Null

    return $true
}

try
{
    if ( Write-EnvToLog ) { "Complete!" }
    [System.Environment]::Exit(0)
}
catch
{
    [System.Environment]::Exit(1000)
}
3
ответ дан 3 December 2019 в 10:42

Теги

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