使用适用于 Windows 桌面设备的传感器收集数据

Windows 桌面设备包含多个属性,例如硬件、操作系统、证书、修补程序、应用等。借助传感器,您可以使用 Workspace ONE UEM console 收集这些属性的数据。在 Workspace ONE Intelligence 和 Workspace ONE UEM 中显示数据。

Freestyle 功能

传感器是可用于 SaaS 环境的 Freestyle 功能。有关 Freestyle 的详细信息,请访问 Freestyle Orchestrator

在 UEM Console 中显示 Freestyle Orchestrator。

传感器说明

设备关联的属性数目众多。在跟踪不同应用、操作系统版本、修补程序以及其他不断变化的变量时,此数量会增加。可能很难跟踪所有这些属性。

默认情况下,Workspace ONE UEM 会跟踪有限数量的设备属性。但您可以使用传感器跟踪所需的特定设备属性。例如,您可以创建一个传感器来跟踪鼠标驱动程序的驱动程序详细信息、操作系统的保修信息以及您的内部应用的注册表值。使用传感器可以跨设备跟踪各种属性。在 Workspace ONE UEM console 主导航区中的资源下,找到传感器
显示传感器的导航路径

要处理来自 Workspace ONE UEM 的传感器数据,您可以使用 Workspace ONE Intelligence。Workspace ONE Intelligence 具有仪表板和报告,您可以在其中查看和分析传感器数据。两个系统之间使用端口 443 上的 SSL 通过安全 HTTP 进行数据传输。

重要提示:出于隐私原因,不允许将传感器分配给员工拥有的设备。

Workspace ONE UEM 选项

传感器触发器

在配置传感器时,您可以使用触发器来控制设备何时向 Workspace ONE UEM console 报告传感器数据。您可以根据 Windows 采样计划或特定设备事件(如登录和注销)来调度这些触发器。

添加了 PowerShell 脚本

您创建的 PowerShell 脚本将确定每个传感器的值。

设备详细信息 > 传感器

您可以在设备的设备详细信息页面中的传感器选项卡上查看单台设备的数据。

必须在数据中心内启用配置设备状态,以便 Workspace ONE UEM 可以在传感器选项卡上显示设备的传感器数据。Workspace ONE UEM 会为 SaaS 客户启用此配置。

注意:Workspace ONE UEM 致力于提供适用于内部部署环境的解决方案,但在创建此解决方案之前,传感器选项卡在内部部署的设备详细信息中不可用。

Workspace ONE Intelligence 选项

用于分析数据的报告和仪表板

如果您使用 Workspace ONE Intelligence 服务,则可以运行报告或创建仪表板以查看传感器中的数据并与之交互。运行报告时,请使用 Workspace ONE UEM 类别,设备传感器。您可以找到传感器,然后选择在报告和仪表板中进行查询。

用于控制数据访问的 RBAC

要控制谁有权访问传感器,请使用 Workspace ONE Intelligence 中的基于角色的访问控制 (RBAC) 功能。RBAC 将向管理员分配权限,因此请使用它们阻止或允许特定 Workspace ONE Intelligence 用户访问传感器数据。

加密

所有静态数据都会在 Workspace ONE Intelligence 中加密。有关详细信息,请参阅 VMware Cloud Trust Center 上的内容。此站点上有报告包含有关合规性证书、CAIQ、SOC2、SOC3 和其他安全性最佳实践的详细信息。

在脚本中使用 Write-Ouput 而不是 Write-Host

脚本中的 Write-Host 字符串会直接写入屏幕,而不会向 Workspace ONE Intelligence 报告传感器输出。但是,字符串 Write-Output 会写入到流水线中,因此请使用它而不是 Write-Host。将适用的脚本更新为 Write-OutputechoechoWrite-Output)的别名。

有关详细信息,请访问 Microsoft | Docs 中有关 Write-HostWrite-Output 的主题。

非工作脚本示例

  • 返回时区
  • 返回类型:字符串
$os=Get-TimeZone
write-host $os
  • Write-Host 不是脚本的输出,因此脚本没有输出。
  • Write-Host 直接写入到“屏幕”,而不是写入到流水线。

工作脚本示例

  • 返回时区
  • 返回类型:字符串
$os=Get-TimeZone
write-output $os

Workspace ONE Intelligence 文档

有关如何在 Workspace ONE Intelligence 中进行操作的详细信息,请访问 VMware Workspace ONE Intelligence 产品

Windows 桌面设备和传感器数据

传感器数据不会存储在 Windows 设备本地。传感器运行 PowerShell 代码,该代码会评估系统上的属性并将该数据报告给 Workspace ONE Intelligence。在完成评估和报告后,PowerShell 进程将终止。

传感器的 PowerShell 脚本示例

在为 Windows 设备创建传感器时,必须在 Workspace ONE UEM console 中上载 PowerShell 脚本或在配置过程中提供的文本框中输入 PowerShell 命令。这些命令将返回传感器属性的值。

以下示例包含所需的设置和代码。您还可以访问 https://code.vmware.com/samples?id=4930 以获取更多传感器示例。

注意:任何返回日期时间数据类型值的传感器均使用 ISO 格式。

检查剩余电量

  • 值类型:整数
  • 执行环境:用户

    $battery_remain=(Get-WmiObject win32_battery).estimatedChargeRemaining |
    Measure-Object -Average | Select-Object -ExpandProperty Averageecho $battery_remain
    

获取序列号

  • 值类型:字符串
  • 执行环境:用户

    $os=Get-WmiObject Win32_bios -ComputerName $env:computername -ea silentlycontinue
    echo $os.SerialNumber
    

获取系统日期

  • 值类型:日期时间
  • 执行环境:用户

    $date_current = get-Date -format s -DisplayHint Date
    echo $date_current
    

检查 TPM 是否已启用

  • 值类型:布尔
  • 执行环境:管理员

    $obj = get-tpm
    echo $obj.TpmReady
    

检查 TPM 是否已锁定

  • 值类型:布尔
  • 执行环境:管理员

    $obj = get-tpm
    echo $obj.LockedOut
    

获取 TPM 锁定修复时间

  • 值类型:字符串
  • 执行环境:管理员

    $tpm=get-tpm
    echo $tpm.LockoutHealTime
    

检查 SMBIOS 是否存在

  • 值类型:布尔
  • 执行环境:用户

    $os = Get-WmiObject Win32_bios -ComputerName $env:computername -ea silentlycontinue
    echo $os.SMBIOSPresent
    

检查 SMBIOS BIOS 版本

  • 值类型:布尔
  • 执行环境:用户

    $os = Get-WmiObject Win32_bios -ComputerName $env:computername -ea silentlycontinue
    echo $os.SMBIOSBIOSVersion
    

获取 BIOS 版本

  • 值类型:字符串
  • 执行环境:用户

    $os = Get-WmiObject Win32_bios -ComputerName $env:computername -ea silentlycontinue
    echo $os.Version
    

获取 BIOS 状态

  • 值类型:字符串
  • 执行环境:用户

    $os = Get-WmiObject Win32_bios -ComputerName $env:computername -ea silentlycontinue
    echo $os.Status
    

获取平均 CPU 使用情况 (%)

  • 值类型:整数
  • 执行环境:用户

    $cpu_usage= Get-WmiObject win32_processor | Select-Object -ExpandProperty LoadPercentage
    echo $cpu_usage
    

获取平均内存使用情况

  • 值类型:整数
  • 执行环境:用户

    $os = Get-WmiObject win32_OperatingSystem
    $used_memory = $os.totalvisiblememorysize - $os.freephysicalmemory
    echo $used_memory
    

获取平均虚拟内存使用情况

  • 值类型:整数
  • 执行环境:用户

    $os = Get-WmiObject win32_OperatingSystem
    $used_memory = $os.totalvirtualmemorysize - $os.freevirtualmemory
    echo $used_memory
    

获取平均网络使用情况

  • 值类型:整数
  • 执行环境:用户

    $Total_bytes=Get-WmiObject -class Win32_PerfFormattedData_Tcpip_NetworkInterface
    |Measure-Object -property BytesTotalPersec -Average |Select-Object -ExpandProperty Average
    echo ([System.Math]::Round($Total_bytes))
    

获取进程的平均内存使用情况

  • 值类型:字符串
  • 执行环境:用户

    $PM = get-process chrome |Measure-object -property PM -Average|Select-Object -ExpandProperty Average
    $NPM = get-process chrome |Measure-object -property NPM -Average|Select-Object -ExpandProperty Average
    echo [System.Math]::Round(($PM+$NPM)/1KB)
    

检查进程是否正在运行

  • 值类型:布尔
  • 执行环境:用户

     $chrome = Get-Process chrome -ea SilentlyContinue
    			if($chrome){
    				echo $true
    				}
    			else{
    				echo $false
    				}
    

检查是否已启用安全引导

  • 值类型:布尔
  • 执行环境:管理员

    try { $bios=Confirm-SecureBootUEFI }
    catch { $false }
    echo $bios
    

活动网络接口

  • 值类型:字符串
  • 执行环境:用户

    $properties = @(‘Name’,’InterfaceDescription’)
    $physical_adapter = get-netadapter -physical | where status -eq "up" 
    |select-object -Property $properties
    echo $physical_adapter
    

检查 PowerShell 版本

  • 值类型:字符串
  • 执行环境:用户

    $x = $PSVersionTable.PSVersion
    echo "$($x.Major).$($x.Minor).$($x.Build).$($x.Revision)"
    

检查电池最大容量

  • 值类型:整数
  • 执行环境:用户

    $max_capacity = (Get-WmiObject -Class "BatteryFullChargedCapacity" -Namespace "ROOT\WMI").FullChargedCapacity | Measure-Object -Sum | 
    Select-Object -ExpandProperty Sum
    echo $max_capacity
    

检查电池充电状态

  • 值类型:字符串
  • 执行环境:用户

    $charge_status = (Get-CimInstance win32_battery).batterystatus
    $charging = @(2,6,7,8,9)
    if($charging -contains $charge_status[0] -or $charging -contains $charge_status[1] )
    {
                    echo "Charging"
                    }else{  
                    echo "Not Charging"
    }
    

活动电源管理配置文件

  • 值类型:字符串
  • 执行环境:管理员

    $plan = Get-WmiObject -Class win32_powerplan -Namespace root\cimv2\power 
    -Filter "isActive='true'" 
    echo $plan
    

检查无线是否存在

  • 值类型:布尔
  • 执行环境:用户

    $wireless = Get-WmiObject -class Win32_NetworkAdapter -filter "netconnectionid like 'Wi-Fi%'"
    	if($wireless){echo $true}
    	else {echo $false}
    

获取 Java 版本

  • 值类型:字符串
  • 执行环境:用户

    $java_ver = cmd.exe /c "java -version" '2>&1'
    echo $java_ver
    

为 Windows 桌面设备创建传感器

在 Workspace ONE UEM console 中创建传感器以跟踪特定设备属性,例如电池剩余电量、操作系统版本或 CPU 平均使用情况。每个传感器都包含一个用于收集所需数据的代码脚本。您可以上载这些脚本或将其直接输入到控制台中。

传感器使用 PowerShell 脚本来收集属性值。您必须在创建传感器之前或在脚本窗口中配置期间自己创建这些脚本。

每个脚本只包含一个传感器。如果脚本返回多个值,则 Workspace ONE Intelligence 和 Workspace ONE UEM 只会读取第一个值作为脚本的响应。如果脚本返回空值,则 Workspace ONE Intelligence 和 Workspace ONE UEM 不会报告传感器。

必备条件

如果要查看多台设备的传感器,并与报告和仪表板中的数据进行交互,您必须选择加入 Workspace ONE Intelligence。如果要查看单台设备的传感器数据,则无需使用 Workspace ONE Intelligence。转到设备的设备详细信息页面,然后选择传感器选项卡以查看数据。

过程

  1. 导航到资源 > 传感器 > 添加
    显示添加传感器的导航路径
  2. 选择 Windows
  3. 常规选项卡中配置传感器设置。
    • 名称 - 输入传感器的名称。名称必须以小写字母开头,后跟字母数字字符和下划线。名称必须介于 2-64 个字符之间。请勿在此菜单项中使用空格。
    • 说明 - 输入传感器的说明。
  4. 选择下一步
  5. 详细信息选项卡中配置传感器设置。
    • 语言 - Workspace ONE UEM 支持 PowerShell。
    • 执行环境 - 此设置用于控制传感器脚本是在用户还是系统上下文中运行。
    • 执行架构 - 此设置用于控制传感器脚本是否基于架构在设备上运行。您可以将脚本限制为仅在 32 位设备或 64 位设备上运行,或者根据设备架构运行脚本。您也可以强制脚本以 32 位运行,而不管设备如何。
    • 响应数据类型 - 选择对传感器脚本的响应类型。您可以在以下选项之间进行选择:
      • 字符串
      • 整数
      • 布尔
      • 日期时间
    • 脚本命令 - 上载传感器脚本或在提供的文本框中编写自己的传感器脚本。
  6. 选择保存以在稍后分配传感器,或者选择保存并分配将传感器分配给具有组的设备。
  7. 要继续分配,请选择添加分配
  8. 定义选项卡上,输入分配名称,并使用选择智能组菜单项选择要从中收集传感器数据的设备组。
  9. 部署选项卡上,选择传感器报告设备属性的触发器。您可以选择多个值。

后续操作

创建传感器后,使用 Workspace ONE UEM 中的设备详细信息页面查看单台设备的数据,或转到 Workspace ONE Intelligence 以使用报告和仪表板与多台设备的数据进行交互。

check-circle-line exclamation-circle-line close-line
Scroll to top icon