
你掌控全局了吗? —— 还是你的某些核心基础架构流程,如补丁、防病毒、BitLocker启用,正在偏离轨道?或者你想进行高级资产盘点,能够对照联想或戴尔的保修信息查询保修状态?那就继续往下看。
试试 ClientInspector,它可以帮助你深入了解你的整个客户端环境。
ClientInspector 对社区免费开源 —— 它旨在酷炫展示如何利用 Azure 日志引入管道、Azure 数据收集规则、Azure LogAnalytics 从客户端回传数据;并通过 Azure Monitor 和 Azure 仪表板进行查看,同时使用 Microsoft Sentinel 获取“漂移警报”。
ClientInspector (v2) 通过日志引入 API、Azure 数据收集规则 (DCR) 和 Azure 数据收集终结点 (DCE),将收集到的数据上传到 Azure LogAnalytics 工作区的自定义日志中。




重要的是,我要说明我并非试图构建一个与微软安全和管理堆栈竞争的管理工具。
微软 Azure/M365 管理与安全堆栈无可匹敌,它们是明星级解决方案。
但我对日志记录能力以及从客户端、服务器、云端和第三方系统回传数据并从中获取有价值的酷信息充满热情。
我也有一个针对服务器的类似解决方案——ServerInspector。遗憾的是,该方案尚未公开。
祝搜索愉快 😄
收集了哪些数据?
期望状态仪表板——如何从数据中洞察我的环境?
如何查询数据?——答案是 Kusto (KQL)
架构、架构与网络
实施
依赖项
运行 ClientInspector.ps1 - 3 种模式
ClientInspector 输出示例
安全
ClientInspector 数据集布局
详细模式与更多帮助
成本——存储这些数据需要多少费用?
发现 Bug,请告知我
联系方式
视频 3分19秒 - 使用命令行运行 ClientInspector(普通模式)
视频 1分40秒 - 自动创建 2 个表与 DCR(详细模式)
视频 1分37秒 - 自动创建 2 个表与 DCR(普通模式)
视频 1分34秒 - 查看 DCR 和表的架构
视频 2分19秒 - 数据处理
视频 1分58秒 - 针对数据的 Kusto 查询
视频 3分01秒 - 仪表板
视频 0分48秒 - 数据使用示例——查询联想保修数据库
视频 7分25秒 - 通过 ClientInspector DeploymentKit 部署
ClientInspector 可用于收集来自 Windows 客户端的大量有用信息,并将数据发送到 Azure LogAnalytics 自定义表。
该脚本收集以下信息(设置、信息、配置、状态):
欢迎添加更多酷炫的数据收集项以满足你的需求。
如果你想参与社区贡献,请将你的收集项通过电子邮件发送给我,如果你认为它们对全社区有价值。
你可以使用任何能够通过 PowerShell(WMI、CIM、外部数据、REST API、XML 格式、JSON 格式、CSV 格式等)检索到的源数据。
需要特别理解的是,数据通常需要在发送前进行处理,以确保数据有效并移除任何无关数据。
ClientInspector 使用了 PowerShell 模块 AzLogDcIngestPS 中的所有 24 个函数,来处理源数据的**“数据噪声”移除**、表/DCR 中禁止列的重命名,并支持通过 UserLoggedOn、CollectionTime、Computer 等额外洞察实现透明性的需求:
Write-Output "" Write-Output "Collecting Bios information ... Please Wait !"
$DataVariable = Get-CimInstance -ClassName Win32_BIOS
#-------------------------------------------------------------------------------------------
#-------------------------------------------------------------------------------------------
$DataVariable = Convert-CimArrayToObjectFixStructure -data $DataVariable -Verbose:$Verbose
$DataVariable = Add-CollectionTimeToAllEntriesInArray -Data $DataVariable -Verbose:$Verbose
$DataVariable = Add-ColumnDataToAllEntriesInArray -Data $DataVariable -Column1Name Computer -Column1Data $Env:ComputerName -Column2Name UserLoggedOn -Column2Data $UserLoggedOn -Verbose:$Verbose
$DataVariable = Filter-ObjectExcludeProperty -Data $DataVariable -ExcludeProperty __*,SystemProperties,Scope,Qualifiers,Properties,ClassPath,Class,Derivation,Dynasty,Genus,Namespace,Path,Property_Count,RelPath,Server,Superclass -Verbose:$Verbose
$DataVariable = ValidateFix-AzLogAnalyticsTableSchemaColumnNames -Data $DataVariable -Verbose:$Verbose
$DataVariable = Build-DataArrayToAlignWithSchema -Data $DataVariable -Verbose:$Verbose
您可以通过运行以下命令来验证源对象````
# Get insight about the schema structure of an object BEFORE changes. Command is only needed to verify columns in schema
Get-ObjectSchemaAsArray -Data $DataVariable -Verbose:$Verbose
请参阅有关AzLogDcrIngestPS中可用功能的更多详细信息 - 以及如何使用它们
作为使用ClientInSpectorV2-DeploymentKit初始部署的一部分,您将可以访问大量的Azure仪表板和Azure工作簿。
仪表板的理念是显示您的基础设施在哪些方面偏离了‘期望状态’。可以把它们看作关键绩效指标(KPI),显示基础设施失控之处。
与其有一个修补和管理防病毒的任务,您可以考虑使用KPI,这些KPI将显示哪些计算机没有打补丁 - 或者防病毒中的实时保护没有运行 - 或者在过去24小时内蓝屏过的计算机。
这与Microsoft安全评分的概念相同。










