Categories
Exchange

Exchange Postfach – Nachträgliche Rechtevergabe auf Ordner (und deren Unterordner)

Ein Szenario, welches viele wohl so oder so ähnlich schon kennen: Sie haben ein Exchange Postfach vor sich, höchst ordentlich verschachtelt und organisiert mit zwei- oder gar dreistelligen Zahlen von Ordnern und Unterordnern.
Und nun plötzlich benötigt der Kollege am anderen Schreibtisch Zugriff auf einen dieser Ordner. An für sich nicht schwer denken Sie sich eventuell nun, einfach dem Benutzer Rechte vergeben auf den Ordner und die Sache ist erledigt.
Soweit richtig, doch wie sieht das ganze bei diversen Unterordnern aus? Um es kurz zu machen, äußerst bescheiden. Sie müssten für jeden Unterordner explizit nochmal die Rechte vergeben, eine Vererbung wird nicht auf bereits bestehende Ordner angewendet.

Doch wir schaffen Abhilfe! Führen Sie Add-Inheritet-Rights.ps1 auf Ihrem Exchange-Server aus, und Sie können bequem vererbte Rechte vergeben. Für technisch interessierte oder vorsichtige Leute auch hier nochmal das Script im Klartext:

<#
.SYNOPSIS
    Mit Hilfe dieses Scripts können im Nachhinein Rechte auf bestimmte Ordner UND Unterordner in Outlook vergeben werden.
.PARAMETER AffectedMailbox
    Hier das Postfach bestimmen, aus welchem Ordnerrechte geändert werden sollen. Format: (user@domain.de) 
.PARAMETER UserWhoGetsRights
    Benutzer/Mailbox definieren, die nun Rechte bekommt auf das bestimmte Postfach. Format: (user@domain.de)
.PARAMETER PathOfTheFolder
    Pfad des bestimmten Ordners (Format: /Posteingang/Ordner/Unterordner)
.EXAMPLES
    ohne Parameter: ".\Add-Inheritet-Rights.ps1"
    mit  Parameter: ".\Add-Inheritet-Rights.ps1 -AffectedMailbox="a@b.com" -UserWhoGetsRights="d@e.com" -PathOfTheFolfer="/Inbox"
#>

Param
(
    [string]$AffectedMailbox,
    [string]$UserWhoGetsRights,
    [string]$PathOfTheFolder
)


Write-Host "Exchange Snapin Loading...."
Add-PSSnapin Microsoft.Exchange.Management.Powershell.Snapin
Write-Host "Exchange Snapin Loaded."
Write-Host ""
Write-Host "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"
Write-Host "Script für Vererbbare Rechte - (c) by cloud4you.biz  -=-=-=-=-=-=-=-=-=-=-=-"
Write-Host "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"
Write-Host ""
If ($AffectedMailbox -eq "")
{
    $AffectedMailbox = Read-Host "Auf welchem Postfach werden neue Rechte hinzugefügt? (Format: user@domain.de)"
}
Write-Host ""
$GetMailbox = Get-Mailbox $AffectedMailbox
Write-Host "Zutreffende Postfächer:" $GetMailbox.Length
Write-Host ""
If ($GetMailbox.Length -eq 1)
{
    If ($UserWhoGetsRights-eq "")
    {
        $UserWhoGetsRights = Read-Host "Welcher Benutzer bekommt in dem Postfach Rechte? (Format: user@domain.de)"
    }
	Write-Host ""
	$GetMailbox = Get-Mailbox $UserWhoGetsRights
	Write-Host "Zutreffende Postfächer:" $GetMailbox.Length
	Write-Host ""
	If ($GetMailbox.Length -eq 1)
	{
		If ($PathOfTheFolder -eq "")
        {
            $PathOfTheFolder = Read-Host "Und nun benötige ich den Pfad (Format: /Posteingang/Ordner/Unterordner)"
        }
		$GetFolders = Get-MailboxFolderStatistics -identity $AffectedMailbox | WHERE {$_.FolderPath.Contains($PathOfTheFolder) -eq $true}
		If ($GetFolders.Length -gt 0)
		{
			ForEach($folder in (Get-MailboxFolderStatistics -identity $AffectedMailbox | WHERE {$_.FolderPath.Contains($PathOfTheFolder) -eq $true} ) )
			{
				$foldername = $AffectedMailbox + “:” + $folder.FolderPath.Replace(“/”,”\”);
				Add-MailboxFolderPermission $foldername -User $UserWhoGetsRights -AccessRights PublishingEditor
			}
			Write-Host ""
			Write-Host $GetFolders.Length "Ordner wurden bearbeitet"
		}
		Else
		{
			Write-Host ""
			Write-Host "Es wurden keine Ordner unter diesem Pfad gefunden."
		}
	}
	Else
	{
		Write-Host ""
		Write-Host "Der Benutzer wurde nicht gefunden oder war nicht eindeutig."
	}
}
Else
{
	Write-Host ""
	Write-Host "Das Postfach wurde nicht gefunden oder war nicht eindeutig."
}
Write-Host ""
$Unnoetig = Read-Host "Drück Eingabe"

Categories
Freeswitch

Freeswitch – Endlich vernünftig debuggen

Um Freeswitch ordentlich debuggen zu können, sind folgende Konsolenbefehle hilfreich:

Loglevel der Konsole setzen:
console loglevel – Gibt das aktuelle Loglevel aus
console loglevel [0-7] – Stellt das Loglevel ein

Beschreibung der Loglevel:
0 – Console (Hotkey F7)
1 – Alert
2 – Critical
3 – Error
4 – Warning
5 – Notice
6 – Info
7 – Debug (Hotkey F8)

SIP-Logging aktivieren:
sofia profile internal siptrace on – Aktiviert SIP-Logs für interne Kommunikation
sofia profile external siptrace on – Aktiviert SIP-Logs für externe Kommunikation

Einfärben der Konsole:
console colorize [on|off|toggle] – Aktiviert/Deaktiviert die Einfärbung

Categories
IIS Server Windows

IIS php-fähig machen (Offline Installation)

  1. Wenn nicht schon geschehen – IIS installieren
  2. Zusätzlich zu den Standard-Features bitte noch CGI aktivieren.
  3. Download PHP.zip
  4. Den Inhalt der ZIP-Datei unter C:\PHP\ ablegen.
  5. Jetzt gehen wir zur Systemsteuerung -> System und Sicherheit -> System -> Erweiterte Systemeinstellungen
  6. Dort klicken wir unten auf Umgebungsvariablen… und suchen dann in der Systemvariablen-Liste nach der Variable Path
  7. Diese erweitern wir nun um folgende Zeile:
    ;C:\PHP;C:\PHP\ext
    Anschließend alles mit OK bestätigen
  8. Nun gehen wir auf den IIS-Manager, wählen unseren Server aus und klicken anschließend auf Handlerzuordnungen
  9. Rechts im Aktionenmenü klicken wir nun auf Handlerzuordnung hinzufügen:
    Anforderungspfad: *.php
    Modul: FastCGIModule
    Ausführbare Datei: C:\PHP\Php-cgi.exe
    Name: PHP
  10. Alles mit OK bestätigen, den IIS Manager erneut in den Vordergrund holen.
  11. Erneut auf den Server links klicken und dann auf Standarddokument gehen.
  12. Rechts im Aktionenmenü auf Add klicken und noch Index.php hinzufügen bzw. ein anderes gewünschtes Default-Doc.

Hiermit ist die Installation abgeschlossen. Weiter geht es hier: [Platzhalter]

Categories
CRM

CRM 4.0/2011/2013: Unexpected Error beim Hinzufügen eines Users

Beim Anlegen von Benutzern kann es nach dem Klick auf “Speichern” zu einem Fehler kommen. Im Eventlog kann man zu diesem Moment einen Fehler mit der Event-ID 18176 sehen. Durch was genau der Fehler entsteht, ist nicht bekannt – auf jeden Fall scheinen dem CRM bei dem Fehler Einträge in Feldern zu fehlen, welche standardmäßig vom System schon gesetzt werden.

Beheben lässt sich der Fehler ziemlich simpel:

  1. Gehen Sie im CRM als Administrator auf EINSTELLUNGEN -> VERWALTUNG -> Systemeinstellungen.
  2. Stellen Sie im Reiter Formate das aktuelle Format um, z.B. auf “Deutsch (Liechtenstein). Bestätigen Sie dies mit Klick auf “OK”
  3. Jetzt öffnen Sie die Einstellung nochmal und setzen das Format wieder zurück. Wieder mit “OK” bestätigen.

Damit sollte das Problem schon behoben sein. Wir haben durch das temporäre Umstellen der Sprache bewirkt, dass die weiter oben genannten Felder wieder befüllt sind.

Categories
General ADFS Server Windows

ADFS 3.0 – Zertifikat erneuern

Um im ADFS 3.0 ein Zertifikat zu erneuern, muss folgendes getan werden:

  1. Über MMC das neue Zertifikat importieren – ACHTUNG: Es sollte ein Zertifikat mit Private Keys sein
  2. Über All Tasks -> Manage Private Keys… folgende Berechtigungen hinzufügen:
    [Service-Account] – READ
    NT SERVICE\adfssrv – READ
    NT SERVICE\drs – READ
  3. Über das ADFS Management -> Service -> Certificates das neue Zertifikat einspielen. Dies geht über Set Service Communications Certificate.
    Sollte das Zertifikat hier nicht auftauchen, so hat es entweder keine Private Keys oder die Berechtigungen fehlen.
  4. Folgenden PowerShell-Befehl absetzen um den Thumbprint des neuen Zertifikats herauszufinden: 
    Get-ChildItem Cert: -Recurse |
         ? { $_ -is [System.Security.Cryptography.X509Certificates.X509Certificate2] }
  5. Anschließend diesen Befehl absetzen, um das alte Zertifikat durch das neue zu ersetzen: 
    Import-Module ADFS
    Set-AdfsSslCertificate -Thumbprint [Thumbprint des neuen Zertifikats]
Categories
Zabbix

Zabbix unter Ubuntu – Probleme mit der Link-Local Route

Nach jedem Neustart des Servers wird die Link-Local Route wieder erstellt. Dies führt dazu, dass die Cisco Geräte nicht mehr via SNMP überwacht werden können.

Das Problem kann durch folgenden Befehl gelöst werden:

route del link-local netmask 255.255.0.0

Da dies die Route nur bis zum nächsten Neustart entfernt, empfiehlt sich die Eintragung des Befehls in der Autostart-Datei “/etc/init.d/boot.local”.

Categories
Clients Windows

Appcrash- und BEX64-Fehler nach einer Installation

Wenn plötzlich verdammt viele (grafische) Anwendungen mit einem Appcrash- oder BEX64-Fehler abschmieren, so könnte es eventuell an einer vorausgegangenen Installation liegen, die die bereits installierten “Microsoft Visual C++ Redistributable”-Pakete nicht erkannt und überschrieben hat.

Lösung:
Deinstallieren Sie alle “C++ Redistributable”-Pakete, die Sie unter Programme und Funktionen finden können.

Anschließend laden Sie bitte die folgenden Programme herunter und installieren diese:
Visual C++ 2005 Redistributable (x86)
Visual C++ 2005 Redistributable (x64)
Visual C++ 2008 Redistributable (x86)
Visual C++ 2008 Redistributable (x64)
Visual C++ 2010 Redistributable (x86)
Visual C++ 2010 Redistributable (x64)

Am besten in chronologischer Reihenfolge von oben nach unten. 64bit-Betriebssysteme müssen dabei ALLE Pakete installieren, 32Bit-Systeme nur die mit “x86” gekennzeichneten.

Das sollte das Problem lösen!