在为 Windows 10 设备创建传感器时,必须在 Workspace ONE UEM console 中上载 PowerShell 脚本或在配置过程中提供的文本框中输入 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