Statische DNS Einträge prüfen ob Client antwortet

Mit diesem kleinen Skript kann man prüfen, ob die DNS Records (PTR und A) die statisch eingetragen sind, noch erreichbar sind. Daraus kann man sich ableiten, ob die nicht erreichbaren Einträge „irgendwann“ mal gelöscht werden können.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
$DNSRecords = Get-DnsServerZone  | Get-DnsServerResourceRecord
 
foreach($DNSRecord in $DNSRecords) {
	$Line = ""
 
	if($($DNSRecord.TimeStamp -eq $null)) {
	    # nur statische Einträge prüfen, die anderen Fallen ja von selbst raus.
		switch ($($DNSRecord.RecordType)) {
			"A" {
				$DN = $($DNSRecord.RecordData.DnsServerResourceRecordA)
				$Line = $DN
				$Result = ""
				if (-not (Test-Connection -ComputerName $DN -Count 1 -Quiet)){
					$Result = "und ist nicht erreichbar"
					$BGColor = "yellow"
					write-host "failed " -nonewline -foregroundcolor red
					$Line = "failed "
					$Line += "A   $($DNSRecord.Hostname) hat die IP $($DNSRecord.RecordData.DnsServerResourceRecordA)"
					$Line | Out-File -Append -FilePath c:\IPPingResult.txt
				}else {
					$Result = "und ist erreichbar"
					$BGColor = "white"
					write-host "Ok " -nonewline -foregroundcolor green
					$line = "OK "
				}
 
				write-host "A   $($DNSRecord.Hostname) hat die IP $($DNSRecord.RecordData.DnsServerResourceRecordA)" -Foregroundcolor $BGColor
 
				}
 
			"PTR" {
				$DN = $($DNSRecord.DistinguishedName)
				$Pos = $DN.IndexOf(".in-addr.arpa")
 
				$DN = $DN.Substring(0,$Pos)
				$DN = $DN.Replace(",DC=",".")
				$DN = $DN.Replace("DC=","")
				# IP Umdrehen 
				$Help = $DN.Split(".")
				[array]::Reverse($Help)
				$DN   = $Help -join "."
				$Line = $DN
				$Result = ""
				if (-not (Test-Connection -ComputerName $DN -Count 1 -Quiet)){
					$Result = "und ist nicht erreichbar"
					$BGColor = "yellow"
					write-host "failed " -nonewline -foregroundcolor red
					$Line = "failed "
					$Line += "PTR $($DNSRecord.RecordData.PtrDomainName) hat die IP $DN $Result"
					$Line | Out-File -Append -FilePath c:\IPPingResult.txt
				}else {
					$Result = "und ist erreichbar"
					$BGColor = "white"
					write-host "Ok " -nonewline -foregroundcolor green
					$Line = "OK "
				}
 
				write-host "PTR $($DNSRecord.RecordData.PtrDomainName) hat die IP $DN $Result" -Foregroundcolor $BGColor
 
				}
 
		}
	}
 
}

So soll das Ergebnis aussehen (und gleichzeitig stehen in der C:\IPPingResult.txt die Clients, die nicht erreichbar sind).
DNSCheck

OWA 2010 Kategorien bei mehreren eingebundenen Postfächern

Die Kategorien innerhalb des OWAs werden von der Mailbox geladen, die nach der Anmeldung als erstes selektiert (gelickt) wird. Die Kategorien gelten dann für alle anderen Mailboxen ebenfalls.

Wenn ein eingebundenes Postfach keine Kategorien hat – weil z.B. noch nie Outlook dafür verwendet wurde – und dieses als erstes angeklickt wird, dann gibt es keine Kategorien zur Auswahl.

Lösung:

  • Ab-/Anmelden und das Postfach mit den richtigen Kategorien zuerst anklicken
  • in den anderen Postfächern die Kategorien anlegen (lassen) mit z.B. Outlook

 

Outlook / Exchange Fehlermeldung: WorkHoursVersion1 is null

Die Fehlermeldung WorkHoursVersion1 is null kann sowohl innerhalb von Outlook, OWA als auch beim CmdLet Get-MailboxCalendarConfiguration angezeigt werden.

get-mailboxcalendarconfiguration_error

Die Working Hours eines Kalenders sind in einem versteckten Attribut im Postfach selbst gespeichert. Mit Hilfe des MFCMAPI Tools kann man das Attribut ansehen.

mfcmapi_Kalender-associatedDazu verbindet man sich mit MFCMAPI auf das Postfach und klickt sich im Postfach bis zum „Top of Informationstore“ durch. Anschließend mit der rechten Maustaste auf den Ordner „Kalender“ klicken und den Punkt „open associated contents table„. Nun sieht man die für den Kalender nötigen IPM.Configuration.WorkHours Eintrag und kann in den Properties nach dem Wert 0x7C080102 bzw. PR_ROAMING_XMLSTREAM, PidTagRoamingXmlStream suchen.

workingHours1In diesem Property steht die Konfiguration im XML Format gespeichert.

Workinghours1_XML

Wenn der Inhalt anders aussieht, dann ist der Eintrag nicht zu gebrauchen und Outlook oder Exchange meldet WorkHoursVersion1 is null.

Lösung:

Das Problem behebt man, indem man das Attribut mit einem funktionierenden Wert einer anderen Konfiguration befüllt und der Anwender seine „Zeiten“ dann wieder anpasst.
Zum bearbeiten des Attributes wird ebenfalls das MFCMAPI Tool verwendet.
Dabei ist darauf zu achten, dass keine Leerzeilen existieren und am Anfang/Ende keine Sonderzeichen dargestellt werden.
Hier gibt’s eine funktionierende XML Vorlage.