Categories
Office SharePoint

Dokumente aus dem SharePoint lassen sich nicht in MS Office-Programmen öffnen

Manchmal kommt es vor, dass aus heiterem Himmel plötzlich keine Office-Dokumente mehr direkt aus dem SharePoint heraus geöffnet werden können. Folgende Fehlermeldung ist dann zu sehen:

‘[Dateiname]’ konnte nicht geöffnet werden.

Wenn die Datei heruntergeladen und anschließend geöffnet wird, so taucht dieses Problem nicht auf.

Ursache: Office speichert temporär auf dem lokalen Pfad C:\Users\[Benutzername]\AppData\Local\Microsoft\Office\[VersionsNr.]\OfflineFileCache die Dateien ab. Es scheint dabei vorzukommen, dass diese temporären Files nicht vernünftig bereinigt werden. Beim nächsten Öffnen einer Datei aus dem SharePoint bekommen Sie dann eine Fehlermeldung, da er wohl die Dateien nicht mehr richtig überschreiben oder lesen kann.

Lösung: Schließen Sie alle Office-Programme und entfernen Sie nun alle Dateien, die sich in dem Pfad C:\Users\[Benutzername]\AppData\Local\Microsoft\Office\[VersionsNr.]\OfflineFileCache befinden. Anschließend sollten die Dateien wieder aufgehen.

Categories
Office SharePoint

Probleme bei der Synchronisation der Outlook-Kontakte mit dem SharePoint

Die Möglichkeit, eine öffentliche Kontaktliste im SharePoint (2010) anzulegen wird von vielen genutzt, um innerhalb des Unternehmens eine Synchronisation der Kontakte zu realisieren.

Nun hat man meistens schon zu diesem Zeitpunkt eine gepflegte Kontaktliste und würde diese gerne in den SharePoint zu integrieren.

Leider gibt es hier eine Einschränkung, welche dafür sorgt dass Kontakte mit einem abweichenden Format in der Website von “https://(www.)domain.tld” nicht synchronisiert werden. Nun kann man von Hand jeden Kontakt überprüfen und bearbeiten, was bei 100+ Kontakten tierisch nerven könnte oder aber man nützt folgendes Script, das die Sache für Sie erledigt:

Download: Prepare-Contacts-For-SP

Für die technisch interessierten hier das Script im Klartext:

"##########################################"
"#            cloud4you GmbH              #"
"#          Webseiten-Korrektur           #"
"##########################################"
""
"    Bitte als Administrator ausführen!!"
""
""
""
"  Die folgende Abfrage bitte bestätigen:"
""
set-executionpolicy remotesigned
""
""
"Sofern bestätigt, läuft das Script nun"
"durch."
"Sollte statt der Abfrage eine rote"
"Fehlermeldung gekommen sein, wurde das"
"Script nicht als Administrator"
"ausgeführt. Sollte dies der Fall sein,"
"müssen Sie es nochmals ausführen, "
"trotz Erfolgsmeldung unten."
""
""
$outlook = new-object -com outlook.application

$contacts = $outlook.Session.GetDefaultFolder(10)

$contacts.Items | % { if($_.BusinessHomePage -NotMatch "http://")
{
    $_.BusinessHomePage = "http://" + $_.BusinessHomePage
    $_.save()    
}}
""
""
"Die Bearbeitung der Kontakte ist abgeschlossen."
""
"Nun können Sie die Kontakte in den SP schieben,"
"natürlich nur, wenn nichts rot geschrieben war."

Categories
Hosting How-Tos Office

Microsoft Office Branding mit dem OCT/OAT

Interessant für folgende Szenarien:

  • Einfache Verteilung von Software
  • Als Hoster für die Weitergabe von Outlook an Kunden (mit eingetragenem Product Key)

So geht’s:

Als erstes benötigen Sie ein Installationsmedium bzw. einen Ordner welcher die Installationsfiles beinhaltet. Diese Daten kopieren Sie nun einfach auf C:\Temp (Sie können auch einen anderen Pfad nehmen, den müssen Sie dann bei dem Rest der Anleitung immer umschreiben). Nun klicken Sie auf [Start] -> [Ausführen] und geben dort folgende Zeile ein:

C:\Temp\setup.exe /admin

Hiermit öffnet sich das OCT/OAT (en/de). Hier sind nun kaum Grenzen gesetzt. Ein paar Highlights:

  • Setup -> Lizenzierung und Benutzeroberfläche: Hier kann der Product Key fest gesetzt werden
  • Features -> Featureinstallationsstatus festlegen: Hier können alle Features schon im Voraus definiert werden.
  • Weitere Inhalte -> Verknüpfungen konfigurieren: Hier können bei der Installation noch weitere Verknüpfungen angelegt werden.
  • Outlook: Hier können schon ganze Konten eingerichtet werden.

Wenn die Konfiguration soweit durchgenommen wurde und alles passen sollte, so kann man oben über Datei -> Speichern unter… die Settings abspeichern. Als Speicherpfad wird aber nicht irgendeiner gewählt sondern folgender Pfad verwendet:

C:\Temp(\x86)\Updates
\x86 ist je nach Installationsmedium zu verwenden oder nicht.

Jetzt kann das Paket wieder auf CD gebrannt, als ISO gebuildet oder so herausgegeben werden. Wenn der User dann das Setup ausführt, wird automatisch die Patch-Datei eingelesen und die Installation läuft mit all den gewünschten Anpassungen durch.

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!