Lync Weiterleitung mit Powershell

Im Normalfall konfigurieren die Lync User Ihre Weiterleitung selbst ein. Es kommt nicht selten vor, dass dies durch den Administrator umgesetzt werden muss. Ein Werkzeug hierfür ist SEFAUTIL, dass im Lync Resssource Kit enthalten ist. Das Tool ist ok, aber etwas antiquiert. Diesbezüglich würde man sich wünschen, dass es ein entsprechendes Powershell Pendant gibt. Leider sucht man dies vergeblich.

Auf dem Blog von Ben Lye bin ich auf ein Powershell Skript gestoßen, dass SEFAUTIL nicht ersetzt aber die Handhabung vereinfacht.

Voraussetzung

Das Skript vereinfacht und ersetzt das Sefautil nicht. Vor diesem Hintergrund ist es notwendig, dass Sefautil bereits installiert ist. Hierzu gibt es zwischenzeitlich unzählige Anleitungen, u.A.

Um das Skript funktionsfähig auszuführen muss der Account in den nachfolgenden Gruppen Mitglied sein

  • „RtcUniversalUserAdmins“ = AD-Gruppe
  •  „RTC Local Read-only Administrators“ = lokale Gruppe auf dem Lync-Server

Funktion

Das Skript ermöglicht die Weiterleitung

  • zum Vorgesetzten (muss in der AD gepflegt sein – Feld Manager)
    .\Forward-LyncPhone.ps1 <Username> -ForwardToManager
  • an eine andere Telefonnummer
    .\Forward-LyncPhone.ps1 <Username> -Destination <Telefonnummer im E.164-Format>
  • an eine andere SIP-Adresse.
    \Forward-LyncPhone.ps1 <Username> -Destination <SIP-Adresse>

Diese können auch wieder über den Befehl „.\Forward-LyncPhone.ps1 <Username> -Disable“ deaktiviert werden.

Damit das Skript funktioniert, müssen die Variablen

  • $LyncServer
  • $SipDomain

angepasst werden.

Update

[Update 04.06.2013] – Das Skript ist nun auch unter der PowerShell V3 lauffähig

Das Ursprüngliche Skript war unter PowerShell V3 nicht lauffähig. Hintergrund hierfür ist, dass die Abfrage

unter V3 das Ergebnis 1 zurückgegeben wurde, unter früheren PowerShell Versionen gibt es bei einer Übereinstimmung „null“ zurück. Das Skript wurde wie folgt angepasst.

Den Download habe ich auch entsprechend korrigiert.

Weitere Verweise/Quellen:

Download

10 Gedanken zu „Lync Weiterleitung mit Powershell

  1. If ($LyncUser.Count) {
    Write-Warning „Username "$Username“ matches multiple Lync-enabled accounts. Please specify a unique username.“
    Write-Host
    Break
    }

    Was ist falsch wenn diese Meldung kommt?

      • Hallo,

        der Count gibt mir 1 zurück. Ich habe das Skript ebenfalls mit anderen Usern probiert. Es kam immer die gleiche Meldung zurück.

        An was könnte das liegen?

        Gruß
        Florian

        • Hallo Florian,
          ich habe des Rätsels-Lösung gefunden. Du verwendest bestimmt die Powershell V3 (Get-Host). Diese verhält sich tatsächlich anders als die Vorgängerversion. Die PowerShell V2 gibt als Ergebnis nichts zurück und V3 die „1“ als Wert. Um das auch für V3 lauffähig zu bekommen muss das Script wie folgt angepasst werden.

          If ($LyncUser.Count -gt 1) {..
          }

          Ich habe das Skript entsprechend angepasst und werde die Info auch Ben weitergeben.

          Danke für den Hinweis
          Alex

          • Hallo,

            danke das funktioniert jetzt schon mal soweit.
            Jedoch kann ich dem Skript Werte mitgeben, ohne das etwas passiert. Laut Ausgabe wird die Weiterleitung eingerichtet, aber am Client sehe ich keine Änderung.

            Ich gebe die Nummer im +49 Format mit. Ist das richtig so?

            Danke
            Flo

          • Hallo Florian,

            ja das E.164-Format ist zu verwenden. Du solltest es unter einer administrativen PowerShell Console und dem Lync-Modul ausführen:

            uups da fehlt der Befehl….: Müsste so sein mit nachfolgendem Output:
            .\Forward-LyncPhone.ps1 albert.einstein -Destination +492319999111

            CN=Einstein\, Albert (Testaccount),OU=Test,OU=EDV,OU=Abteilungen,DC=blog,DC=local
            Immediate call forwarding is not enabled

            Enabling immediate forward…

            User Aor: sip:albert.einstein@alekel.de
            Display Name: Einstein, Albert (Testaccount)
            UM Enabled: False
            Simulring enabled: False
            Forward immediate to: sip:+492319999111@alekel.de;user=phone

            So funktioniert es bei mir. Ich kann leider derzeit nur unter Lync 2010 und PSv2 testen. Aber letztendlich sollte das keinen Unterschied machen. Das E.164 Format ist die Ortsvorwahl ohne die führende Null anzugeben (http://ucken.blogspot.de/2010/12/enterprise-voice-best-practices-in-lync.html) also +49231 für Dortmund z.B.

          • Hallo,

            ich komme genau soweit:
            PS C:Scritps> .Forward-LyncPhone.ps1 albert.einstein -Destination +492319578123
            CN=Einstein, Albert (Testaccount),OU=Test,OU=EDV,OU=Abteilungen,DC=blog,DC=local
            Immediate call forwarding is not enabled
            Enabling immediate forward…

            Danach kommt nichts mehr.

            Ich habe Lync 2013 Powershell mit Adminrechte gestartet.

          • ok… ich werde versuchen das mit Lync 2013 – hoffentlich nächste Woche (Dienstag o. Mittwoch) – nachzustellen. Aktuell habe ich „nur“ Lync 2010 im Zugriff.

          • Hallo Florian,

            ich bin leider nicht zum testen gekommen und hoffe aber, dass ich es nächste Woche nachstellen kann.

          • Hallo,

            ich hatte heute die Gelegenheit es in einer Mischumgebung (Lync 2010 + Lync 2013) zu testen. Bei mir funktionierte es problemlos. Ich werde versuchen noch jemand zu finden, der es auch probieren kann unter einer reinen Lync 2013 Umgebung und werde hier berichten.

Kommentar verfassen