Jump to content

exchange queue auslesen mit normalen userberechtigung?


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

hallo,

 

ich suche nach einer kleinen lösung, wie man die queue des exchangeservers (remote) auselesen kann.

 

ich habe da 2 wege ins auge gefasst: entweder über windows scripting oder per c++/vb.

jedoch hab ich bei beiden lösungen keinen ansatz.

 

nun meine frage(n):

gibt es da schon etwas auf dem markt und wenn nein, kann mir da jemand mal grundsätzlich was dazu sagen? vielleicht hat ja jemand schon erfahrung mit dem exchange sdk oder so

 

danke!

hannes

Link zu diesem Kommentar

So,

habs gefunden. Es ist in ein hta eingebettet. Da ich nicht weiß, welcher Teil interessant für diech ist, hau ich alles rein.

 

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>HTA Queue Viewer</title>
<script language="vbscript">
<!-- Startup Script, befüllt die Combobox -->
Dim iTimerID

Sub Window_Onload

Dim objRootDSE, objConfNC
Dim strSearchBase, strFilter,strAttrs,strScope
Dim objConn, objRS
Dim objSelectOption


set objRootDSE = GetObject("LDAP://RootDSE")
objConfNC = objRootDSE.get("configurationnamingcontext")

strSearchBase = "<LDAP://cn=microsoft exchange,cn=services," & objConfNC &">;"

strFilter = "(objectCategory=msExchExchangeServer);"
strAttrs = "cn;"   ' add more attributes here if desired
	strScope = "subtree"

Set objConn = CreateObject("ADODB.Connection")
objConn.Open "Provider=ADsDSOObject;"

Set objRS = objConn.Execute(strSearchBase & strFilter & strAttrs & strScope)
objRS.MoveFirst
While Not objRS.EOF
  		strLine = objRS.Fields(0).Value
  		Set objSelectOption = document.createElement("OPTION")
       objSelectOption.Text = strLine
       objSelectOption.Value = strLine
       ExchangeChooser.Add(objSelectOption)

  		objRS.MoveNext
	Wend

End Sub

Link zu diesem Kommentar

Und weiter gehts:

 

Function checkviewOption
For Each selOption in viewOption
       If selOption.Checked Then
           checkviewOption = selOption.Value 
       End If
   Next

End Function

Sub ChangeExch 
Dim myValue, exOption, out,  myViewOption

myValue = ExchangeChooser.Value 

'Datum
out = Time & "<br><br>"

'Radiobutton auswerten
myViewOption = checkviewOption

If myValue = "all_Servers" Then
	'mache alle Server durch
	For Each exOption In ExchangeChooser.Options
		'all_servers ausfiltern
	If exOption.Value <> "all_Servers" Then
		out = out & createOutput (myViewOption,exOption.Value) & "<br>"
	End If 

	Next 
Else
	'ausgewählter Server
	out = out & createOutput (myViewOption, myValue)
End if

document.all.output.innerHTML = out

End Sub

Function createOutput(selectedOption, server)

Dim temp

'Servername
temp = "<H3>" & server & "</H3>"

If selectedOption = "Queues" Then
	createOutput = temp & createQueueTable (server)
ElseIf selectedOption = "Categorizer" Then
	createOutput = temp & createCategorizerOutput (server)
Else
	temp = createCategorizerOutput (server)
	createOutput = temp & createQueueTable (server)		
End If

End Function

Link zu diesem Kommentar

Da ist jetzt der WMI Aufruf drin:

 

Function createQueueTable(Servername)

Dim tempOut

On Error Resume Next
'WMI Funktion

strComputer = servername
UserName = ""
Password = ""
Set SWBemlocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = SWBemlocator.ConnectServer(strComputer,"root\MicrosoftExchangeV2",UserName,Password)
Set colItems = objWMIService.ExecQuery("Select * from Exchange_Queue",,48)

' 	Set objWMIService = SWBemlocator.ConnectServer(strComputer,"root\cimv2",UserName,Password)
' 	Set colItems = objWMIService.ExecQuery("Select * From Win32_PerfRawData_MSMQ_MSMQQueue",,48)

'Tabelle starten
tempOut = tempOut & "<table border=""1""><thead><tr>" & "<th>ProtocolName</th><th>QueueName</th>"
tempOut = tempOut & "<th>QueueId</th>" & "<th>MsgCount</th>" & "<th>Size</th>"
tempOut = tempOut & "<th>LinkName</th>" & "<th>LinkId</th></thead>"
tempOut = tempOut & "<tbody>"

For Each objItem in colItems

tempOut = tempOut & "<tr><td>" & objItem.ProtocolName & "</td>"
tempOut = tempOut & "<td>" & objItem.QueueName & "</td>"
tempOut = tempOut & "<td><font size=""-2"">" & objItem.QueueId & "</font></td>"
tempOut = tempOut & "<td>" & objItem.MessageCount & "</td>"
tempOut = tempOut & "<td>" & objItem.Size & "</td>"
tempOut = tempOut & "<td>" & objItem.LinkName & "</td>"
tempOut = tempOut & "<td><font size=""-2"">" & objItem.LinkId & "</font></td>"
tempOut = tempOut & "</tr>"

Next

tempOut = tempOut & "</tbody></table>"

On Error Goto 0

'Return Value
createQueueTable = tempOut 
End Function

Link zu diesem Kommentar

Und hier der restliche Skriptteil:

 

 

Function createCategorizerOutput(Servername)

Dim tempOut

On Error Resume Next
'WMI Funktion

strComputer = servername
UserName = ""
Password = ""


'start Table
tempOut = "<table border=""1""><thead><tr><th>Name</th><th>Queue Length</th>"
tempOut = tempOut & "<th>Msgs. submitted</th></tr></thead><tbody>"


Set SWBemlocator = CreateObject("WbemScripting.SWbemLocator")

	Set objWMIService = SWBemlocator.ConnectServer(strComputer,"root\CIMV2",UserName,Password)
Set colItems = objWMIService.ExecQuery("Select * from Win32_PerfFormattedData_SMTPSVC_SMTPServer",,48)

tempOut = tempOut & "<b>Categorizer</b><br>"
For Each objItem In colItems

	tempOut = tempOut & "<tr>"
	tempOut = tempOut & "<td>" & objItem.Name & "</td>"
	tempOut = tempOut & "<td>" & objItem.CategorizerQueueLength & "</td>"
	tempOut = tempOut & "<td>" & objItem.CatMessagessubmitted & "</td>"
	tempOut = tempOut & "</tr>"
Next

On Error Goto 0

'Tabelle schließen
tempOut = tempOut & "</tbody></table><br>"

'Return Value
createCategorizerOutput = tempOut 




End Function


Sub changeRefresh

If isRefresh.Checked Then		
	iTimerID = window.setInterval("ChangeExch", Intervall.Value * 1000, "VBScript")
	refresh.disabled = True
Else		
	window.clearInterval iTimerID
	refresh.disabled = False
End If


End Sub

Link zu diesem Kommentar

Fehlt noch der html-Code

 

</script>
<hta:application
applicationname="HTA Queue Viewer"	
borderstyle="normal"
caption="yes"
contextmenu="no"
icon="myicon.ico"
maximizebutton="yes"
minimizebutton="yes"
navigable="no"
scroll="yes"
selection="yes"
showintaskbar="yes"
singleinstance="yes"
sysmenu="yes"
version="1.0"
windowstate="normal"
>
</head>
<body bgcolor="#2557AD" text="#FFFFFF">

<table>
	<tr>
		<td width="190">
			<H3>HTA Queue Viewer</H3>
			</select>
		</td>

		<td width="150">
			<select size="1" name="ExchangeChooser" onChange="ChangeExch">
			<option value="all_Servers">all Servers</option>

		</td>

		<td width="180">
			<input type="radio" name="viewOption" value="Queues">view Queues<BR>
			<input type="radio" name="viewOption" value="Categorizer">view Categorizer<BR>
			<input type="radio" name="viewOption" value="Both" checked="true">view Both
		</td>

		<td width="150">
			<input type="text" name="Intervall" value="10" size="5">
			<input type="checkbox" name="isRefresh" onClick="changeRefresh">Timer
		</td>
	</tr>	
</table>

<INPUT TYPE="button" NAME="Refresh" VALUE="Refresh" onclick="ChangeExch"><BR>




<br>
<span id="output"> </span>
</body>

</html>

 

 

Falls du Fragen hast, her damit.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...