安装项列表由 VMware AirWatch Admin Assistant 为某些类型的安装项 (.dmg) 生成,但不适用于 Apple 软件包(.pkg 或 .mpkg)。您可以生成(或修改)此列表,这是确定安装状态的最灵活机制。

安装列表可以包含任意数量的项目,例如应用程序、首选项窗格、框架或其他包样式项、info.plist、简单目录或文件。您可以使用任何项目组合来帮助 Munki 确定项目是否已安装。

为 Firefox 6.0 自动生成的“安装”列表示例

<key>installs</key><array><dict><key>CFBundleIdentifier</key><string>org.mozilla.firefox</string><key>CFBundleName</key><string>Firefox</string><key>CFBundleShortVersionString</key><string>6.0</string><key>minosversion</key><string>10.5</string><key>path</key><string>Applications/Firefox.app</string><key>type</key><string>application</string></dict></array>

要确定 Firefox 6 是否已安装,Munki 会检查是否存在 CFBundleIdentifier 为 org.mozilla.firefox 的应用程序,如果找到,则验证其版本 (CFBundleShortVersionString) 是否至少为 6.0。如果 Munki 找不到应用程序或其版本低于 6.0,它会将 Firefox-6.0 视为未安装。安装列表可以包含多个项目。如果有任何项目缺失或版本较旧,则该项目将被视为未安装。您可以使用以下 pkginfo 手动生成要添加到安装列表的项目。

        /Library/Application\ Support/AirWatch/Data/Munki/bin/makepkginfo -f /Library/Interne
        t\ Plug-Ins/Flash\ Player.plugin
      
        <?xml version="1.0" encoding="UTF-8"?>
        <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/Prope
        rtyList-1.0.dtd">
        <plist version="1.0">
        <dict>
        
          <key>installs</key>
          <array>
           <dict>  <key>CFBundleShortVersionString</key> <string>10.3.183.5</string> <key>path</key> <string>/Library/Internet Plug-Ins/Flash Player.plugin</string> <key>type</key> <string>bundle</string>  </dict> 
          </array>
        
        </dict>
        </plist>
      

请复制并粘贴整个安装键和值,或者复制 dict 值并将其添加到 pkginfo 文件中的现有安装列表。Munki 将检查是否存在 /Library/Internet Plug-Ins/Flash Player.plugin,如果找到,则检查其版本。如果版本低于 10.3.183.5,则该项目将被视为未安装。您可以为任何文件系统项生成安装项,但 Munki 仅知道如何确定包含 Info.plist 或具有版本信息的 version.plist 的包样式项的版本。

对于其他文件系统项,Munki 只能确定非包目录是否存在,也可以计算校验和(对于文件)。对于带有校验和的文件,如果磁盘上文件的校验和与 pkginfo 中的校验和不匹配,则测试将失败(因此,该项目将被视为未安装)。

        <key>installs</key>
        <array>
        
          <dict>
           <key>md5checksum</key> <string>087fe4805b63412ec3ed559b0cd9be71</string> <key>path</key> <string>/private/var/db/dslocal/nodes/MCX/computergroups/loginwindow.plist</s tring> <key>type</key> <string>file</string> 
          </dict>
        
        </array>
      

如果您希望 Munki 仅检查文件是否存在而并不关注其内容,请在安装项信息中移除生成的 md5checksum 信息。请确保提供的路径完好无损。

        <key>installs</key>
        <array>
        
          <dict>
          <key>path</key>
          <string>/private/var/db/dslocal/nodes/MCX/computergroups/loginwindow.plist
          </string>
          <key>type</key>
           <string>file</string> 
          </dict>
        
        </array>