PowerShell SCCM显示状态消息查询

时间:2014-10-01 09:46:07

标签: windows powershell sccm wql

我目前正在PowerShell中为SCCM 2012编写一些右键单击工具。 我想编写一个工具,它显示右键单击设备的状态消息查询。

我想像SCCM一样有一个熟悉的观点 - >监控 - >状态消息查询 - >来自特定系统的所有状态消息

到目前为止,我有这个WQL查询:

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

2 个答案:

答案 0 :(得分:1)

刚刚从我正在测试的东西中剪掉了这个......可能会让你指向正确的方向..

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。

答案 1 :(得分:0)

只是看着我的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

http://blog.wallis2000.co.uk/2015/04/status-messages-from-sccm-task.html