我正在尝试创建有关该资产所安装的.NET版本的报告,但是我无法编辑SCCM库存的.mof文件...我需要进行大量操作-独立的Powershell不能提供帮助我,因为它在这种环境下无法连接到远程注册表...但是SCCM可以做到。
我认为这是一个好主意-创建基线以扫描遗产,获取数据,然后报告。
我发现了一个非常出色的脚本https://github.com/EliteLoser/DotNetVersionLister-这是输出的样子:
ComputerName : localhost
>=4.x : 4.6.2
v4\Client : Installed
v4\Full : Installed
v3.5 : Not installed (no key)
v3.0 : Not installed (no key)
v2.0.50727 : Not installed (no key)
v1.1.4322 : Not installed (no key)
Ping : True
Error :
如您所见,输出巨大。我已经制作了一个导入此模块的小脚本,可以在localhost上运行它,而且很棒,但是...如何举报?
我已将其添加到SCCM中,并确定了使用该基线的基准,但是没有人知道如何,甚至可能进行报告/查询或其中的任何操作,从而从上方返回相同的输出,收集的每台计算机上的每台计算机?
答案 0 :(得分:0)
我不知道这是否正是您要寻找的东西,但是我报名参加了一个以您可能会觉得有用的方式提出的想法。
您可以设置基线配置以运行脚本,并将脚本将输出写入主机。为此,您必须使符合条件不符合。因此,请设置符合条件,以使脚本返回不可能的值,这样它将不符合要求。
然后在SQL Management Studio中,您可以查询基线配置并查看每个系统的输出结果。
这是示例基线配置脚本。在此示例中,我们检查是否存在一些文件夹并根据结果写入输出,这仅是向您展示一个示例,使用您设置的测试脚本将输出写入主机:
if (Test-Path -Path "C:\Windows") {
if (Test-Path -Path "C:\Windows\Debug") {
"Debug"
}
if (Test-Path -Path "C:\Windows\System") {
"System"
}
if (Test-Path -Path "C:\Windows\System32") {
"System32"
}
if (Test-Path -Path "C:\Windows\Nothing") {
"Nothing"
}
} else {
"NOT INSTALLED"
}
为此创建一个基准并将其部署到某些测试系统。 在测试系统评估并报告结果之后,您可以转到连接到sccm数据库的sql管理工作室并运行此sql命令。使用您创建的配置项目的确切名称对其进行修改:
Select csd.Netbios_Name0, csd.ConfigurationItemName, csd.CurrentValue, csd.Criteria, csd.LastComplianceMessageTime, csd.CIVersion
From v_CIComplianceStatusDetail csd
Where csd.ConfigurationItemName = 'YourConfigurationItemNameHere'
Order By csd.CurrentValue
希望这为您提供了一些可以运行的想法。