我有一个具有以下属性的部署types:
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与用户上下文
这是很奇怪的,因为我select了“为系统安装”。
谷歌search显示一些猜测logging是不正确的:
为什么它的价值,我注意到,appenforce.log似乎总是在用户上下文中说,即使它没有。
我发现了一些其他类似的评论,但没有find任何明确的参考。 这给我留下了以下问题:
AppEnforce.log是否真的以用户的身份login上下文,即使它作为系统执行?
TL; DR:AppEnforce.log确实错误地logging了上下文(至less对于“脚本安装程序”技术)。
我创build了一个具有以下属性的部署types:
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
创build一个名为script-install-test-YYYY-MM-DD__HH-MM-SS.log
的日志文件。 该脚本是在这篇文章的结尾。
然后,我部署了该部署types,并观看了AppEnforce.log
和script-install-test-X.log
。
我在AppEnforce.log
find以下条目:
执行命令行:“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安装程序技术的testing。 但是,鉴于脚本安装程序技术的上下文有时是错误的,写入AppEnforce.log
的上下文可能被认为对于所有的部署types都是不可靠的,而不考虑技术。
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) }