MEA Center of Expertise

We are a 120+ technology enthusiasts helping Microsoft customers around Middle-East & Africa region. We bridge Microsoft tools & technologies to their businesses.

MEA Center of Expertise

  • Can i edit my PowerView Report exported to PowerPoint in Presentation Mode? YES YOU CAN

    with the release of SQL Server 2012 different versions until the RTM last week. Microsoft introduced a one kicking feature in the Business Insight Pillar with the new Amazing easy-to-use reporting PowerPivot that you can simply export this report to PowerPoint and when your slides are running the report can start being interactive.

    well not only this. you can even turn you report to be editable so you can start creating some charts and do ad-hoc analysis within your presentation. so how can I do this let have a look

    1. A key thing you need to know is that when you export your PowerPivot Report to PowerPoint the object that is exported is connecting to the report on the Sharepoint not connecting to the datasource of the Report. something like this

    PowerViewFlowExample

    2.  So after you export your Report to the PowerPoint right click on the object in the slide and click properties and in the InitParams scroll to the end and change AllowEditViewMode and set it to True

    PVinPPS

    3. when you present your slide Deck you’ll be able to do edit the report and start dragging and dropping same experience as the Web One.

    PVinPPS2

    PowerPivot is an amazing experience for Personal BI and demonstrating how easy and a flexible tool it’s to quickly get up from a database to an interactive editable report inside a presentation

     Manually modifying the InitParams or any of the Silverlight control properties is not an officially supported scenario. See msdn.microsoft.com/.../hh759323(v=sql.110).aspx. Thank you Riccardo Muti for the Heads-up

  • PowerShell Command to create computer account in Active Directory

    This just simple command to create new AD computer in active directory

    New-ADComputer -Name voltacomputer -SAMAccountName voltasama -Description testcomputer -DNSHostName voltacomputer.coex.com
  • How to configure Lync user private line

     

    Open the Lync Server Management Shell (Start –> All Programs –> Microsoft Lync Server 2010 –> Lync Server Management Shell)

    2. Enter the following PowerShell command

    [sourcecode language="powershell"] Set-CsUser -Identity “sip:sherift@coex.com” -PrivateLine “Tel+20125242000” [/sourcecode]
  • Connecting R to HDinsight through HIVE

    With the powerful big data platform that Microsoft provides through Azure HDinsight, and with the wide range of data scientists and statisticians utilizes R, this Post is who to bring the best of both and connect R to HDinsight through Hive connector. so that you can analyze hive tables in R where they resides on the Azure HDinsight cluster so let’s see the steps

      1. Download Microsoft Hive ODBC driver from here
      2. Install the Microsoft Hive ODBC driver use either the x86 or the x64 ( take care of the version to use the same with R)
      3. Configure your DSN in the ODBC Data Sources
      1. go to Control Panel > Administrative Tools > ODBC Data Sources (64-bit)
      2. open System DSN click add
      3. choose Microsoft Hive ODBC Driver and click Finishimage
      4. enter the fields
      1. Data Source Name: the data source name we’ll use in R so name it anything i’ll call it now HiveOnAzure
      2. Description: write your desription
      3. Host: get it from your Azure Manage site [yourclustername].azurehdinsight.net
      4. port: leave it 443
      5. Database: leave it “default”
      6. Hive server type: use Hive Server 2
      7. Mechanism: Windows Azure HDinsight (it automatically configures the port and Database above)
      8. HTTP Path: leave it blank
      9. username: your username that you entered while creating the cluster
      10. password: your password that you entered while creating the cluster
      11. then test the connectivity you should receive a connection successful established message
      12.  image
    1. Now after establishing the ODBC driver connectivity to Azure we’ll shift to R
    • Open RStudio (make sure to use the same x64 or x86 version as you’ve configured in the ODBC drivers)
      1. install the RODBC package

     > install.packages("RODBC")
     > library(RODBC)
        1. create the ODBC connection in R
     > myconn <- odbcConnect("HiveOnAzure",uid="[YOUR_USERNAME_HERE]",pwd="[YOU_PASSWORD_HERE]" )
        1. run your HiveQL Query and return the data into a data frame
     > alldata <- sqlFetch(myconn,"Select * from hivesampletable")
        1. inspect the retrieved data
       > head(alldata,10)

      Now you’ve successfully connected your R to the Hive on HDisnight on Azure to pass your HiveQL Queries and start doing the analysis you want to create. 

    1. Compare Hotfixes installed on 2 computer using PowerShell

      function hotfixcompare ($computer1, $computer2)
      {
      $node1 = Get-HotFix -ComputerName $computer1
      $node2 = Get-HotFix -ComputerName $computer2
      Compare-Object -ReferenceObject $node1 -DifferenceObject $node2  -Property HotFixID
      }
      hotfixcompare ex01 lyncse |sort -Property sideindicator

      Description of Script

      node1 = ex01

      node2 = lyncse

      Sideindicator == means that the 2 nodes have the same hotfixes

      Sideindicator => means that the hotfix is installed on the second node “lyncse”

      Sideindicator <= means that the hotfix is installed on the first node “ex01”

    2. How to run PowerShell script from CMD

      You will find below example how to run PowerShell script from CMD or in windows schedule task

      1C:\>powershell "& 'c:\scripts\Active Directory\CreateNewUser.ps1'"
    3. Powershell Script get group members and check for users that are not enabled for lync and enable these users using e-mail address

      #This script get group members and check for users that is not enabled for lync and enable these users using e-mail address (PC to PC not enterprise voice)

      01 Import-Module activedirectory
      02 Import-Module lync
      03 $groupmember = Get-ADGroupMember lync
      04 foreach ($member in $groupmember)
      05 {
      06 $aduser = Get-CsAdUser -Identity $member.Name | Where-Object {$_.enabled -ne "true"}
      07 if($aduser -ne $())
      08 {
      09 Enable-CsUser -identity $aduser.identity -RegistrarPool lyncse.coex.com -SipAddressType emailaddress
      10 }
      11 }
    4. HW and SW inventory Collection From (Active Directory or Txtfile) into Excel sheet (Powershell Script)

      i wrote this script a while ago , but i thought i'd reshare it . This can be very usefull if you are a sys admin and you are doing capacity planning or just trying to know your hardware or software inventory

      This is powershell script that connects to Active directory and Queries an AD group for all its computer objects or even gets content from a txt file containig the computer names

      then after getting the previous content , it pipelines the output to the function named get-hostinfo which produces a custom object called computer with a lot of properties like  name, ipaddress , responsetime , sitelocation , srvmodel , opertaing system type , maxclockspeed , number of physical processors , number of cores per processor , total storage , total rams and list of all the installed applications

      these properties are extracted from WMI contacting each computer at a time

      since the output is a custum OBJECT, it can be pipelined to Select-object cmdlet to select the required properties

      then again it can be pipelined to Export-csv where the output can be viewed in Ms Excel , or Export-Clixml to produce an xml which can be imported as an object later on

      @author: Mohamed Garrana

      '''
      Created on march 9, 2010
      @author: Mohamed Garrana
      '''


      function get-hostinfo

          {
       Begin {
        Write-output "Starting inventory Collection"
       }
       
       Process {
       #parsing out the result from computer LDAP name to computer netbios name
       $x=$_.split(",")
       $server=$x[0].Substring(3)
          Write-Host $server
       
       trap {
        Write-Host -ForegroundColor Red "   <<<Spider Alert>>>  Error connecting to server : " $server ". Please make sure that the server is online and that WMI Queries are enabled."
        continue
        }
       
       #Nullifying Wmi Queries results from previous objects , to fix the problem of assigning previous Wmi Query values to offline servers
       $pingresult=0
       $RamResult=0
       $ModelResult=0
       $CpuResult=0
       $DiskResult=0
        
        
       #Quering Wmi for certian properties to collect information for the computer
       $pingresult = Get-WmiObject -Query "SELECT * FROM Win32_PingStatus WHERE Address = '$server'" -ErrorAction Stop
       $RamResult = Get-WmiObject -Query "SELECT * from Win32_PhysicalMemory" -computername $server -ErrorAction Stop
       $ModelResult = Get-WmiObject -Query "SELECT * from Win32_ComputerSystem" -computername $server -ErrorAction Stop
       $CpuResult = Get-Wmiobject -Query "select * from Win32_Processor" -ComputerName $server -ErrorAction Stop
       $DiskResult = Get-Wmiobject -Query "select * from Win32_DiskDrive" -ComputerName $server -ErrorAction Stop
       $OSResult = Get-WmiObject -Query "select * from win32_operatingsystem" -ComputerName $server -ErrorAction stop
       $appresult = Get-WmiObject -Query "select * from win32_Product" -ComputerName $server -ErrorAction stop
       
       #creating a new object called computer
       $Computer = New-Object psobject
       
       #the following section Adds properties to the computer Object

       #Adding properties from ping result
       $Computer | Add-Member NoteProperty Name $server
       $Computer | Add-Member NoteProperty ResponseTime ($pingresult.responsetime)
       $Computer | Add-Member NoteProperty IPAddress ($pingresult.protocoladdress)
       
       #Adding a property called Siteloation depending on te computer ipaddress
       if ($pingresult.protocoladdress.StartsWith('10.1.1.'))
        {$Computer | Add-Member NoteProperty Sitelocation ("Site1")
        }
       elseif ($pingresult.protocoladdress.StartsWith('10.1.2.'))
        {$Computer | Add-Member NoteProperty Sitelocation ("Site2") 
        }
       else {
        $Computer | Add-Member NoteProperty Sitelocation ("UNKNOWN")
       }
       
       #Adding a property for Server Model
       $Model = $ModelResult.Manufacturer + $ModelResult.Model
       $Computer | Add-Member NoteProperty SrvModel ($Model)
       
       #Adding a properties for processor including clock speed , Number of cores and Number of physical processsorts
       #if the lenght of the object cpuresult is greater than 0 , then there are more than one instance of the Win32_processor class which means
       #there are more than one physical processor on the server , since all physical cpuz on the same board are identical then getting the result
       #from object[0] in the collection does the trick
       if ($CpuResult.length )
        {
        $Computer | Add-Member Noteproperty CpuMHZ ($cpuresult[0].maxclockspeed)
        $Computer | Add-Member Noteproperty ProcessorCores ($CpuResult[0].NumberOfCores)
        $Computer | Add-Member NoteProperty PhysicalProcessors ($CpuResult.length)
        
       }
       elseif ( -not $CpuResult.length)
        {
        $Computer | Add-Member Noteproperty CpuMHZ ($cpuresult.maxclockspeed)
        $Computer | Add-Member Noteproperty ProcessorCores ($CpuResult.NumberOfCores)
        $Computer | Add-Member NoteProperty PhysicalProcessors ('0')
       }
       
       #Adding a property for total number of Rams
       #doing a ram counter and accumelating the capacity property of all the instances of Win32_PhysicalMemory Class
       $ramcounter = 0
       $RamResult | ForEach-Object { $ramcounter = $ramcounter + $_.Capacity }
       $Computer | Add-Member NoteProperty RAMS ($ramcounter / 1048576)
       
       #Adding property for total Disk space
       $storagecounter = 0
       $DiskResult | ForEach-Object {
             if ($_.mediatype -eq "Fixed hard disk media")
             {$storagecounter = $storagecounter + $_.size}
       }
       $Computer | Add-Member NoteProperty TotalStorageGB ([int]($storagecounter / 1gb ))
       
       #Adding properties for OS type and Version number
       $Computer | Add-Member NoteProperty OSType ($OSResult.caption)
       $Computer | Add-Member NoteProperty Servicepack ($OSResult.csdversion)
       
       #adding a property for the installed applications
       $apparray = ""
       $appresult | ForEach-Object { $apparray = ( $apparray + $_.name + "," ) }
       $Computer | Add-Member Noteproperty AppList ( $apparray )
       
       Write-Output $Computer
        }
        
       End {
       Write-host "end of Inventory Collection"
       }
       
          }

      # <<<<<<  Script execution Starts HERE  >>>>>>>  

      #comment this part out if you want to create a connection to Active directory to get the computer objects
      #connecting to AD to query computers in a security group named "servers"
      #$servergroup=[ADSI]"LDAP://CN=Servers,DC=YourDomain,DC=dom" #Set your location for AD group containing servers
      #$groupmembers=$servergroup.member

      #Actual command being line (pipeline)

      # you can use Get-hostinfo function in the following Ways
      #$groupmembers | get-hostinfo | Select Name , IPAddress , Sitelocation , SrvModel , TotalStorageGB , RAMS , CpuMhz , ProcessorCores , PhysicalProcessors, Applist | Export-Csv C:\test\spiderresult.csv
      #$groupmembers | get-hostinfo | Select Name , OSType , Servicepack ,  IPAddress , Sitelocation , SrvModel , TotalStorageGB , RAMS , CpuMhz , ProcessorCores , PhysicalProcessors , Applist | Export-Clixml c:\test\spiderobj.xml
      #Get-Content c:\servers.txt | Select Name , IPaddress , Srvmodel | Export-csv C:\output.csv        "getting content from alocal file"
      #$groupmembers | get-hostinfo | Select Name , OSType , Rams , Cpumhz  | export-clixml c:\compobjs.xml

    5. PowerShell Scripts - Rename Local computer name and restart

      This script  will take affect after restart

      [sourcecode language="powershell"]
      $NewName="windowsserver"
      $ComputerInfo = Get-WmiObject -Class Win32_ComputerSystem
      $ComputerInfo.Rename($NewName)
      Restart-Computer
      
      [/sourcecode]
      
    6. Guides étape par étape de la série « Déploiement de Test UC15 » des Communications Unifiées

      Introduction et aperçu du Déploiement de Test UC15

      Ces guides étape par étape vont vous permettre d'acquérir une expérience pratique avec les nouveaux solutions et technologies des communications unifiées de Microsoft. Vous aurez la chance de passer par toutes les étapes requises pour déployer un environnement de test complet qui comporte Active Directory 2012 et Lync Server 2013. Vous aurez aussi la chance de découvrir comment exécuter une grande partie de ces étapes à partir de PowerShell.

      Les guides étape par étape publiés vons vous permettre d'aboutir à l'environnement ci-dessous. Toutes les étapes sont basées sur Technet et mon expérience personnelle. Et bien évidemment, vous pouvez déployer ces serveurs dans un environnement informatique de serveurs virtuels.

       

       

       

       Aperçu des guides étape par étape

       Guide étape par étape 1 - Installation de Windows Server 2012 et Active Directory DS et CS

       Guide étape par étape 2 - Installation de Office Web Apps Server 2013 pour Lync Server 2013

       Guide étape par étape 3 - Installation de Lync Server 2013 Front End

       

      Spécifications techniques et prérequis

      Vous pouvez utiliser des serveurs virtuels pour le déploiement de cet environnement de test. Pour cela, vous aurez besoin d'un serveur physique de 8 à 12 Go de mémoire RAM et de 4 à 8 cœurs de processeur(s).

      Le tableau ci-dessous indique les spécifications des serveurs virtuelles et les prérequis (sources d’installations) nécessaires.

      Nom du serveur

      Système d’exploitation

      Rôle

      Processeur 

      Mémoire

      Prérequis à télécharger

      UC15-DC

      Windows Server 2012

      AD, DNS, CA

      1 Core

      1 Go RAM

      Win Server 2012

      UC15-WAC

      Windows Server 2012

      Office Web Apps Server

      1 Core

      1 Go RAM

      Win Server 2012

      OWA Server 2013

      UC15-LYNC

      Windows Server 2012

      Lync Server

      2 Core

      4 Go RAM

      Win Server 2012

      Lync Server 2013

      Silverlight

      UC15-CLIENT

      Windows 8

      Client Windows 8

       1 Core

       1 Go RAM

      Win 8 Enterprise 64-bit

      Office Pro Plus 2013

      Allez-y, commencez tout de suite !

    7. Change Outlook attachment security settings using PowerShell

      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

       

      Regards,

      Sherif Talaat (Twitter: @Sheriftalaat)

    8. PowerShell Snap-in for Microsoft App-V Server 4.6 SP1

      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

      • Get-AppVSystemOptions
      • Set-AppVSystemOptions

      Packages

      • Get-AppVPackages
      • New-AppVPackage
      • Remove-AppVPackage

      Application Groups

      • Get-AppVApplicationGroup
      • New-AppVApplicationGroup
      • Remove-AppVApplicationGroup

      Applications

      • Get-AppVApplications
      • New-AppVApplication
      • Remove-AppVApplication
      • Set-AppVApplicationPublishingSettings

      Administrators

      • Get-AppVAdministrators
      • New-AppVAdministrator
      • Remove-AppVAdministrator

      Server Groups

      • Get-AppVServerGroup
      • New-AppVServerGroup
      • Remove-AppVServerGroup

      Servers

      • Get-AppVServers
      • New-AppVServer
      • Remove-AppVServer

      Providers

      • Get-AppVProviders
      • Remove-AppVProvider

       

      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.

    9. SIP Response Codes

      1xx—Informational Responses
      100 Trying
      180 Ringing
      181 Call Is Being Forwarded
      182 Queued
      183 Session Progress

      2xx—Successful Responses
      200 OK
      202 accepted: It Indicates that the request has been understood but actually can't be processed

      3xx—Redirection Responses
      300 Multiple Choices
      301 Moved Permanently
      302 Moved Temporarily
      305 Use Proxy
      380 Alternative Service


      4xx—Client Failure Responses
      400 Bad Request
      401 Unauthorized (Used only by registrars or user agents. Proxies should use proxy authorization 407)
      402 Payment Required (Reserved for future use)
      403 Forbidden
      404 Not Found (User not found)
      405 Method Not Allowed
      406 Not Acceptable
      407 Proxy Authentication Required
      408 Request Timeout (Couldn't find the user in time)
      409 Conflict
      410 Gone (The user existed once, but is not available here any more.)
      412 Conditional Request Failed
      413 Request Entity Too Large
      414 Request-URI Too Long
      415 Unsupported Media Type
      416 Unsupported URI Scheme
      417 Unknown Resource-Priority
      420 Bad Extension (Bad SIP Protocol Extension used, not understood by the server)
      421 Extension Required
      422 Session Interval Too Small
      423 Interval Too Brief
      424 Bad Location Information
      428 Use Identity Header
      429 Provide Referrer Identity
      433 Anonymity Disallowed
      436 Bad Identity-Info
      437 Unsupported Certificate
      438 Invalid Identity Header
      480 Temporarily Unavailable
      481 Call/Transaction Does Not Exist
      482 Loop Detected
      483 Too Many Hops
      484 Address Incomplete
      485 Ambiguous
      486 Busy Here
      487 Request Terminated
      488 Not Acceptable Here
      489 Bad Event
      491 Request Pending
      493 Undecipherable (Could not decrypt S/MIME body part)
      494 Security Agreement Required

      5xx—Server Failure Responses
      500 Server Internal Error
      501 Not Implemented: The SIP request method is not implemented here
      502 Bad Gateway
      503 Service Unavailable
      504 Server Time-out
      505 Version Not Supported: The server does not support this version of the SIP protocol
      513 Message Too Large
      580 Precondition Failure


      6xx—Global Failure Responses
      600 Busy Everywhere
      603 Decline
      604 Does Not Exist Anywhere
      606 Not Acceptable

      http://en.wikipedia.org/wiki/List_of_SIP_response_codes

    10. Cannot start the columnstore index build; What is Wrong ?

      you’re trying to build a ColumnStore Index and Increased the DOP or using multiple columns on the Index and you did received this error message

      “cannot start the columnstore index build because it requires at least 760040 KB, while the maximum memory grant is limited to KB per query in workload group 'default'”

      Well don’t decrease your Columns. Simply it’s a Resource Governor modification “even if it’s not enabled” as the default workgroup is created by default with 25% of Memory per Query…!!!

      1. Go To Resource Governor under Management

      2. enable it and change the default workgroup in the memory granted to 100RG2

      3. try building again the index it’ll succeed

    11. SIP vs H.323

      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 Scenarios
      Both 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 Stay
      Both 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

    12. Update SQL Agent Jobs Schedules with T-SQL

      after building your SSIS project and putting it into action you just start doing some JOB Schedules through the SQL Agent, but when you have a lot of schedules updating them starts to get annoying. and you can start getting some queries to list the Jobs, tasks and schedules in our discussion now we’ll focus on table “sysschedules” as this is the one that holds the info for schedules. and we’ll focus on exactly two fields.

      freq_type How frequently a job runs for this schedule.

      1= One time only

      4= Daily

      8= Weekly

      16= Monthly

      32 = Monthly, relative to freq_interval

      64= Runs when the SQL Server Agent service starts

      128= Runs when the computer is idle

      and

      active_start_time: Time on any day between active_start_date and active_end_date that job begins executing. Time is formatted HHMMSS, using a 24-hour clock.

      now let’s say that all your schedules are daily and they are in frequent starting 1am. then you need to add a new schedule before them but you don’t need to re-schedule all of the jobs using the SQL Agent, simply update the table adding 3000 (30 minutes) to all schedules so will be alerted.

      you can as well change the frequency, active status through this table. the detailed table documentation can be found here

    13. Create failed for Index not supported on the target server version. No Panic

      ColumnStore Index the New Cool non-clustered index feature in SQL2012 with
      significant boost in performance while been used. I tried to create it on my
      newly restored Database but I received this Error

      “Create failed for Index Either the object or one of its properties is not
      supported on the target server version.
      (Microsoft.SqlServer.Smo)”

      oh…!!! this is not cool, well not so fast…!!! it’s related to your
      compatibility level of your database so this could be fixed very easy.

      1. Choose your Database then Click Properties

      2. choose Options tab and change the compatability level to
      SQL Server 2012 (110). then OK

      now try again to create your index and … Yes I can.

    14. PowerShell scripts – delete computer account in Active Directory

      $dom = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()
      $root = $dom.GetDirectoryEntry()
      $search = [System.DirectoryServices.DirectorySearcher]$root
      $search.filter = "(&(objectclass=computer)(name=windowsserver))"
      $search.findall() | %{$_.GetDirectoryEntry() } | %{$_.DeleteObject(0)}

    15. Hyper-V Replica Runbooks Example

      I've just came across this amazing set of Hyper-V Replica Runbooks. Give it a try and let me know how it went.

      http://gallery.technet.microsoft.com/Orchestrated-HVR-Planned-5ebecfc1

      Enjoy!

       

    16. January's Guru: Mahmoud Moussa, talking Devices

       1-Mahmoud Moussa, can you please introduce yourself to our readers?

      My Name is Mahmoud Moussa I’m a Technology Solution Professional in Microsoft MEA Devices Application Team, A person with a passion for science, and how it can benefit business, I’ve been in Information Technology Industry for 11 Years Playing Multiple Roles, Developer, Support, Team Leader , Architect, Business Intelligence Consultant, Till I joined Microsoft and Started a Technical Presales track. Which is not only about selling technologies, but more about how you technology can benefit your customer.

      Away from technology I love playing sports like Table Tennis, Squash, Volleyball and cycling, Photography, Listening to music especially 90’s and watching movies and TV shows. I married and have a little princess called “Karma”.

       

      2- What do you love the most about technology?

      Innovation is the magic word, technology as technology is a consumer kind of gadgets, but the idea of how it’s built, and ways to customize it to meet exactly your needs is my main passion, there is no limits to the ideas you can generate with technology just remove that barrier from your mind and you can do magic.

       

      3-Can you give us a small introduction to better understand what are device Applications all about?

       Well devices his a general word that group anything that contains a CPU that can do some computing power for you. Let’s get back in time a little bit, the early days of Computers, the main frame was called a super computer, a Large PC connected to many screens and keyboards was used for work. But People needed to go more mobile, computer power started to grow, so they moved to PCs and Servers Model where you can have a client PC with nice capabilities to do your work locally and send it to the server to store it, then for more mobility we moved to Laptops. And now we are living in the internet world with data available all around us. In 2012 we generated“11 Zeta bytes of information, which equals 66,000 Miles of Dvds stacked on top of each other’s. This amount of data needs to be accessible all the time, so we are moving to the Cloud, using “Phones and Tablets” to access this information anywhere and anytime.

       There are more than 1 Billion Devices connected to the internet at this very moment. Can you imagine the business opportunities you have with these 1 Billion customers? Targeting devices is a huge business opportunity don’t let that slip away,

       

      4-Can you provide us with any links or sources that can help us understand more about devices application?                                

      Technologies are evolving I would recommend always to look for the basics of technology before technology itself .Basics can help you move from one technology to the other easily.

      To Get Started use http://dev.windows.com it’s your starting point to learn everything you need to know about developing applications for Mobile Devices.

                                              

      5- What is the newest or most interesting updates for devices Application this year?

      The Snapdragon processors, it’s a New processor architecture that can allow you to run a Tablet as long as ARM based tablets with the power of a PC, so Imagine you can have your PC in your hands on the go everywhere.

      There are things that I personally wait for but I don’t know if it will land this Year or not, like bendable LCDS, with may allow you to open a 50 inch display from your pocket, Integration of Nano Technology into displays that can allow you to move your display from just a flat into having buttons physically exist on your display. Holograms this will change the way we look to the future.

       

      Moussa6- Away from technology, do you have any other hobbies or passions?

      Doing Sports “Swimming, Table Tennis, Squash, Volleyball and Lately I started cycling”

      Photography, I can’t call myself an Artist but I’m good in photography because it is a weird mix between science and art and I enjoy that A lot.

      Maybe I’m in 30’s but I live with the heart of early 20’s I can Have some personal time for Music, TV shows and Movies

       

      7- Any advice to anyone that wants to be an IT guru?

      Just 2, Focus on basics and Read.

      Technology is evolving every day, but basics does not change often. So do not learn how to write C# but learn how to architect an app. If you did that, you can learn all programming languages easily, tomorrow a new version of C# will come out but coding is still a foundation that changes less oftenJ.

      Reading, Can keep you up to date with what’s coming which is what you really need. Know everything generally, do not lock your eyes on one topic and go deep.

                 

      8- How can people contact you for any technical inquiries?

      v-mamous@microsoft.com is my Email Address, Contact me and I’ll reply if I can help.

       

       

      Thank you Moussa :)

    17. CentOS mouse support in Hyper-V

      I've seen some mouse support issues on CentOS in Hyper-V. why reinvent the wheel if someone was kind enough to share the knowledge? Have a look...

      Part 1: http://www.yusufozturk.info/linux-server/centos-5-6-desktop-installation-on-hyper-v-and-mouse-support-part1.html

      Part 2: http://www.yusufozturk.info/linux-server/centos-5-6-desktop-installation-on-hyper-v-and-mouse-support-part2.html

       

      Good luck :)

       

    18. Managing VMware from System Center 2012 SP1 - Virtual Machine Manager

      Virtual Machine Manager enables you to deploy and manage virtual machines across multiple hypervisor, including VMware ESX and ESXi hosts. The purpose of this post is to demonstrate how to add a VMware host from System Center Virtual Machine Manager. The process is rather easy and requires a few steps. This post assumes you have already setup your VMware environment including; VMware host and vCenter Server.  For this demonstration we will use ESXi 5.1.

      First step is to add a VMware vCenter Server. In the navigation pane in VMM click on Fabric, Add Resources, click on VMware vCenter Server

       

      Capture

       

      Fill in the computer name of the vCenter server. You will need to create a RunAs account that has permission to logon the vCenter Server.

       

      Capture1 Capture2

      You will prompted with Importing a certificate. Click Import.

       

      Capture3 

      Following the import of the certificate the job windows will display as follow:

      Capture4

      After you have added the vCenter Server, you will need to add the ESX host. Right-click on All hosts in the Fabric navigation pane, click Add VMware ESX hosts and Clusters.

      Capture6

      You will need to provide a RunAs account that has permission on ESX host itself. This is usually the root account of the ESX host. Click Next

      Capture7

       

      Select your ESX host and click next.

      Capture8

      Capture9

      The job windows will appear indicating that ESX host is being added.

      Capture10

      In the navigation, click on Fabric,  vCenter Server. Notice you will see the number of managed hosts. In our case, we only added one ESX host.

       

      Capture11

       

      That’s all. In the following post I will demonstrate how to deploy virtual machines on our new managed ESX host through VMM.

      In the meantime, you can find lots of information at the following link http://technet.microsoft.com/en-us/library/gg610683.aspx

    19. Meet Youssef El-Itreby! Office 365 Guru

       1- Youssef, can you please introduce yourself to our readers?

      It is almost my third year as a Microsoft Technology Solutions Professional covering the West, East and Central Africa (WECA) region. I have started as a Unified Communications technical presales and had the chance to be one of the first Microsoft Center of Expertise Office 365 specialists. This move from on-premises solutions to cloud solutions and embracing the future before it actually happens was mainly due to my passion for technology and its new trends.

       

      2- What do you love the most about technology? 

      It’s not secret that computers, the web, and social media have all dramatically changed the way we work. What we used to compose on papers and typewriters (remember those?), we now take care of completely electronically with just a few keystrokes and a click of the mouse button. What you used to do by writing, printing, folding, putting in an envelope, stamping and mailing, you can now do by simply composing and clicking Send - and the message reaches the other person almost instantly. Technology has transformed our globe to a small village where you can interact with anyone and anytime - this is what I love the most about technology.

                    

      3- Can you introduce us to Office 365?

      Office 365 is Microsoft’s smart and simple answer to cloud computing. Using the various programs in Office 365, you can do all the tasks you’re used to doing in your favorite Office applications - write documents, create presentations, check email, manage your calendar, and more – and then share what you create in real time on a team site, design and publish a website, and even create and host live online meetings while you’re traveling on the train, sitting in a coffee shop, or simply moving around and connecting through your phone.

      Office 365 enables businesses to create a cloud computing approach that offers just what their business needs require with the four main technologies – Office, Exchange, SharePoint, and Lync.

       

      4- Can you provide us with any links that can help expand our Office 365 knowledge?

      Never start learning a new technology before test driving it, follow this link and signup for your Office 365 free trial account.

      After doing that, I recommend going through the Office 365 service descriptions, they will keep you busy for a while. The topics here provide detailed descriptions of the services and features that are available with Office 365.

       

      5- What are the newest updates for Office 365 this year?

      This year has been a busy one with almost all the different services across Office 365 seeing updates. The biggest news is the real time co-authoring across Word, Excel, and PowerPoint Web Apps, now you can see people working together on a document simultaneously.  OneNote for Windows Store received a bunch of new features including better capture of documents, whiteboards and other physical text and bringing that directly into your notebooks. We enhanced Office Web Apps, so you can get things done more easily from anywhere.

      And we added a new Partner Admin Center in Office for business, to help Partners manage their customers more efficiently. Partners now have a central place to see all their customers, monitor customer service health, administer a customer’s service, help manage and resolve support issues, and build their business with trial and subscription offers to send to their customers.

       

       6- Away from technology, do you have any other hobbies or passions?

      Hunting is my hobby. In winter, nothing is more exciting than spending the weekend in the middle of nowhere hunting wild ducks - check out my trophies :) I also have a passion for Africa and its natural beauty.

       

      7- Any advice to anyone that wants to be an IT guru?

      Be flexible because the world you know is changing faster than ever – you need to embrace new technologies and be flexible enough to not get stuck in the old ways of doing things and get rusty.

      And definitely read a lot and stay up to date. But nothing replaces a hands-on experience… so go out there and start engaging!

       

      8- How can people contact you for any technical inquiries?

      Here is my email v-yoelit@microsoft.com, feel free to send through your questions/inquiries.

       

      Thank you Youssef for the lovely interview :)

    20. Manage and monitor windows Azure with system center 2012

      Manage and monitor windows Azure with system center 2012

      A Microsoft window Azure is Microsoft public cloud, which is the representation of Platform as a service (PaaS) where Microsoft is controlling the network, storage, servers, O/S and runtime. And the end users will controller the application layer and Data layer.  Also Azure has software as a service offering through Microsoft online services.

      This blog is 4 parts and I will focus on PaaS “Windows Azure”:-

    21. CAS Array NLB Configuration with PowerShell

      First, we need to load the server manager module and install NLB. To do this run the following commands:

      1Import-Module ServerManager
      2Add-WindowsFeature NLB, RSAT-NLB

      Keep
      in mind, you’ll need to install these components on both CAS servers. Once NLB
      has been installed, load the NetworkLoadBalancingClusters module:

      1Import-Module NetworkLoadBalancingClusters

      I am going to use the New-NlbCluster cmdlet to create a cluster named “CASArray” with the IP address 192.168.100.100/24:

      1New-NlbCluster -InterfaceName NLB -ClusterName CASArray -HostName CAS01 -ClusterPrimaryIP 192.168.100

      Remove the default port rule and create separate port rules for the services that I want to include:

      1Get-NlbClusterPortRule | Remove-NlbClusterPortRule -Force

      Create new port rules for HTTP/S and MAPI RPC ports:

      1Get-NlbCluster | Add-NlbClusterPortRule -StartPort 80 -EndPort 80 -Protocol TCP -Affinity Single
      2Get-NlbCluster | Add-NlbClusterPortRule -StartPort 443 -EndPort 443 -Protocol TCP -Affinity Single
      3Get-NlbCluster | Add-NlbClusterPortRule -StartPort 135 -EndPort 135 -Protocol TCP -Affinity Single
      4Get-NlbCluster | Add-NlbClusterPortRule -StartPort 1024 -EndPort 65535 -Protocol Both -Affinity Single

      Add the second node to the cluster:

      1Get-NlbCluster | Add-NlbClusterNode -NewNodeName CAS02 -NewNodeInterface NLB

      NLB has been configured, once both nodes are converged we can create a CAS array using the following EMS command:

      1New-ClientAccessArray -Name “CAS Array” -FQDN casarray.litware.internal -Site “Default-First-Site-Name

      If you have dual NICs and your NLB interface doesn’t not have a default gateway, you’ll want to enable IP forwarding using the following netsh command:

      1Netsh interface ipv4 set int "NLB NIC NAME" forwarding=enabled