Application Virtualization is not the most commonly used technology. However there are quite a lot of advantages to using this software over using GPOs or manually installing software.
- Centralized application management - Deploy, update and remove applications from a central location
- Application conflicts - Applications are running in an isolated environment and are therefore not conflicting with other applications installed on the computer.
- Combine dependent applications in a single package - Deploy a single package to multiple clients without having to worry about dependencies.
As with most software there are some alternatives to App-V. Make sure that you know the pros and cons of each before you make your decision.
- VMWare ThinApp - Datasheet
- Citrix XenApp - Resources
- Symantec Endpoint Virtualization Suite - Datasheet
I'll skip the pros and cons because these will change quite rapidly and you probably already decided on App-V.
App-V consists of a couple of components.
- App-V Management Server - Delivers the sequenced applications on-demand.
- App-V Management System - Consists of the App-V Management Console and the App-V Management Service.
App-V Sequencer - Produces the application package consisting of a couple of files.
- Open Software Description (.osd)
- Sequenced Application File (.sft)
- Icon File (.ico)
- XML Manifest of the Sequence Project (.sprj)
- A MSI file can be included for offline deployments.
- Open Software Description (.osd)
- App-V Streaming Server - In charge of streaming the packages to clients that lack a good connection to the Management Server.
- App-V Client - Is installed on the OS of the end-user and communicates with the Management Server. Manages package streaming into cache and publishing refresh, also stores the user-specific information related to the package.
You can find the hardware and software requirements for all the components here.
App-V Infrastructure models
There are several ways of implementing App-V into your environment depending on your requirements.
The minimalist mode of App-V doesn't require any infrastructure except for the App-V Sequencer and the App-V Client. The packages can be deployed manually, using group policies or using System Center Configuration Manager (SCCM). This is mostly used for smaller companies, and companies that have a lot of Offline users.
This model is mostly focused on platforms that don't want to run Management Servers. This means that a SQL database is not needed and the permissions are set through ACLs. The difference with the previous model is that by adding the App-V Streaming Server component the applications can be streamed to low-bandwidth clients like clients in branch offices.
Full Infrastructure Model
By utilizing all components of App-V you gain the full advantage of the technology. You can choose not to install the App-V Streaming Server component if you don't have clients on low-bandwidth connections. Using the App-V Management Server will add the application shortcuts within the process of deployment, and also enables features like reporting using a SQL database and central management of application licenses.
As the management server is using SQL and IIS we'll need to make sure that these are setup correctly before we start. This will minimize the possibility of errors during the setup process.
Adding the IIS role to Windows Server 2008:
- Click Start > All Programs > Administrative Tools and select Server Manager
- Right-click the Roles node and click Add Roles
Select the Server Roles page click Next and then click Next again
- Under Application Development select ASP.NET and when prompted, click Add Required Role Services
- Under Security, select Windows Authentication
- In the Management Tools node, select IIS Management Scripts and Tools
- Under IIS 6 Management Compatibility, ensure that both IIS 6 Metabase Compatibility and IIS 6 WMI Compatibility are selected and click Next
- Click Install on the Confirm Installation Selections page
- Click Close to exit the Add Roles Wizard
Now we need to tweak IIS a bit by adding some MIME types needed in App-V.
- Start the IIS Manager
- Select the Default Web Site > SoftGridManagement
- Double-click the MIME Types feature
- On the action panel, click Add
- In the Extension box, type OSD
- In the MIME box, type application/softricity-osd
- Click OK
- Run iisreset to activate the changes
Installing the App-V Management Server
After downloading the Microsoft Desktop Optimization Pack (MDOP) unpack, mount or burn it.
- Launch the MDOP autorun
- Select Install Management Server 4.5 SP2
- Click Next on the welcome screen
- Check the I accept license terms and conditions and click Next
- Enter you registration information
- Select Custom and click Next
- I recommend to keep the default features and path and click Next
- As my SQL server is not listed, I'll check the box and enter the server name and port, then click Next
- Normally you would create a database, unless a DBA already created a database for you. Since I'm my own DBA I'll have App-V create it for me by selecting Create a new database and click Next
- I choose not to enable the Use enhanced security for now. You can enable this later if you want to. Click Next.
- Accept the defaults for the RTSP (Real Time Streaming Protocol) port: 554
- Enter the group name that you want to give administrative access to the App-V Management Console. It will resolve the group and allow you to select a group if multiple results are returned. Click Next.
- Enter the group name that you want to give access to the App-V application packages. It will resolve the group allow you to select a group if multiple results are returned. Click Next.
- Here you can change the default location where the application content will be stored. Accept the default and click Next.
- Click Install to start the installation process.
An installation result will be given and a reboot is requested. After the reboot there are still a couple of tasks to preform.
Share the content folder - The default folder (C:\Program Files (x86)\Microsoft System Center App Virt Management Server\App Virt Management Server\content) will have to be shared to the clients access to the installation packages.
- Right-click the folder and select Share with > Advanced sharing
- Click Advanced Sharing
- Check Share this folder
- Click the Permissions button and give the Everyone group Full Control
- Click OK, OK, and Close
Set permissions on the content folder - People that need to use the App-V packages need to be able to access them. Therefore the permissions need to be set to allow this.
- Right-click the content folder and select Properties
- Click the Security tab
- Click Edit
- Click Add
- Enter your App-V users group, Domain Users or even Everyone if you want to
- Give the group the Read & Execute, List folder contents and Read permissions
- Click OK twice
Set firewall exceptions - If you have the Windows Firewall running on your App-V server you'll have to allow clients access to the App-V components
- Start Windows Firewall with Advanced Security
- Select Inbound Rules and click New Rule
- Select Program and click Next
- Click Browse and browse to C:\Program Files (x86)\Microsoft System Center App Virt Management Server\App Virt Management Server\bin\sghwdsptr.exe then click Open and click Next
- Select Allow the connection and click Next
- Select all options and click Next
- Enter a Name, optionally a Description and click Finish
- Repeat step 2 to 7 for C:\Program Files (x86)\Microsoft System Center App Virt Management Server\App Virt Management Server\bin\sghwsvr.exe
Now we need to change a couple of App-V settings to make it all work properly.
- Open the Application Virtualization Management Console
- In the Default Content Path, type \\<servername>\content
- Click OK
You can now start the Application Virtualization Management Console.
To make sure that everything is working you can install the App-V client on a workstation and see if the Default Application will stream and run properly.
You can always comment below if you run into any errors.
From Word 2007 Microsoft introduced the option to use Word as a blogging client for WordPress or many other blogging services. However if you blog regularly, you will be annoyed by the normal procedure.
- Start Word
- Click File > New and
- Select Blog post
That's a bit too much clicking (or too many shortkeys) for lazy me. That's why I wanted to shorten this process; here's how.
- Find the location of winword.exe
C:\Program Files\Microsoft Office\Office<version>\WINWORD.EXE
Word 2007: 12
Word 2010: 14
- Find the location of Blog.dotx
C:\Program Files\Microsoft Office\Templates\<language ID>\Blog.dotx
English - US: 1033
Dutch - NL: 1043
German - DE: 1031
Find your language ID here: http://technet.microsoft.com/en-us/library/cc179219.aspx
- Rightclick your desktop and select New > Shortcut
- Enter the following location:
"<location winword.exe>" /q /t"<location Blog.dotx>"
"C:\Program Files\Microsoft Office\Office14\WINWORD.EXE" /q /t"C:\Program Files\Microsoft Office\Templates\1033\Blog.dotx"
- Enter a suitable name for the shortcut like Microsoft Word 2010 - Blog
- Click Finish
I added the shortcut to my start menu in the Microsoft Office folder. This way I can type blog after pressing the Windows Key followed by an enter to start Word with the blog template.
I just had a lot of problems with email being delivered to my Outlook 2010 really slow. The following findings are the result of my troubleshooting:
- Messages are delayed ranging from a couple of minutes up to an hour when using Outlook 2010 (using RPC or Outlook Anywhere)
- Messages are not delayed in OWA
- PowerShell shows the messages being delivered into the proper folder (Get-MailboxFolderStatistics)
- Message tracking shows that the internal transport is not delayed
- Reconnecting your Outlook will force the download of the delayed messages (CTRL+Right click the taskbar icon, selecting Connection status)
- Messages are not delayed using ActiveSync
After hitting Google with these findings it soon pointed me to the problem and also the solution.
RPC traces showed that the server couldn't contact the clients somehow.
Install Exchange 2010 SP1 Update Rollup 3 (v3)
The installation of the Update Rollup will require a reboot of the Exchange server, but it will solve this particular issue along with other issues.
The article that pointed me in the right direction and also the source of some of the troubleshooting steps can be found right here.
I was setting up SharePoint to use Federated Authentication using Azure Access Control Service (ACS) when it ran into an error. After checking the SharePoint logs I ran into the following lines:
07/15/2011 10:23:36.54 w3wp.exe (0x1670) 0x0C60 SharePoint Foundation Claims Authentication eu2n Monitorable Trusted login provider 'Public Account' is not sending configured input identity claim type 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress'
07/15/2011 10:23:36.54 w3wp.exe (0x1670) 0x0C60 SharePoint Foundation Monitoring b4ly High Leaving Monitored Scope (SPSecurityTokenService.GetTokenLifetime()). Execution Time=125,240686737495
07/15/2011 10:23:36.56 w3wp.exe (0x1670) 0x0C60 SharePoint Foundation Claims Authentication fo1t Monitorable SPSecurityTokenService.Issue() failed: System.ServiceModel.FaultException: The trusted login provider did not supply a token accepted by this farm. at Microsoft.SharePoint.IdentityModel.SPSecurityTokenService.SPRequestInfo.ValidateTrustedLoginRequest() at Microsoft.SharePoint.IdentityModel.SPSecurityTokenService.SPRequestInfo..ctor(IClaimsIdentity identity, RequestSecurityToken request, Boolean initializeForActor) at Microsoft.SharePoint.IdentityModel.SPSecurityTokenService.SPRequestInfo..ctor(IClaimsPrincipal principal, RequestSecurityToken request) at Microsoft.SharePoint.IdentityModel.SPSecurityTokenService.GetTokenLifetime(Lifetime requestLifetime) at Microsoft.IdentityModel.SecurityTokenService.SecurityTokenService.Issue(IClaimsPrincipal principal, RequestSecurityT...
07/15/2011 10:23:36.56* w3wp.exe (0x1670) 0x0C60 SharePoint Foundation Claims Authentication fo1t Monitorable ...oken request) at Microsoft.SharePoint.IdentityModel.SPSecurityTokenService.Issue(IClaimsPrincipal principal, RequestSecurityToken request)
Also the event viewer returned the following error:
Log Name: Application
Source: Microsoft-SharePoint Products-SharePoint Foundation
Date: 15-7-2011 10:23:36
Event ID: 8306
Task Category: Claims Authentication
An exception occurred when trying to issue security token: The trusted login provider did not supply a token accepted by this farm..
Quite obviously when I select Windows Live ID it doesn't return the expected type of claim; namely http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress.
In Azure ACS you can set what type of data is retrieved and also what type it returns. The Windows Live ID Identity Provider doesn't support email address as a claim type, however you can map the only available input claim type to any other type that you use to validated the incoming claim in SharePoint.
My SharePoint environment is setup to allow validation through emailaddress. I'll have to map the 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier' claim type to the 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress' claim type as shown below.
- Navigate to your Azure ACS URL (https://<ServiceNamespace>.accesscontrol.windows.net/v2/mgmt/web)
- Click Rule groups
- Click the Rule group that is used by your SharePoint environment
- Click on the only entry with Windows Live ID as Claim Issuer
- Check Select Type in the Then section and select the proper claim type (http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress) that SharePoint is expecting
- Click Save and check the results
Now try to log in to your SharePoint environment with the Windows Live ID and it should work flawlessly.
One thing to note is that the login name is an odd string of characters instead of a nicely structured email address. Unfortunately there is no way of getting a nice looking login name using Windows Live ID as there is no other option than returning the nameidentifier. This seems kind of odd since it's a Microsoft product and the most restricted Identity provider is also from Microsoft. I hope that Microsoft will add other options soon.
As we're setting up collaboration sites on our SharePoint 2010 farm, we wanted to provide the ability to have external logins using Facebook or Google accounts. Everything soon pointed into the direction of Active Directory Federation Services. As the version 1.0 that comes with Windows Server 2008 R2 is already outdated I needed to download the 2.0 version. Make sure that you download the proper version as you might run into some very strange errors otherwise. Since I'm running Windows 2008 R2 x64 I selected the RTW\W2K8R2\amd64\AdfsSetup.exe.
When the installation started the IIS part took quite some time. When I figured it was stuck and the TrustedInstaller.exe was using around 750MB of memory I decided to kill the process as it might crash the entire server. As this seemed the right thing to do, the consequences where somewhat strange. When I restarted the installation it ran into an error right away stating that the install of KB981002.msu could not complete. I tried installing this update manually, but it indicated that the system doesn't need the update. I rebooted the system and retried the installation, which then proceeded without a hitch.
Make sure that you have a Certificate Authority installed in your domain. You can use these certificates for Exchange servers, SharePoint Servers and also need it for the ADFS server.
If you don't have a proper certificate installed you might get an error like this, which might put you on the wrong track. Just create a new certificate, or use one that is already installed.
To create a SSL certificate request in IIS you have to open IIS Manager, select the host and double-click the Server Certificates icon. You have your certificate options on the right.
When you installed the SSL certificate in IIS, you can set it by right clicking the website in IIS and select Edit Bindings. Then edit or add a https port and select the SSL certificate you want to use.
Configure ADFS 2.0
As I didn't have a Federation Server running anywhere I needed to create a new Federation Service. Here are the steps:
- After the install the ADFS configuration was started.
- Click the AD FS 2.0 Federation Server Configuration Wizard to start the configuration.
- Select Create a new Federation Service
- Select New Federation server farm
- The certificate should be automatically selected. You get the option to select the Federation Service name
Create a service account for the ADFS services The following permissions are needed for this account:
Service Logon right. This right is required for an account to logon using the service logon type.
Audit Privilege right. This right is required to generate audit log entries.
See this post for setting the permissions. You can use the same guide for the service logon.
- A summary of the settings will be presented. ADFS will be installed with a Windows Internal Database service. However you can change this later on.
If the name of the federation service is already in use you might be presented with an error: "The SPN required for this Federation Service is already set on another Active Directory account. Choose a different Federation Service name and try again." You'll have to use setspn.exe to set the proper SPN.