如何用AppLocker搭建基础Kiosk?解决收集应用生成Intune部署XML脚本问题
解决AppLocker策略生成失败的问题
问题根源
New-AppLockerPolicy的-FileInformation参数不支持直接读取纯文本路径文件,它需要的是通过Get-AppLockerFileInformation cmdlet生成的文件信息对象集合,你之前的txt文件只是路径列表,参数类型不匹配导致命令执行失败。
修正后的实现步骤
1. 获取当前运行应用的文件信息对象
先收集当前运行中应用的路径,转换成AppLocker可识别的对象:
$runningApps = Get-Process | Where-Object { $_.Path } | Select-Object -ExpandProperty Path | Sort-Object -Unique $fileInfo = Get-AppLockerFileInformation -Path $runningApps
2. 添加额外允许的应用(安全应用+受限Edge)
手动补充你需要允许的安全应用路径,以及Edge浏览器的默认安装路径(若有多个版本可使用通配符):
# 示例:替换为你的安全应用路径,保留Edge路径(可根据实际安装位置调整) $additionalApps = @( "C:\Path\To\Your\SecurityTool.exe", "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" ) $additionalFileInfo = Get-AppLockerFileInformation -Path $additionalApps # 合并所有文件信息对象 $allFileInfo = $fileInfo + $additionalFileInfo
3. 生成AppLocker XML策略
用合并后的文件信息对象生成可用于Intune部署的XML:
New-AppLockerPolicy -FileInformation $allFileInfo -RuleType Executable -User Everyone -OutputFile "C:\AppLockerPolicy.xml"
额外注意事项
- 若要对Edge做严格网站访问限制,需配合Intune的Edge浏览器配置文件实现,AppLocker仅能控制程序运行权限。
- 生成策略前,确保测试环境中已运行所有基础必要应用(如系统进程
explorer.exe、svchost.exe等,部分进程可能因权限问题无法通过Get-Process获取路径,需手动补充到$additionalApps列表)。 - 导出的XML可直接上传至Intune,通过设备配置文件中的AppLocker策略模块完成部署。
内容的提问来源于stack exchange,提问作者Billy Reynolds
相关产品推荐
相关产品推荐

