Microsoft Certified Solution Master Communication (MCSM)

Microsoft hat auch die Zertifizierungen für den Microsoft Certified Master (MCM) angepasst. Die Zertifizierung wurde in Mirosoft Certified Solution Master (MCSM) umbenannt. Für Lync 2013 heißt diese Zertifizierung nun MCSM Communication. Als Vorraussetzung wird ab dem 01.01.2013 der MCSE Communication benötig. Der erste Kurs findet im Mai 2013 statt und die Registrierung ist über diesen Link erreichbar.

Wer sich für den MCSM Communication entscheidet, sollte vorher genau darüber nachdenken. Nicht nur, das man sehr viel zeit investieren muss, es sind insgesammt 3 Wochen On Site Training und zahlreiche Vorbereitungen nötig. Alleine nur das Traning kostet 18500 $, dazu kommen noch der Aufenthalt in Redmond und natürlich kann man in dieser Zeit keine Aufträge von Kunden annehmen.

Alles in allem also ein imens hoher Aufwand, welchen man sich genau überlegen sollte.

<span class="entry-utility-prep entry-utility-prep-cat-links">Posted in</span> Training | Leave a comment

Lync Aries Phones CU7 update, Music on Hold ist jetzt auch möglich

Nun gibt es auch für die Lync Aries Telefone das aktuelle CU7 update.

Durch das Update unterstützen diese Telefone dann auch Music on Hold (MoH). Es wird hier die default.wma abgespielt. Diese Media datei ist in das Firmwareupdate integriert und kann nicht wie bei den Lync Clients ausgetauscht werden.

Zum Aktivieren von MoH muss allerdings noch die entsprechende Client Policy angepasst werden. Es reicht aber aus diese Global zu aktivieren:

Set-CSClientPolicy Global -EnableClientMusicOnHold:$TRUE

Zusätzlich werden auch Anmeldeprobleme der sogenannten lync Common Area Phones behoben und diverse kleinere Fehler.

  • Lync Phone Edition (Aries für Polycom CX500, CX600 & CX3000)      KB2737911 –  download
  • Lync Phone Edition (Aries für Aastra 6721ip und Aastra 6725ip)         KB2737909  – download
  • Lync Phone Edition (Aries für HP 4110 und HP 4120)                            KB2737910 –  download
  • Lync Phone Edition (Tanjay für Polycom CX700 & LG Nortel 8540)     KB2737912 –  download
<span class="entry-utility-prep entry-utility-prep-cat-links">Posted in</span> Lync 2013, Lync 2010 | Leave a comment

Lync Aries Phones und Ip Phones können sich nicht mehr mit dem Lync Server verbinden

Wenn sich die Lync Ariesphones un IP Phones wie von Snom nicht richtig anmelden können oder aber sofort nach dem anmelden wieder neu starten. Könnte hierfür das letzte Root CA update von Microsoft verantwortlich sein. Da durch dieses Update die Anzahl der Root CA Zertifikate erhöt wird, ist es dem Telefon nicht mehr möglich diese Liste abzufragen. Abhilfe schaft hier, manuell nur die benötigten Zertifikate zu behalten oder wie weiter unten in dem MS Link beschrieben, die Registry entsprechend anzupassen.

 Mit dem Patchday wird auch der folgenden Hotfix als „optionales Update“ via WSUS oder Windows Update angeboten: http://support.microsoft.com/kb/931125/en-us

Dieser Hotfix aktualisiert “nur” die Root Certificates, kann aber auch zur Folge haben, dass diese Liste auf den Servern zu groß und einen Kommunikation dadurch unmöglich wird.

Wenn man das Protokoll der betroffenen Telefon mit Wireshark mitschneiden würde, wird man sicherlich auch entsprechende Zertifikatsfehler finden. Im Eventlog der betroffenen Lync FE und Edge ervern wird man zahlreiche Schannel Fehler feststellen.

Abhilfe schaft hier die folgende Vorgehensweise von Microsoft

http://support.microsoft.com/kb/2464556

<span class="entry-utility-prep entry-utility-prep-cat-links">Posted in</span> Lync 2013, Lync 2010 | Leave a comment

Neue Visio Stencils für Office 2013

Microsoft hat ein neues Viso Stencil veröffentlicht. Hier werden über 300 neue Symbole aus dem ganzen Office 2013 Bereich inclusive Exchange, Lync, Sharepoint aktualisiert.

<span class="entry-utility-prep entry-utility-prep-cat-links">Posted in</span> Allgemein | Leave a comment

Lync Server 2013 von der Evaluierungversion auf eine Vollversion aktualisieren ohne neu zu installieren

Wenn Sie die Evaluierungsversion von Microsoft Lync Server 2013 installiert haben, müssen Sie diese Version spätestens 180 Tage nach der Installation mit einer lizenzierten Kopie der Software aktualisieren. Es ist jedoch nicht notwendig, die Evaluierungsversion vollständig zu deinstallieren und anschließend die lizenzierte Version zu installieren. Stattdessen können Sie nach dem Erhalt eines gültigen Lizenzschlüssels die Evaluierungsversion von Lync Server 2013 aktualisieren, indem Sie die folgenden Schritte auf jedem Computer ausführen, der als Lync Server Front-End-Server, Director oder Edgeserver genutzt wird. Beachten Sie, dass Computer, die für andere Serverrollen (z. B. Monitoring-Server oder Archivierungsserver) verwendet werden, nicht aktualisiert werden müssen.

Es wird dazu nur die Original Software der Lync 2013 Vollversion benötigt.

msiexec.exe /fvomus server.msi EVALTOFULL=1 /qb

Es muss hier eventuell der vollständige Pfad zum Setup server.msi angegeben werden. (Dies ist der Pfad zum installations Medium der Vollversion)

Nachdem die Installation dann erfolgreich durchgeführt wurde muss noch in der Lync Command shell folgender Befehl ausgeführt werden:

Enable-CsComputer

Wenn sie nich sicher sind, welche Version installiert ist, kann man folgenden Befehl in der Lync Command Shell ausführen:

Get-CsServerVersion

<span class="entry-utility-prep entry-utility-prep-cat-links">Posted in</span> Lync 2013 | Leave a comment

Achtung Release Notes für Lync 2013 RTM durchlesen!

Es lohnt sich die aktuellen Release Notes einmal durchzulesen, bevor man Lync 2013 RTM in seiner Lync 2010 oder auch OCS 2007 R2 Umgebung implementiert.

Released Notes Lync 2013 RTM

Wenn Sie eine größere Umgebung haben und öfters Benutzer in andere Organisationseinheiten (OU’s) verschieben. Führt dies dazu, das diese User nicht mehr über den Adressbuch Service aktualisiert werden und Änderungen nicht im Lync 2013 Adressbuch angezeigt werden. Es ist dann nur noch möglich den sognannten DN (Distinguished Name) auf den ursprünglichen Wert zu ändern, damit das Adressbuch wieder aktualisiert wird.

Dieses Problem soll aber mit dem CU1 behoben werden.

<span class="entry-utility-prep entry-utility-prep-cat-links">Posted in</span> Lync 2013 | Leave a comment

Aktuelle User Verbindungen eines Lync Registrar Pool abfragen

Um die aktuellen User Verbindungen zu einem Lync Registrar Pool abzufragen, wird ein entsprechender PS Script benötigt.

Vielen Dank an Mahmoud Badran. Der PS Script Connections.ps1 ermöglicht es durch verschiedene Parameter können alle Verbindungen des Registrar Pools oder aber auch einzelne User Abgefragt werden.

#################################################################################################
# Connections.ps1
#
# Program to pull Lync connection information.
# This program will pull complete information across all
# frontend servers in a pool.  It can also be used to find
# specific connection information on an individual user by
# supplying the user’s sip address.  The parameter for
# the pool to access for connection information can be
# pre-populated so it doesn’t have to be passed on the command line.
# Also it List all the connected Users.
#
# ACKNOWLEDGEMENT: This program’s database connection information
#                  was originally taken from the “List Connections
#                  to Registrar Pools” submitted by Scott Stubberfield
#                  and Nick Smith from Microsoft to the Lync 2010
#                  PowerShell blog
#                  (http://blogs.technet.com/b/csps/) on June 10, 2010.
#
# NOTE: In order to gain remote access to each frontend server’s
#       RTCLOCAL database where connection information is found,
#       you need to open the local firewall for port 1434.
#       Also, need to go into the SQL Server Configuration Manager
#       and for RTCLOCAL, enable named pipes and restart the SQL
#       service for the named pipes to take effect.
#
#       Port 1434 is required in order to make the connection to
#       the named instance RTCLOCAL on the remote machines.
#
#
# Written by: Tracy A. Cerise (tracy@uky.edu)
#       Date: March 2011
# ——————–
#
# Modification History
# Written by: Mahmoud Badran (v-mabadr@microsoft.com)
# Date: July 2011
# ——————–
#
# Could add # users with enterprise voice enabled and other
# individual stats to this page as well
#
#################################################################################################

##########################################################
# Commandline Parameters to use for running this program #
##########################################################
param($Pool = “cs-se.fabrikam.com”, $SIPAddr, $FilePath, [switch] $Help)

#################################################################################################
#################################       Functions       #########################################
#################################################################################################

function GetData {

param ($sipAddr = $null, $server)

##############################################################################################
# Went to using a named parameter for this function due to the
# way Powershell does its thing with parameter passing, which
# is NOT GOOD!  At any rate, need to call this function
# as you would from a command line: GetData -sipAddr “value”
# -server “value”
#
# Also, assuming a value of NULL for the SIP address of an
# individual user, mostly to use this for finding overall
# values, only occasionally to seek specific users.
##############################################################################################

if ($sipAddr) {
$whereClause = “where R.UserAtHost = ‘$sipAddr’ ”
}
else {
$whereClause = $null
}

#Define SQL Connection String
$connstring = “server=$server\rtclocal;database=rtcdyn;trusted_connection=true;”

#Define SQL Command
$command = New-Object System.Data.SqlClient.SqlCommand

$command.CommandText = “Select (cast (RE.ClientApp as varchar (100))) as ClientVersion, R.UserAtHost as UserName, Reg.Fqdn `
From rtcdyn.dbo.RegistrarEndpoint RE `
Inner Join `
rtc.dbo.Resource R on R.ResourceId = RE.OwnerId `
Inner Join `
rtcdyn.dbo.Registrar Reg on Reg.RegistrarId = RE.PrimaryRegistrarClusterId `
$whereClause `
Order By ClientVersion, UserName ”

$connection = New-Object System.Data.SqlClient.SqlConnection
$connection.ConnectionString = $connstring
$connection.Open()

$command.Connection = $connection

$sqladapter = New-Object System.Data.SqlClient.SqlDataAdapter
$sqladapter.SelectCommand = $command

$results = New-Object System.Data.Dataset

$recordcount=$sqladapter.Fill($results)

$connection.Close()

return $Results.Tables[0]
}
#################################################################################################

function Help {


NAME
Connections.ps1

SYNOPSIS
Returns current connection count for all frontend servers in a given pool
including a breakdown of connection by client, frontend server and users.

It can also be used to return connection information on an individual user.

SYNTAX
Connections.ps1 [-Pool <PoolFQDN>] [-SIPAddr] [-FilePath] [-help]

DESCRIPTION
This program will return a connection count for a given pool.  The program
can be edited to set a default pool.  You will also be able to get
information on an individual user by providing the users SamAccountName.
As well as listing all the connected users to the default pool.

EXAMPLES

————————– EXAMPLE 1 ————————–

C:\PS>connections.ps1

Description
———–
Returns information on all connections on all frontend servers in the
default pool that has been hard-coded into the program.

————————– EXAMPLE 2 ————————–

C:\PS>connections.ps1 -Pool alternate.pool.fqdn

Description
———–
Returns information on all connections on all frontend servers in the
pool given with the pool parameter.

————————– EXAMPLE 3 ————————–

C:\PS>connections.ps1 -SIPAddr userid@sip.domain

Description
———–
Returns all connection information for the given user including which
frontend server connected to, how many connections and which clients
connected with.

————————– EXAMPLE 4 ————————–

C:\PS>connections.ps1 -filepath c:\path\to\file\filename.csv

Description
———–
Returns information on all connections on all frontend servers in the
default pool that has been hard-coded into the program and in addition
writes out all the raw connection information into the filename specified.


exit

}
#################################################################################################

#################################################################################################
#################################     Main Program      #########################################
#################################################################################################

#############################################
### Main program
#############################################

# If the help switch is toggled
if ($help) {
Help
}

#
# Here is where we pull all the frontend server(s) from our topology for the designated
# pool and iterate through them to get current connections from all the servers.
#
# There are three possibilities here:
#    1. Have collection of frontend servers
#    2. Have a single frontend server or
#    3. Have no servers
#
# Only need to check for the first two cases, the third is implied otherwise…

$feServers = Get-CsComputer -Pool $Pool

if ($feServers.count) {
# Frontend pool collection, iterate through them
for ($i=0; $i -lt $feServers.count; $i++) {

if ($SIPAddr) {
$data = GetData  -sipAddr $SIPAddr -server $feServers[$i].identity
}
else {
$data = GetData -server $feServers[$i].identity
}

# Since an individual user’s connections are all homed on one server, won’t have
# data coming back from all frontend servers in the case of searching for a
# single user
if ($data) {
$overallrecords = $overallrecords + $data
}
}
}
elseif ($feServers) {
# Have a standalone server or a FE pool of only one server
if ($SIPAddr) {
$data = GetData  -sipAddr $SIPAddr -server $feServers.identity
}
else {
$data = GetData -server $feServers.identity
}

# Make sure we have data to work with…
if ($data) {
$overallrecords = $data
}
}

# Check to see if we have any data to act on
if (! $overallrecords) {
write-host -ForegroundColor Yellow “`r`nNothing returned from query!`r`n”

# Nothing else to do
exit
}
else {
$count=0

$userHash = @{}
$clientHash = @{}
$serverHash = @{}
$userlist = @{}

$overallrecords | foreach-object {
# Each record has three components: Connected Client Version, User’s SIP
# address and the frontend server’s FQDN.  Here, we’ll build a hash
# for each of these components for each record.

# Build hash of users

$userlist = ($_.UserName)
if (! $userHash.ContainsKey($_.UserName)) {
$userHash.add($_.UserName, 1)
}
else {
$userHash.set_item($_.UserName, ($userHash.get_item($_.UserName) + 1))
}

# Build hash of servers
if (! $serverHash.ContainsKey($_.fqdn)) {
$serverHash.add($_.fqdn, 1)
}
else {
$serverHash.set_item($_.fqdn, ($serverHash.get_item($_.fqdn) + 1))
}

# Build hash of clients
# Lets get rid of the extraneous verbage from the client version names, if applicable
if ($_.ClientVersion.contains(‘(‘)) {
# Get rid of extraneous verbage
$clientName = $_.ClientVersion.substring(0, $_.ClientVersion.IndexOf(‘(‘))
}
else {
# Have a client name with no extraneous verbage
$clientName = $_.ClientVersion
}

if (! $clientHash.ContainsKey($clientName)) {
$clientHash.add($clientName, 1)
}
else {
$clientHash.set_item($ClientName, ($clientHash.get_item($ClientName) + 1))
}

$count++
}
}

################################
####  Output Query Results  ####
################################

# If output to file is chosen, then write out the results and a note to that effect
# then exit

if ($FilePath) {
$overallrecords | Export-Csv $FilePath

write-host -foregroundcolor green “`r`nQuery Results written to $FilePath`r`n”

exit
}

write-host -foregroundcolor cyan “`r`nClient Version/Agent                   Connections”
write-host -foregroundcolor cyan “————————————————–”

foreach ($key in $clientHash.keys) {
# Break down client version into its two component parts and print
# them out along with their respective counts in a nice format
$index = $key.indexof(” “)

if ($index -eq “-1″) {
# No second part
$first = $key
$second = ” ”
}
else {
# Client version/agent has to main parts
$first = $key.substring(0, $index)
$second = $key.substring($index + 1)
}

$value = $clientHash.$key

“{0, -20} {1, -20} {2, 5}” -f $first, $second, $value
}

write-host -foregroundcolor cyan “————————————————–”

write-host -foregroundcolor cyan “`r`n`r`nFrontend Server     Connections”
write-host -foregroundcolor cyan “——————————-”

foreach ($key in $serverHash.keys) {

$value = $serverHash.$key

“{0, -22} {1, 5}” -f $key, $value
}

write-host -foregroundcolor cyan “——————————-”

“{0, -22} {1, 5}” -f “Total connections…”, $count
“`r`n”

write-host -foregroundcolor cyan “Total Unique Users/Clients”
write-host -foregroundcolor cyan “——————————-”
“{0, -22} {1, 5}” -f “Users……………”, $userHash.count
“{0, -22} {1, 5}” -f “Client Versions…..”, $clientHash.count
write-host -foregroundcolor cyan “——————————-”
“`r`n”

write-host -foregroundcolor cyan “Connected Users List”

foreach ($key in $userHash.keys) {
$value = $userHash.$key

“{0, -22} {1, 5}” -f $key, $value
}

write-host -foregroundcolor cyan “——————————-”
“`r`n”

Write-Host -ForegroundColor Green “Query complete`r`n”

<span class="entry-utility-prep entry-utility-prep-cat-links">Posted in</span> Lync 2013, Lync 2010 | Leave a comment

Lync 2013 App für Windows 8

Microsoft hat jetzt auch eine Lync 2013 App für Windows 8 veröffentlicht, welche sich über den Windows Store installieren lässt. Diese App kann über die Suche, durch Eingabe von Lync oder durch den nachfolgenden Link gefunden und installiert werden.

http://apps.microsoft.com/webpdp/app/ba4b9485-8712-41ff-a9ea-6243a3e07682

Beim Starten eine Onlinemeetings, wird man dann gefragt, das ganze mit dem Lync Client oder der Lync App zu starten. Sollte man dann fälschlicherweise die Lync App ausgewählt haben, lässt sich das jederzeit über die Windows 8 Funktion Standardprogramme auf Lync 2013 (Desktop) ändern.

10-11-2012-08-34-22.png

In Windows 8 kann man die Programme von den Apps, durch die zusätzliche Bezeichnung Desktop unterscheiden.

<span class="entry-utility-prep entry-utility-prep-cat-links">Posted in</span> Lync 2013 | Leave a comment

Lync Konferenz Einwahl im Mobile speichern

Es gibt eine einfache Möglichkeit seine Konferenzeinwahl inklusive der Konferenz ID, Nebenstelle, Pin im Mobile abzuspeichern. Dann ist es nicht mehr nötig alles per Tastatur manuell ein zu geben.

<Konferenzeinwahl>P<Konferenz ID>P*#P<Nebenstelle>P<Pin>#

+491234567,2233441,*#,1000,222222#

Es kann so jede beliebige Konferenz in Outlook speichern und diese dann ganz einfach über das Mobile wählen.

Das ganze geht natürlich noch viel einfacher wenn der Lync Mobile Client installiert ist. Allerdings funktioniert der obige Eintrag mit jedem beliebigen Mobile.

<span class="entry-utility-prep entry-utility-prep-cat-links">Posted in</span> Lync 2013, Lync 2010 | Leave a comment

Lync 2010 CU7 Update Oktober 2012 für Client und Server

Das Update für Lync 2010 Server und Client ist seit dem 11. Oktober verfügbar.

 Product

Version

KB

Download

Lync 2010 (64bit client)

4.0.7577.4356

2737155

MS download

Lync 2010 (32bit client)

4.0.7577.4356

2737155

MS download

Lync 2010 Attendee (User Install)

4.0.7577.4356

2752157

MS download

Lync 2010 Attendee (Admin Install)

4.0.7577.4356

2752160

MS download

Lync Server 2010

4.0.7577.205

2493736

MS download

<span class="entry-utility-prep entry-utility-prep-cat-links">Posted in</span> Lync 2010 | Leave a comment