Windows PowerShell SCCM显示状态消息查询
我目前正在PowerShell中为SCCM 2012编写一些右键单击工具。 我想编写一个工具,用于显示右键单击设备的状态消息查询 我希望有一个smiliar视图,作为SCCM->监视->状态消息查询->来自特定系统的所有状态消息 到目前为止,我有一个WQL查询:Windows PowerShell SCCM显示状态消息查询,windows,powershell,sccm,wql,Windows,Powershell,Sccm,Wql,我目前正在PowerShell中为SCCM 2012编写一些右键单击工具。 我想编写一个工具,用于显示右键单击设备的状态消息查询 我希望有一个smiliar视图,作为SCCM->监视->状态消息查询->来自特定系统的所有状态消息 到目前为止,我有一个WQL查询: select SMS_StatusMessage.*, SMS_StatMsgInsStrings.*, SMS_StatMsgAttributes.* from SMS_StatusMessage left join SMS_St
select SMS_StatusMessage.*, SMS_StatMsgInsStrings.*, SMS_StatMsgAttributes.*
from SMS_StatusMessage left join SMS_StatMsgInsStrings on SMS_StatMsgInsStrings.RecordID = SMS_StatusMessage.RecordID
left join SMS_StatMsgAttributes on SMS_StatMsgAttributes.RecordID = SMS_StatusMessage.RecordID
where SMS_StatusMessage.MachineName = "MyMachineName"
但这并没有给出我在“特定系统的所有状态消息”中看到的描述。(见截图)
有人知道我是如何获得状态消息的描述的吗
致意
faebuk刚刚从我测试的东西上剪下了这个。。可能会让你找到正确的方向
SELECT b.Component, b.MachineName, b.MessageType, b.MessageID,
c.insstrvalue,
d.attributevalue, d.attributeTime
FROM SMS_StatusMessage b
JOIN SMS_StatMsgInsStrings c ON b.RecordID = c.RecordID
JOIN SMS_StatMsgAttributes d ON c.RecordID = d.RecordID
WHERE b.Component = "Task Sequence Manager"
AND d.AttributeID = 401
AND b.MachineName = "MyMachineName"
AND b.MessageID = 11171
AND d.AttributeValue = "DeploymentID"
最终,这是来自SDK的。只需查看我的SO配置文件,就可以看到我之前回复的这个线程。。我最近也需要做同样的事情,并把它写在博客上
SELECT
CASE [Severity]
WHEN '1073741824' THEN 'Informational'
WHEN '-1073741824' THEN 'Error'
WHEN '-2147483648' THEN 'Warning'
END AS Severity
,[SiteCode]
,[Time]
,[MachineName]
,[Component]
,[MessageID],
CASE [MessageID]
WHEN '11124' THEN ('The task sequence execution engine started the group (' + [InsStrValue3] + ').')
WHEN '11127' THEN ('The task sequence execution engine successfully completed the group (' + [InsStrValue3] + ').')
WHEN '11128' THEN ('The task sequence execution engine skipped the disabled action (' + [InsStrValue2] + ') in the group (' + [InsStrValue3] + ').')
WHEN '11130' THEN ('The task sequence execution engine skipped the action (' + [InsStrValue2] + ') in the group (' + [InsStrValue3] + ').')
WHEN '11134' THEN ('The task sequence execution engine successfully completed the action (' + [InsStrValue2] + ') in the group (' + [InsStrValue3] + ') with exit code ' + [InsStrValue4] + ' Action output: ' + (COALESCE([InsStrValue5], '') + '' + COALESCE([InsStrValue6], '') + '' + COALESCE([InsStrValue7],'')+ COALESCE([InsStrValue8],'')+ COALESCE([InsStrValue9],'')+ COALESCE([InsStrValue10],'')))
WHEN '11135' THEN ('The task sequence execution engine failed execuiting the action (' + [InsStrValue2] + ') in the group (' + [InsStrValue3] + ') with exit code ' + [InsStrValue4] + ' Action output: ' + (COALESCE([InsStrValue5], '') + '' + COALESCE([InsStrValue6], '') + '' + COALESCE([InsStrValue7],'')+ COALESCE([InsStrValue8],'')+ COALESCE([InsStrValue9],'')+ COALESCE([InsStrValue10],'')))
WHEN '11138' THEN ('The task sequence execution engine ignored execution failure of the action (' + [InsStrValue2] + ') in the group (' + [InsStrValue3] + ').')
WHEN '11140' THEN ('The task sequence execution engine started execution of a task sequence.')
WHEN '11142' THEN ('The task sequence execution engine performed a system reboot initiated by the action (' + [InsStrValue2] + ') in the group (' + [InsStrValue3] + ').')
WHEN '11144' THEN ('The task sequence execution engine from a non-client started execution of a task sequence.')
END AS Description
FROM [CM_SiteCode].[dbo].[vStatusMessagesWithStrings] (NOLOCK)
WHERE MachineName = 'MyServerNameHere'
AND Component in ('Task Sequence Engine','Task Sequence Manager','Task Sequence Action')
AND Time BETWEEN '2015-04-02 08:30' AND GETDATE()
ORDER BY Time DESC
请参见此处与特定消息ID关联的(翻译后的)格式字符串不在SMS_StatusMessage、SMS_StatsGinsString或SMS_StatsGattributes中。这些仅包含消息的有用数据(例如,AdvertisementID等)。格式字符串是通过WQL查询以外的其他方式获得的。有关获取格式strings.FWIW的一些线索,请参阅,翻译后的消息似乎位于SCCM控制台安装目录中的DLL中。对于2012/US英语,它是
\AdminUI\bin\i386\00000409\srvmsgs.dll
。我认为2007控制台将它们保存在类似的位置,AdminConsole\bin\…\srvmsgs.dll
。