now the product Guide V2 is available here
This version has the following:
- Download size reduction to 212 MB from 412 MB to accommodate slower download link
- Welcome page includes a link to the hosted SQL Server Virtual labs to try out SQL Server 2012 CTP3 without installation
- 32 (thirty-two) new technical presentations, 2 (two) new datasheets, 1 (one) new white paper, 1 (one) new hands on lab for AlwaysOn, and 7 (seven) new links to SQL Server 2012 resources
Download and ENJOY
after the amazing success of PowerPivot in the previous release of SQL Server 2008 R2 this engine moved to the server side with the same InMemory BI and compression and it’s called the VertiPaq Engine or the Analysis Services Tabular Mode. this 12 minutes video that I’ve created walk you through the installation of the Tabular Analysis Services and a sample Demo of creating a model, getting around it then deploy it. I hope you enjoy it…
Dear SharePoint Geeks,
I’m here again to share with you another interesting tool to help you adopting Windows PowerShell easily to manage and administer SharePoint 2010.
Today’s tool is “Windows PowerShell Command Builder”. Simply, it’s a GUI helps you to build a PowerShell commands for SharePoint Server 2010, SharePoint Foundation 2010, and Office 365.
All you have to do is drag & drop the chosen PowerShell cmdlets (Verb & Noun) over Design Surface area to show all the required and optional parameters in a form of textboxes. Then, fill the textboxes with your values and click “Copy to Clipboard” button to copy it.
You can right-click anywhere inside the builder to install it on your local computer
URL: Windows PowerShell Command Builder
I've developed a small application that will help you test the performance of you SQL engine. the application simply retrieve your Queries from a Pre-set Profiler table and start replicate this in multithreading mode with you set configuration to brute the destination database and you can get out of it of simple Log with all what happened to the database, or you can start your profiler on it and do your statistics. the application is very simple you choose the queries you want to run and how many Users, the think time and new user join every what interval. you have you go test your database.
To download the application executable or source code please visit the application page on my web site
http://www.docs.sqldair.com/performance-tuning/profiler-replicator-download-it-now/
or on Codeplex
http://sqldair.codeplex.com/
waitting for your feedback on wagdy@Sqldair.com
Hossam Kamel; One of our DPE Speiclialist has prepared this nice Step by Step guide to easily Publish Applications To WP7 MarketPlace. Check it out !!
As Said by the DPE Team;
"We have developed this guide in essence of helping you get exposed to the most common errors that face developers when creating and submitting Applications on Market Place and provide prescriptive guidance as to how to address those but more importantly how to proactively avoid pitfalls."
You Can reach Hossam @ http://weblogs.asp.net/HosamKamel
Virtualized SharePoint farms are becoming increasing prevalent in the market and with the advances and capabilities offered in HyperV, these farms are becoming increasingly sophisticated.In order to realize the benefits of virtualizing SharePoint farms, a careful process of planning, architecture and management have to be put in place.In this post , we’ll get to discuss the why’s and when’s of virtualizing SharePoint farms going over the advantages as well as trade-offs as well as best practices that should be adhered to.We will not be discussing High Availability considerations in this post.
SharePoint farms are made up of three primary server roles, Web Servers or Web Front Ends (WFEs), Application Servers and finally Database servers. Each of these 3 types of servers differs greatly in their capacity to be virtualized due to their different utilization of system resources.
Web Front Ends (WFEs) are an excellent candidate for virtualization. WFEs can be added and removed as needed. Its low disk activity and hence low I/O operations are one of the core reasons as to why it is a good candidate for virtualization.
Application servers host SharePoint Service applications. These service applications differ in their utilization of system resources based on their functionality.They will also impact the different server roles differently from each other. Accordingly, for the sake of analyzing them from a virtualization perspective, into 3 main classes, Indexing Servers, Query Servers, Application servers hosting all other SAs.
The search process is generally split down into 2 main phases, crawling and querying. The query component is responsible for handling user queries.
The index servers contain the latest up to date index via crawlers that routinely crawl content sources for new/updated content. This role is generally very IO intensive and therefore it is not always the optimum case to virtualize.
Other application servers hosting service applications such as excel, Visio, performance point….These servers are also very good candidates for virtualization.
The database server hosts all of the data for the SharePoint farm over several databases; these include but are not limited to;
SharePoint Server 2010 can be deployed on SQL Server 2005, 2008 or 2008 R2. All of the aforementioned versions support virtualization.As with the indexing servers, database servers are extremely I/O intensive and thus are not always prime candidates for virtualization.Virtualized SQL Servers typically perform slower than their physical counterparts, however utilizing the latest Hyper-V technologies that come part of Windows Server 2008 R2, the same throughput can be achieved on virtualized SQL servers at the cost of slightly increased CPU usage.
It’s my pleasure to announce the beta release of the first Windows PowerShell snap-in for Microsoft Application Virtualization (App-V) Server 4.6 SP1. This snap-in provides a set of PowerShell Cmdlets to enable IT admins to easily manage and automate App-V Server complex tasks using Microsoft Windows PowerShell.
This release contains 23 cmdlets that cover around 80% of GUI wizards and tasks with more deep details on what happens in the back. :-)
Cmdlets
System Options
Packages
Application Groups
Applications
Administrators
Server Groups
Servers
Providers
Download: PowerShell snap-in for Microsoft App-V Server 4.6 SP1
Regards,
Sherif Talaat (Twitter: @Sheriftalaat)
This software is provided "AS IS", without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
This software is 3rd party tool not part of Microsoft App-V Server.
It’s my pleasure to announce that Community Technology Preview (CTP) #1 of Windows Management Framework v3.0 is now available for download and to be installed on Windows 7 SP1 and Windows Server 2008 R2 SP1. Windows Management Framework v3.0 comes with a lot of new features and enhancements in WMI and WinRM in addition to Windows PowerShell v3.0
Windows PowerShell 3.0Some of the new features in Windows PowerShell 3.0 include:
WMIWMI in Windows Management Framework 3.0 CTP1 introduces:
WinRMWith Windows Management Framework 3.0 CTP1:
Download: Windows Management Framework 3.0 - Community Technology Preview (CTP) #1
If you are one of SCCM administrators and one of you nightmares is the bulk of error messages you receive due to misconfiguration of IIS WebDAV settings, and you are looking for a way to kill you pain. So, it’s my pleasure to inform you that finally you reached your destination. :) :)
In the next few lines I’ll show you how I used AppCmd with PowerShell flavor to automate the process of configuring IIS WebDAV settings in order to smoothly install SCCM 2007 on Windows Server 2008.
So, what’s AppCmd?!
AppCmd.exe is a command-line utility used to for building advanced management actions and administration tasks for IIS 7.0. This tool resides under “%SystemRoot%\System32\InetSrv\”.
For more info about AppCmd … Check this article
In the script below, I used AppCmd to change WebDAV settings, then compiled it in a form of script using PowerShell. The syntax is very straightforward just read the comment before each command-line and you will know the function.
# ---- Start of Code ----- #
# Load AppCmd Directory
$AppCmdDirectory = $env:SystemRoot + "\System32\inetsrv"
cd $AppCmdDirectory
# Enable WebDav
.\appcmd.exe set config "Default Web Site/" /section:system.webServer/webdav/authoring /enabled:true /commit:apphost
# Add Authoring Rule
.\appcmd.exe set config "Default Web Site/" /section:system.webServer/webdav/authoringRules /+"[Users='*',path='*',access='Read']" /commit:apphost
# Enable "Allow Anonymous Property Queries"
.\appcmd.exe set config "Default Web Site/" /section:system.webServer/webdav/authoring /properties.allowAnonymousPropfind:True /commit:apphost
# Enable "Allow Anonymous Property Queries with infinite depth"
.\appcmd.exe set config "Default Web Site/" /section:system.webServer/webdav/authoring /properties.allowInfinitePropfindDepth:True /commit:apphost
# Disable "Allow Custom Properties"
.\appcmd.exe set config "Default Web Site/" /section:system.webServer/webdav/authoring /properties.allowCustomProperties:false /commit:apphost
# Enable "Allow Hidden Files to be listed"
.\appcmd.exe set config "Default Web Site/" /section:system.webServer/webdav/authoring /fileSystem.allowHiddenFiles:True /commit:apphost
# ---- End of Code ----- #
WebDAV changes in this scripts happens according to this article: How to Configure Windows Server 2008 for Configuration Manager 2007 Site Systems
Regards Sherif Talaat (Twitter: @Sheriftalaat)
It’s possible to reset your Windows Sever 2008 / R2 Domain Controller administrator password using your installation CD.
1. Restart your Windows server 2008 DC with the installation CD2. Choose your language and click next
3. Select your partition and installation version and click Next
4. Click on Comm and Line Prompt
5. Change directory to the access the system 32 directory. Then your original C:drive is changed to D: or E: depending on the number of drive and partitions you have on that system.
6. Rename the file Utilman.exe to Utilman.exe.bak using the comm and Copy Utilman.exe Utilman.exe.bak.
7. Using Command Move Cmd.exe Utilman.exe to move CMD.exe file into Utilman.exe. Press O or Y to accept after that restart your Computer normaly
8. At the user logon screen, press a combination of Windows KEY+U, then the CMD.exe will appear. Type net user “Username””new password”;
Then your system Admin Password is reset. Please don’t forget to rename back Utilman. Exe ->Cmd.exe and Utilman.exe.bak-> Utilman.exe after getting back access.
Sometimes, when you receive an e-mail in outlook with an attachment, you receive a message informing you that outlook blocked access to this unsafe attachment.
You receive this message due to a security feature in outlook that blocks attachments with a specific file extension (e.g. *.EXE, *.VBS, *.PS1) that might put your computer at risk. You can’t open, save, or even delete it.
According to Microsoft KB Article #829982, there are four different ways to get your attachment, but these ways will require either the sender to change the file extension and re-send it or the Exchange administrator to change the security policies. The first scenario might fail if your company has a smart e-mail protection solution that scans the file itself regardless the extension. The second scenario always fail because there is no admin on earth would like to put himself and his environment in a risk because of email attachment. :)
Don’t worry, always there is a solution. According to the same KB article you can edit a few registry keys to change the outlook’s attachment security settings on your local machine. But first you should know and always remember that serious problems might occur if you modify the registry incorrectly. :)
Well, instead of taking the risk of editing the registry manually and corrupting your system. I wrote a GUI PowerShell script that edit registry instead of you to avoid any unwanted changes.
The interface is very simple. All you have to do is just write down the extension, chose wither allow or block, save your changes, and then restart your outlook.
Download Outlook's Attachment Security Editor
I’m writing this post to share with you a very interesting PowerShell script called “AutoSPInstaller”, this script developed by Brian Lalancette for an easier SharePoint 2010 deployment process.This script downloads the files required by PrerequisiteInstaller.exe in advance. So, you can complete your SharePoint’2010 installation Offline.
All you have to do is just run the script, download the files, and then use the appropriate command-line switch with PrerequisiteInstaller.exe to allow installation from a locally stored hotfixes and prerequisites.
Download AutoSPInstaller
The goal of this post is to show you how you can use Windows PowerShell to call .NET Method().
Simply, all you have to know is the namespace, assembly name, and the method name.
So, how can I do that ?!
In the following example I'll use Membership.GeneratePassword Method to generate a Complex Passwords randomly
# namespace: System.Web.Security # assembly: System.Web (in System.Web.dll) # method: GeneratePassword(int length, int numberOfNonAlphanumericCharacters)
#Load "System.Web" assembly in PowerShell console [Reflection.Assembly]::LoadWithPartialName("System.Web") #Calling GeneratePassword Method [System.Web.Security.Membership]::GeneratePassword(10,0)
http://technet.microsoft.com/en-us/library/hh322889(WS.10).aspx
Was just annouced today August 2nd 2011.
:-) it has something for everyone.
Khaled Hnidk (Twitter:@khnidk)
This ending week I encountered an interesting case where an organization has a large # of stand-alone servers (not joined to a domain controller). The number is 750++ servers and growing. The challenge was how to manage identity on the servers.
Fast forward skipping the discussions why these servers are stand alone and not joined to an Active Directory forest.
FIM as it stands provides brilliant support for Active Directory yet it doesn’t provide an out of the box support for WinNT account storage. A custom M/A was due. Code is attached to this post; hope it helps you in a similar situation. Some notes:
The M/A provides the following features:
How the code works:
In addition to the code, I have attached M/A metadata file and an export to ease the deployment operation on your end you can use FIM Management Agent Packaging utility to generate your own named M/A.
For more information on how to create a custom M/A
Creating Connected Data Source Extensions: http://msdn.microsoft.com/en-us/library/ms695383.aspx How to create Management Agents: http://msdn.microsoft.com/en-us/library/ms695385.aspx
Questions & comments? The easiest way is find me on Twitter: @khnidk
Khaled Hnidk
The following script could be copied to %windir%/system32 as connections.ps1 in order to run it from Lync powershell directly.
It will list all the number of connectios to the registrar pool; i have added Listing all user aliases connected to Lync within the main Function.
################################################################################################## 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 toggledif ($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 onif (! $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.countwrite-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"
Did you download it ??... Not Yet...
Go NOW and GET CTP3 from the below URL
http://www.microsoft.com/sqlserver/en/us/default.aspx
These Ports should be open from Client side to Server Side
Required Server Ports (by Server Role)
Server role
Service name
Port
Protocol
Notes
Front End Servers
Lync Server Front-End service
5060
TCP
Optionally used by Standard Edition servers and Front End Servers for static routes to trusted services, such as remote call control servers.
Front-End service
5061
TCP(TLS)
Used by Standard Edition servers and Front End pools for all internal SIP communications between servers (MTLS), for SIP communications between Server and Client (TLS) and for SIP communications between Front End Servers and Mediation Servers (MTLS). Also used for communications with Monitoring Server.
444
HTTPS
Used for communication between the Focus (the Lync Server component that manages conference state) and the individual servers.
135
DCOM and remote procedure call (RPC)
Used for DCOM based operations such as Moving Users, User Replicator Synchronization, and Address Book Synchronization.
Lync Server IM Conferencing service
5062
Used for incoming SIP requests for instant messaging (IM) conferencing.
Lync Server Web Conferencing service
8057
TCP (TLS)
Used to listen for Persistent Shared Object Model (PSOM) connections from client.
Web Conferencing Compatibility Service
8058
Used to listen for Persistent Shared Object Model (PSOM) connections from the Live Meeting client and previous versions of Communicator.
Lync Server Audio/Video Conferencing service
5063
Used for incoming SIP requests for audio/video (A/V) conferencing.
57501-65335
TCP/UDP
Media port range used for video conferencing.
Web Compatibility service
80
HTTP
Used for communication from Front End Servers to the web farm FQDNs (the URLs used by IIS web components) when HTTPS is not used.
Lync Server Web Compatibility service
443
Used for communication from Front End Servers to the web farm FQDNs (the URLs used by IIS web components).
Lync Server Conferencing Attendant service (dial-in conferencing)
5064
Used for incoming SIP requests for dial-in conferencing.
5072
Used for incoming SIP requests for Microsoft Lync 2010 Attendant (dial in conferencing).
Front End Servers that also run a Collocated Mediation Server
Lync Server Mediation service
5070
Used by the Mediation Server for incoming requests from the Front End Server to the Mediation Server.
5067
Used for incoming SIP requests from the PSTN gateway to the Mediation Server.
5068
5081
Used for outgoing SIP requests from the Mediation Server to the PSTN gateway.
5082
Lync Server Application Sharing service
5065
Used for incoming SIP listening requests for application sharing.
49152-65335
Media port range used for application sharing.
Lync Server Conferencing Announcement service
5073
Used for incoming SIP requests for the Lync Server Conferencing Announcement service (that is, for dial-in conferencing).
Lync Server Call Park service
5075
Used for incoming SIP requests for the Call Park application.
Audio Test service
5076
Used for incoming SIP requests for the Audio Test service.
Not applicable
5066
Used for outbound Enhanced 9-1-1 (E9-1-1) gateway.
Lync Server Response Group service
5071
Used for incoming SIP requests for the Response Group application.
8404
TCP (MTLS)
Lync Server Bandwidth Policy Service
5080
Used for call admission control by the Bandwidth Policy service for A/V Edge TURN traffic.
448
Used for call admission control by the Lync Server Bandwidth Policy Service.
Front End Servers where the Central Management store resides
CMS Replication service
445
Used to push configuration data from the Central Management store to servers running Lync Server.
All internal servers
Various
49152-57500
Media port range used for audio conferencing on all internal servers. Used by all servers that terminate audio: Front End Servers (for Lync Server Conferencing Attendant service, Lync Server Conferencing Announcement service, and Lync Server Audio/Video Conferencing service), and Mediation Server.
Directors
Optionally used for static routes to trusted services, such as remote call control servers.
Used for internal communications between servers and for client connections.
Mediation Servers
Used by the Mediation Server for incoming requests from the Front End Server.
Used for incoming SIP requests from the PSTN gateway.
Used for SIP requests from the Front End Servers.
These Ports should be open from Server side to Client Side
Required Client Ports
Component
Clients
67/68
DHCP
Used by Lync Server 2010 to find the Registrar FQDN (that is, if DNS SRV fails and manual settings are not configured).
Used for client-to-server SIP traffic for external user access.
TCP (PSOM/TLS)
Used for external user access to web conferencing sessions.
TCP (STUN/MSTURN)
Used for external user access to A/V sessions and media (TCP)
3478
UDP (STUN/MSTURN)
6891-6901
Used for file transfer between Lync 2010 clients and previous clients (clients of Microsoft Office Communications Server 2007 R2, Microsoft Office Communications Server 2007, and Live Communications Server 2005).
1024-65535 *
Audio port range (minimum of 20 ports required)
Video port range (minimum of 20 ports required).
Peer-to-peer file transfer (for conferencing file transfer, clients use PSOM).
Application sharing.
Microsoft Lync 2010 Phone Edition for Aastra 6721ip common area phone Microsoft Lync 2010 Phone Edition for Aastra 6725ip desk phone
Microsoft Lync 2010 Phone Edition for Polycom CX500 common area phone
Microsoft Lync 2010 Phone Edition for Polycom CX600 desk phone
Used by the listed devices to find the Lync Server 2010 certificate, provisioning FQDN, and Registrar FQDN.
1xx—Informational Responses100 Trying180 Ringing181 Call Is Being Forwarded182 Queued183 Session Progress
2xx—Successful Responses200 OK202 accepted: It Indicates that the request has been understood but actually can't be processed
3xx—Redirection Responses300 Multiple Choices301 Moved Permanently302 Moved Temporarily305 Use Proxy380 Alternative Service
4xx—Client Failure Responses400 Bad Request401 Unauthorized (Used only by registrars or user agents. Proxies should use proxy authorization 407)402 Payment Required (Reserved for future use)403 Forbidden404 Not Found (User not found)405 Method Not Allowed406 Not Acceptable407 Proxy Authentication Required408 Request Timeout (Couldn't find the user in time)409 Conflict410 Gone (The user existed once, but is not available here any more.)412 Conditional Request Failed413 Request Entity Too Large414 Request-URI Too Long415 Unsupported Media Type416 Unsupported URI Scheme417 Unknown Resource-Priority420 Bad Extension (Bad SIP Protocol Extension used, not understood by the server)421 Extension Required422 Session Interval Too Small423 Interval Too Brief424 Bad Location Information428 Use Identity Header429 Provide Referrer Identity433 Anonymity Disallowed436 Bad Identity-Info437 Unsupported Certificate438 Invalid Identity Header480 Temporarily Unavailable481 Call/Transaction Does Not Exist482 Loop Detected483 Too Many Hops484 Address Incomplete485 Ambiguous486 Busy Here487 Request Terminated488 Not Acceptable Here489 Bad Event491 Request Pending493 Undecipherable (Could not decrypt S/MIME body part)494 Security Agreement Required
5xx—Server Failure Responses500 Server Internal Error501 Not Implemented: The SIP request method is not implemented here502 Bad Gateway503 Service Unavailable504 Server Time-out505 Version Not Supported: The server does not support this version of the SIP protocol513 Message Too Large580 Precondition Failure
6xx—Global Failure Responses600 Busy Everywhere603 Decline604 Does Not Exist Anywhere606 Not Acceptable
http://en.wikipedia.org/wiki/List_of_SIP_response_codes
http://www.tmcnet.com/it/0801/0801radv.htm
Various standards organizations have considered signalling for voice and video over IP from different approaches. Two of the primary standards in use today are H.323 and SIP. The International Telecommunications Union (ITU) established H.323 as the first communications protocol for real time multimedia communication over IP. SIP is the Internet Engineering Task Force (IETF) approach to voice and video over IP.
H.323 is an umbrella standard that provides well-defined system architecture, implementation guidelines that cover the entire call set-up, call control, and the media used in the call. Whereas H.323 takes the more telecommunications-oriented approach to voice/video over IP, SIP takes an Internet-oriented approach. SIP is a text-based protocol that was designed to work hand in hand with other core Internet protocols such as HTTP. Many functions in a SIP-based network rely upon complementary protocols, including IP.
The different entities that make up an H.323 network include gateways, terminals, and conferencing bridges, along with a gatekeeper. The H.323 architecture is peer-to-peer, supporting user-to-user communications without a centralized controlling entity. SIP entities include user agents that may operate as a client or server, depending on the role in any particular call. A SIP architecture requires a proxy server to route calls to other entities and a registrar. All other servers and parts of the network are undefined and not mandatory for every call.
H.323 call information is written in binary code, with a defined set of translations for each code. This was done to reduce the size of the transmission and save bandwidth. New codes have to have an agreed-upon definition between parties prior to a call. The standard can be updated, but any additions to the standard require backward compatibility with the existing standard. Features can only be added, not subtracted.
SIP itself only defines the initiation of a session. All other parts of the session are covered by other protocols, which may come from other applications or functions not necessarily designed for real time multimedia over IP. SIP commands are coded in text rather than binary. It's easier to add and understand these codes, but it does increase the size of messages that are sent. This text-coding scheme comes from the Web-browsing scheme, where it has been successful. Numbers don't have to be allocated to commands for each message in advance. If text commands are added, the other side automatically understands them.
SIP is less defined and more open than ITU standards like H.323, but that can result in interoperability difficulties because of different implementations of the standard. Every developer may implement their own version of SIP with unique extensions that aren't included in the basic standard. Two variations used today are SIP-T, which addresses SIP telephony, and DCS, a variation for packet cable voice over IP transmission. In addition to this, there are numerous proposals for using SIP for other applications, such as appliances and instant messaging, each of which have their own extensions that aren't in the basic standard.
While SIP's openness allows more interoperability with other protocols, this same openness can lead to interoperability problems because the lack of definition in the protocol itself means there are a number of different interpretations, each of which may have difficulty interoperating with others. In addition, to date there are more than 80 contributions to SIP, all of which add to the complexity of interoperability issues. "SIP Bake-offs" provide vendors an opportunity to test their products for interoperability. However, as the number of flavors of SIP implementations increase, together with increasing extensions, the completeness and effectiveness of such testing will decrease.
Both protocols provide comparable functionality using different mechanisms and provide similar quality of service. While SIP is more flexible and scalable, H.323 offers better network management and interoperability. The differences between the two protocols are diminishing with each new version. Although there are numerous industry debates about the merits of the two protocols, the truth is that both of them, along with other complementary protocols, are necessary to provide universal access and to support IP-based enhanced services.
Interoperability ScenariosBoth protocols have been widely deployed, so interoperability between SIP and H.323 is essential to ensure full end-to-end connectivity. Because of the inherent differences between H.323 and SIP, accommodation must be made to allow interoperability between the two protocols. In the simplest scenario where both protocols are used within the same administrative domain, call set-up messages must be translated, then RTP can be used for communication directly between a SIP phone and an H.323 phone.
The scenario becomes more complex when SIP and H.323 are operating in separate administrative domains. A gateway is required to translate messages, as well as information on how to find addresses of destination endpoints and convert those addresses so they can be interpreted by the other protocol.
Another issue is capabilities exchange. In H.323, after the call is set up, the two endpoints "announce" what capabilities they have for variables such as compression and video. Because these capabilities are known up front, if a variable -- such as available bandwidth -- changes during the call, the call set-up can be changed in mid-call. This couldnt be done in SIP without initiating a new call. For interactive multimedia communication, the inability of SIP to allow mid-call capabilities negotiation could be significant.
H.323 defines conferencing as part of the standard, including both centralized and decentralized conferencing. SIP has no definition for conferencing, but there is a process within SIP for conferencing that is similar to H.323, but which has not been formally defined as part of the standard. Conferencing remains open to interpretation, with different approaches in use.
Here To StayBoth SIP and H.323 are here to stay. There will very likely not be a "winner" or a "loser" in the SIP versus H.323 debate. Both protocols offer strengths and weaknesses. SIP is extremely flexible and can be adapted to a number of implementations. SIP allows for the use of established protocols from other applications, such as HTTP and HTML. Because these tools are already defined, it's easier to add applications like instant messaging or Web conferencing to SIP. For developers, SIP allows use of a variety of existing building blocks for applications that will interoperate with other Internet applications. Meanwhile, H.323 allows better interoperability, network management, and call control.
Instead of concentrating on one standard versus another, the voice/video over IP community needs to work on better ways of ensuring interoperability between standards to provide end-to-end connectivity throughout the network and to offer the value-added IP-centric services that will demonstrate the power of IP-based communications.
SIP
H.323
"New World" - a relative of Internet protocols -
simple, open and horizontal
"Old World" - complex, deterministic and vertical
IETF
ITU
Carrier-class solution addressing the wide area
Borne of the LAN - focusing on enterprise conferencing priorities
A simple toolkit upon which smart clients and applications can be built.
It re-uses Net elements (URLs, MIME and DNS)
H.323 specifies everything including the codec for the media and how you carry the packets in RTP
Leaves issues of reliability to underlying network
Assumes fallibility of network - an unnecessary overhead
SIP messages are formatted as text.
H.323 messages are ASN.1 binary encoded, adding complexity
Minimal delay - simplified signalling scheme makes it faster
Possibilities of delay (up to 7 or 8 seconds!)
Slim and Pragmatic
The suite is too cumbersome to deploy easily
Seamless interaction with other media -
services are only limited by the developers imagination
Services are nailed-down and constricted
Many vendors developing products
The majority of legacy existing IP telephony products rely on the H.323 suite
Trouble shooting procedures and asking for Help!:
To trouble shoot any problem you face we need to follow some procedure in order to get the most efficient solution to our problems
First we have to specify the problem by:
1) Describe what you are trying to do
2) What steps you took to do number 1 (list the instructions you followed)
3) What error message you are getting
4) What you have done to research the problem (searched bing, google, etc)
5) Lastly ask for a pointer in the direction of the answer, rather than just the answer
Before You Ask
Before asking a technical question by e-mail, or in a newsgroup, or on a website chat board, do the following:
When you ask your question, display the fact that you have done these things first; this will help establish that you're not being a lazy sponge and wasting people's time.
Better yet, display what you have learned from doing these things. We like answering questions for people who have demonstrated they can learn from the answers.
Lastly, if you find your question hasn't been answered in the time you need it to, please don't repost the same question. It may be that no one had the time to look at your question or they may not have the answer. Doing so only fills up people's mailboxes.
Use tactics like doing a Bing search on the text of whatever error message you get (searching technet, blogs, groups as well as Web pages). This might well take you straight to fix documentation or a mailing list thread answering your question. Even if it doesn't, saying "I binged on the following phrase but didn't get anything that looked promising" is a good thing to include in e-mail or news postings requesting help.
Prepare your question. Think it through. Hasty-sounding questions get hasty answers or none at all. The more you do to demonstrate that having put thought and effort into solving your problem before seeking help, the more likely you are to actually get help.
Never assume you are entitled to an answer. You are not; you aren't, after all, paying for the service. You will earn an answer, if you earn it, by asking a substantial, interesting, and thought-provoking question - one that implicitly contributes to the experience of the community rather than merely passively demanding knowledge from others.
On the other hand, making it clear that you are able and willing to help in the process of developing the solution is a very good start. "Would someone provide a pointer?", "What is my example missing?", and "What site should I have checked?" are more likely to get answered than "Please post the exact procedure I should use." because you're making it clear that you're truly willing to complete the process if someone can just point you in the right direction.
Use meaningful, specific subject headers
On mailing lists, newsgroups or Web forums, the subject header is your golden opportunity to attract qualified experts' attention in around 50 characters or fewer.
Don't waste it on babble like "Please help me" (let alone "PLEASE HELP ME!!!!"; messages with subjects like that get discarded by reflex). Don't try to impress us with the depth of your anguish; use the space for a super-concise problem description instead.
One good convention for subject headers, used by many tech support organizations, is "object - deviation". The "object" part specifies what thing or group of things is having a problem, and the "deviation" part describes the deviation from expected behavior.
Stupid:
HELP! Sending mails is not working on my server!
Smart:
Exchange SMTP refuses to send mail.
Smarter:
Exchange 2010 SMTP error code “405 temporary problem”.
Make it easy to reply
Finishing your query with "Please send your reply to... " makes it quite unlikely you will get an answer.
Write in clear, grammatical, correctly-spelled language
We've found by experience that people who are careless and sloppy writers are usually also careless and sloppy at thinking and coding (often enough to bet on,anyway). Answering questions for careless and sloppy thinkers is not rewarding; we'd rather spend our time elsewhere.
Send questions in accessible, standard formats
If you make your question artificially hard to read, it is more likely to be passed over in favor of one that isn't. So:
Send plain text mail, not HTML.
MIME attachments are usually OK, but only if they are real content (such as an attached source file or patch), and not merely boilerplate generated by your mail client (such as another copy of your message).
Don't send e-mail in which entire paragraphs are single multiply-wrapped lines. (This makes it too difficult to reply to just part of the message.) Assume that your respondents will be reading mail on 80-character-wide text displays and set your line wrap accordingly, to something less than 80.
However, do not wrap data (such as log file dumps or session transcripts) at any fixed column width. Data should be included as-is, so respondents can have confidence that they are seeing what you saw.
Never, ever expect people to be able to read closed proprietary document formats.Most people react to these about as well as you would to give them a packed virus.
Be precise and informative about your problem
Describe the symptoms of your problem or bug carefully and clearly.
Describe the environment in which it occurs (machine, OS, application, whatever). Provide your vendor's distribution and release level (e.g.: "Windows 2003 SP1", "Windows 2008 R2", Firmware Version xxx, etc.).
Send ALL the log files and reports related to the problem.
Describe the research you did to try and understand the problem before you asked the question.
Describe the diagnostic steps you took to try and pin down the problem yourself before you asked the question.
Describe any possibly relevant recent changes in your computer or software configuration.
Don't claim that you have found a bug
When you are having problems with a piece of software, don't claim you have found a bug unless you are very, very sure of your ground. Hint: unless you can provide a source-code patch that fixes the problem, or a regression test against a previous version that demonstrates incorrect behavior, you are probably not sure enough. This applies to web pages and documentation, too; if you have found a documentation "bug", you should supply replacement text and which pages it should go on.
The people who wrote the software work very hard to make it work as well as possible. If you claim you have found a bug, you'll be impugning their competence,which may offend some of them even if you are correct. It's especially undiplomatic to yell "bug" in the Subject line.
When asking your question, it is best to write as though you assume you are doing something wrong, even if you are privately pretty sure you have found an actual bug.
If there really is a bug, you will hear about it in the answer. Play it so the maintainers will want to apologize to you if the bug is real, rather than so that you will owe them an apology if you have messed up.
Describe the problem's symptoms, not your guesses
It's not useful to tell programmers what you think is causing your problem. (If your diagnostic theories were such hot stuff, would you be consulting others for help?) So,make sure you're telling them the raw symptoms of what goes wrong, rather than your interpretations and theories. Let them do the interpretation and diagnosis. If you feel it's important to state your guess, clearly label it as such and describe why that answer isn't working for you.
Describe your problem's symptoms in chronological order
The clues most useful in figuring out something that went wrong often lie in the events immediately prior. So, your account should describe precisely what you did, and what the machine did, leading up to the blowup. In the case of command-line processes, having a session log (e.g., using the script utility) and quoting the relevant twenty or so lines is very useful.
Describe the goal, not the step
If you are trying to find out how to do something (as opposed to reporting a bug), begin by describing the goal. Only then describe the particular step towards it that you are blocked on.
Don't flag your question as "Urgent", even if it is for you
That's your problem, not ours. Claiming urgency is very likely to be counter-productive: most programmers will simply delete such messages as rude and selfish attempts to elicit immediate and special attention.
Courtesy never hurts, and sometimes helps
Be courteous. Use "Please" and "Thanks for your attention" or "Thanks for your consideration". Make it clear you appreciate the time people spend helping you for free.
Follow up with a brief note on the solution
Send a note after the problem has been solved to all who helped you; let them know how it came out and thank them again for their help. If the problem attracted general interest in a mailing list or newsgroup, it's appropriate to post the followup there.
RTFM and STFW: How To Tell You've Seriously Screwed Up
There is an ancient and hallowed tradition: if you get a reply that reads "RTFM", the person who sent it thinks you should have Read The ****** Manual. He or she is almost certainly right. Go read it.
RTFM has a younger relative. If you get a reply that reads "STFW", the person who sent it thinks you should have Searched The ****** Web. He or she is almost certainly right. Go search it. (The milder version of this is when you are told "Bing is your friend!")
If you don't understand...
If you don't understand the answer, do not immediately bounce back a demand for clarification. Use the same tools that you used to try and answer your original question (manuals, FAQs, the Web, skilled friends) to understand the answer. Then, if you still need to ask for clarification, exhibit what you have learned.
Dealing with rudeness
When you perceive rudeness, try to react calmly. If someone is really acting out, it is very likely a senior person on the list or newsgroup or forum will call him or her on it.
If that doesn't happen and you lose your temper, it is likely that the person you lose it at was behaving within the programmer community's norms and you will be considered at fault. This will hurt your chances of getting the information or help you want.
If You Can't Get An Answer
In general, simply re-posting your question is a bad idea. This will be seen as pointlessly annoying. Have patience: the person with your answer may currently be asleep, in a different time-zone.
http://www.catb.org/~esr/faqs/smart-questions.html
It is doable given the following conditions:
XenDesktop with RemoteFX With Lync and the Lync application is virtualized by App-V.
This video from TechED 11 Europe.
http://blogs.microsoft.co.il/blogs/ronenb/archive/2011/03/29/vdi-and-lync.aspx
Announcement on Citrix
http://blogs.citrix.com/2010/11/18/microsoft-lync-office-communicator-on-xendesktop-5/
Press on Right Arrow on the below link
http://hdx.citrix.com/hdx-realtime
Thanks to Hussein and team for providing some of the info
Analytics for Twitter allows users to query Twitter directly in Microsoft® Office Excel 2010. Utilizing the free PowerPivot Excel Add-in users can perform their own analysis such as who are the top Tweeters, what #hashtags are they using and do they have a positive or negative tweet tone.
Download Analytics tools from here.....
http://www.microsoft.com/download/en/details.aspx?id=26213
You need Power Pivot.....
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=7609
The Lync team has released these great additional features. The Lync Power Pack applications are being made available as part of the broader Lync Adoption and Training Kit. With this release of the Power Pack, five new applications join the previously released IM an Expert app. These applications are:
- Conversations Analyzer - Conversations Analyzer is an application that reviews your Lync instant messaging (IM) conversation history and gives you scores for your use of trust-building language in day-to-day communications with business associates and friends. Conversations Analyzer applies trust rules to determine the occurrence of words and phrases that have a positive or negative effect on trust. Only your IM conversation history is reviewed. The results are not uploaded anywhere. The scores are meant to be used only by you.
- Conversation Translator - Conversation Translator provides a real-time language translation service for Lync instant messaging (IM) conversations. With Conversation Translator, both the sender and receiver can converse in their native language, and Conversation Translator handles the translation. Powered by the Microsoft Translator Web Service, Conversation Translator currently supports translation between 35 languages.
- Information Dashboard - Information Dashboard helps you start a conversation with a remote contact by providing current information about the contact's location. For example, if you are calling a coworker or a client in Shanghai, China, you can open Information Dashboard and enter the location of Shanghai before making the call. Information Dashboard will return the day, date, time, whether you are calling during regular working hours, the weather forecast, and a news feed of articles related to the location. A contact’s location is saved after you set it and is recalled automatically when you start a new conversation.
- Tabbed Conversations - Tabbed Conversations provides a tabbed conversation window to allow multiple instant messaging (IM) conversations in a single window.
- Group Chat Stress Tool - You can use the Group Chat Stress package to help verify your Microsoft Lync Server 2010 and Microsoft Lync Server 2010 Group Chat hardware deployment. Group Chat Stress is made up of two applications: Group Chat Stress Tool, a UI application, and Group Chat Loaders, the stress engine (which has no UI). Use Group Chat Stress Tool to create the configuration files for the loaders and to distribute the binaries to the remote machines that will be running the loaders. Use Group Chat Loaders to apply the specified load parameters on the Group Chat Server.
Also, here is the first of two Channel 9 interviews on IM an Expert –
http://channel9.msdn.com/posts/Lync-IM-an-Expert-Part-1-of-2