Microsoft

How to remove File Type Associations on the App-V Sequencer

Softgrid team blog - Thu, 02/02/2012 - 18:17

When using Package Accelerators with the Microsoft Application Virtualization 4.6 Service Pack 1 (App-V 4.6 SP1) Sequencer you end up with EXACT same package as the one used to create the Package Accelerator. In the case of Microsoft Office, you will end up with all the File Type Associations (FTA) for the latest version of Office (.DOCX, .XLSX, .PPTX) as well as the original Office formats (.DOC, .XLS, .PPT).

File Type Associations can be edited on the Client and on the Management Server, but they can also be edited on the App-V Sequencer. If you created a package from a Package Accelerator, you may have a need to open a package to edit the File Type Associations.

Steps to Follow:

1. Revert your sequencer to the clean snapshot.

2. Copy the package you want to edit locally to the Sequencer

3. Launch the Sequencer

4. Select "Modify an Existing Virtual Application Package"


5. Select "Edit Package."

6. Browse to and Select the package you want to edit and click EDIT.

7. Once the package is loaded browse to the OSD tab and select the application you want to edit from the "Select Application" dropdown.

8. Expand MGMT_FILEASSOCIATIONS>FILEEXENTSIONLIST and then FILEXTENSION until you find the File Type Association you want to delete.

9. Right-click and delete the SHELLNEW first.

10. Right-click and delete the FILEEXTENSION.

11. Repeat as needed for additional File Type Associations.

12. Save the package.

13. Copy the package to the App-V Content Share.

More Information

How to Delete a File Type Association (client) http://technet.microsoft.com/en-us/library/cc817121.aspx

How to Configure Shortcut and File Type Association Behavior http://technet.microsoft.com/en-us/library/ee956916.aspx

Office documents may not open in the expected version when using multiple versions of Office with Microsoft App-V http://blogs.technet.com/b/appv/archive/2011/08/25/office-documents-may-not-open-in-the-expected-version-when-using-multiple-versions-of-office-with-microsoft-app-v.aspx

App-V Package Accelerator downloads: www.tinyurl.com/appvpa

Additional posts on Package Accelerators can be found here.

Steve Bucci | Senior Support Escalation Engineer

Get the latest System Center news on Facebook and Twitter:

App-V Team blog: http://blogs.technet.com/appv/
AVIcode Team blog: http://blogs.technet.com/b/avicode
ConfigMgr Support Team blog: http://blogs.technet.com/configurationmgr/
DPM Team blog: http://blogs.technet.com/dpm/
MED-V Team blog: http://blogs.technet.com/medv/
OOB Support Team blog: http://blogs.technet.com/oob/
Opalis Team blog: http://blogs.technet.com/opalis
Orchestrator Support Team blog: http://blogs.technet.com/b/orchestrator/
OpsMgr Support Team blog: http://blogs.technet.com/operationsmgr/
SCMDM Support Team blog: http://blogs.technet.com/mdm/
SCVMM Team blog: http://blogs.technet.com/scvmm
Server App-V Team blog: http://blogs.technet.com/b/serverappv
Service Manager Team blog: http://blogs.technet.com/b/servicemanager
System Center Essentials Team blog: http://blogs.technet.com/b/systemcenteressentials
WSUS Support Team blog: http://blogs.technet.com/sus/

The Forefront Server Protection blog: http://blogs.technet.com/b/fss/
The Forefront Identity Manager blog : http://blogs.msdn.com/b/ms-identity-support/
The Forefront TMG blog: http://blogs.technet.com/b/isablog/
The Forefront UAG blog: http://blogs.technet.com/b/edgeaccessblog/

Categories: Microsoft, Virtualisation

Microsoft Enterprise Product Roadmap Webcast

Softgrid team blog - Thu, 01/19/2012 - 17:16

Please join us for a high level discussion into Microsoft software investments designed to cover most of the major product lines.  This will be a 35,000 foot view into the following areas:

  • Windows Family
  • Virtualization
  • Office System
  • Unified Communications
  • IT Management
  • Security

This particular webcast is scheduled for Friday, January 20 at 1:00pm Pacific Time although others are scheduled as well.  See this link for more information.

J.C. Hornbeck | System Center & Security Knowledge Engineer

Get the latest System Center news on Facebook and Twitter:

App-V Team blog: http://blogs.technet.com/appv/
AVIcode Team blog: http://blogs.technet.com/b/avicode
ConfigMgr Support Team blog: http://blogs.technet.com/configurationmgr/
DPM Team blog: http://blogs.technet.com/dpm/
MED-V Team blog: http://blogs.technet.com/medv/
OOB Support Team blog: http://blogs.technet.com/oob/
Opalis Team blog: http://blogs.technet.com/opalis
Orchestrator Support Team blog: http://blogs.technet.com/b/orchestrator/
OpsMgr Support Team blog: http://blogs.technet.com/operationsmgr/
SCMDM Support Team blog: http://blogs.technet.com/mdm/
SCVMM Team blog: http://blogs.technet.com/scvmm
Server App-V Team blog: http://blogs.technet.com/b/serverappv
Service Manager Team blog: http://blogs.technet.com/b/servicemanager
System Center Essentials Team blog: http://blogs.technet.com/b/systemcenteressentials
WSUS Support Team blog: http://blogs.technet.com/sus/

The Forefront Server Protection blog: http://blogs.technet.com/b/fss/
The Forefront Identity Manager blog : http://blogs.msdn.com/b/ms-identity-support/
The Forefront TMG blog: http://blogs.technet.com/b/isablog/
The Forefront UAG blog: http://blogs.technet.com/b/edgeaccessblog/

Categories: Microsoft, Virtualisation

Fix: Error Code 0000C800 is generated when connecting to the App-V Management Console

Softgrid team blog - Mon, 01/16/2012 - 18:54

Here’s a new KB article we published today. This one tells you how to fix an issue where error code 0000C800 is generated when connecting to the App-V Management Console:

=====

Symptoms

When connecting to the Microsoft Application Virtualization (App-V or SoftGrid) Management Web Service from the App-V Management Console, you receive the following error message:

Unexpected error occurred.
Please report the following error code to your system administrator.
Error code: 0000C800

Cause

This can occur if TCP/IP is disabled in SQL Server Configuration Manager under SQL Server Network Configuration on the App-V Database SQL Server.

Resolution

On the SQL Server where the App-V Database resides, launch SQL Server Configuration Manager, navigate and expand the SQL Server Network Configuration node and enable the TCP/IP protocol on the SQL instance that hosts the App-V Database.

Example:

On a default install of SQL there will be a Protocols for MSSQLSERVER listed under SQL Server Network Configuration. Highlight Protocols for MSSQLSERVER, right click on TCP/IP in the right hand pane and choose Enable from the Context Menu.

More Information

Other articles related to this specific App-V SQL Server connectivity error are below:

930565 Error message when you connect to the App-V (SoftGrid) Management Web Service from the App-V (SoftGrid) Management Console: "Error code: 0000C800" - http://support.microsoft.com/default.aspx?scid=kb;EN-US;930565

SoftGrid Management Console Intermittently Crashes With 0000C800 or 0000C81D Errors - http://blogs.technet.com/b/appv/archive/2007/09/13/softgrid-management-console-intermittently-crashes-with-0000c800-or-0000c81d-errors.aspx

App-V 4.5 Remote Console Configuration Guide - http://blogs.technet.com/b/appv/archive/2009/04/21/app-v-4-5-remote-console-configuration-guide.aspx

=====

For the most current version of this article please see the following:

2663873: Error Code 0000C800 is generated when connecting to the App-V Management Console

J.C. Hornbeck | System Center Knowledge Engineer

Get the latest System Center news on Facebook and Twitter:

App-V Team blog: http://blogs.technet.com/appv/
AVIcode Team blog: http://blogs.technet.com/b/avicode
ConfigMgr Support Team blog: http://blogs.technet.com/configurationmgr/
DPM Team blog: http://blogs.technet.com/dpm/
MED-V Team blog: http://blogs.technet.com/medv/
OOB Support Team blog: http://blogs.technet.com/oob/
Opalis Team blog: http://blogs.technet.com/opalis
Orchestrator Support Team blog: http://blogs.technet.com/b/orchestrator/
OpsMgr Support Team blog: http://blogs.technet.com/operationsmgr/
SCMDM Support Team blog: http://blogs.technet.com/mdm/
SCVMM Team blog: http://blogs.technet.com/scvmm
Server App-V Team blog: http://blogs.technet.com/b/serverappv
Service Manager Team blog: http://blogs.technet.com/b/servicemanager
System Center Essentials Team blog: http://blogs.technet.com/b/systemcenteressentials
WSUS Support Team blog: http://blogs.technet.com/sus/

The Forefront Server Protection blog: http://blogs.technet.com/b/fss/
The Forefront Identity Manager blog : http://blogs.msdn.com/b/ms-identity-support/
The Forefront TMG blog: http://blogs.technet.com/b/isablog/
The Forefront UAG blog: http://blogs.technet.com/b/edgeaccessblog/

Categories: Microsoft, Virtualisation

Sequencing Microsoft Office 2010 and Dynamics CRM 2011 using App-V 4.6 SP1

Softgrid team blog - Thu, 01/12/2012 - 17:00

Hi everyone, Alvin Morales here.  Recently a customer wanted to sequence Microsoft Office 2010 with Dynamics CRM 2011 using the Offline mode with Outlook, and although we don't have an official support statement on this (meaning we haven’t fully tested it) we were able to get it working with a few minor steps.  Keep in mind that this was done on a "best effort" basis and it worked in this customers environment but we don’t officially guarantee these steps will necessarily work in yours.  Either way, it should give you a good start on implementing something similar.

Preparation:

Before sequencing, you need to determine if you want offline mode or online mode.  If offline mode is going to be used then SQL Express needs to be installed locally on the sequencer as well as the target machines with an instance name of CRM.

- Install the Visual C++ 2010 redistributable files locally on the sequencer and the target clients.  You can find the files at the links below:

x86 : Microsoft Visual C++ 2010 Redistributable Package (x86)

x64 : Microsoft Visual C++ 2010 Redistributable Package (x64)

- Install Windows Identity Foundation (KB974405) locally on the sequencer and target clients

- Install the deployment kit for office 2010 following the Office 2010 sequencing guide (Prescriptive Guidance for Sequencing Office 2010 in App-V 4.6 SP1).

- Copy all media files locally

Sequencing:

I’m going to assume you’re already familiar with the basic mechanics of sequencing (virtualizing) applications using Microsoft Application Virtualization.  If this is not the case, please see the App-V 4.6 Service Pack 1 Sequencing Guide.

- Install Microsoft Office 2010 pointing to Q drive. Select run all from my computer

- Once Office setup is complete, select run another setup in the sequencer and run the splash.exe from the CRM media

- From this window select Install Microsoft Dynamics CRM for Outlook

- Select custom install and select offline mode if you have SQL express installed locally. Change the path to Q: and create a subfolder within the main package to install CRM.

- Once the install is done, enable local interaction on all OSD files and save the package (see http://blogs.technet.com/b/appv/archive/2007/09/20/a-look-under-the-covers-the-local-interaction-allowed-tag.aspx for more details).

- Install all necessary prereq files on the target machines and publish the package

That’s pretty much it. Good luck and happy sequencing!

Hope this helps,

Alvin Morales | Senior Support Escalation Engineer

Get the latest System Center news on Facebook and Twitter:

App-V Team blog: http://blogs.technet.com/appv/
AVIcode Team blog: http://blogs.technet.com/b/avicode
ConfigMgr Support Team blog: http://blogs.technet.com/configurationmgr/
DPM Team blog: http://blogs.technet.com/dpm/
MED-V Team blog: http://blogs.technet.com/medv/
OOB Support Team blog: http://blogs.technet.com/oob/
Opalis Team blog: http://blogs.technet.com/opalis
Orchestrator Support Team blog: http://blogs.technet.com/b/orchestrator/
OpsMgr Support Team blog: http://blogs.technet.com/operationsmgr/
SCMDM Support Team blog: http://blogs.technet.com/mdm/
SCVMM Team blog: http://blogs.technet.com/scvmm
Server App-V Team blog: http://blogs.technet.com/b/serverappv
Service Manager Team blog: http://blogs.technet.com/b/servicemanager
System Center Essentials Team blog: http://blogs.technet.com/b/systemcenteressentials
WSUS Support Team blog: http://blogs.technet.com/sus/

The Forefront Server Protection blog: http://blogs.technet.com/b/fss/
The Forefront Identity Manager blog : http://blogs.msdn.com/b/ms-identity-support/
The Forefront TMG blog: http://blogs.technet.com/b/isablog/
The Forefront UAG blog: http://blogs.technet.com/b/edgeaccessblog/

Categories: Microsoft, Virtualisation

New update to the RDS wiki: The Case of the Invisible RemoteApps

Terminal Services team blog - Wed, 12/07/2011 - 23:52

In our previous blog entry on Remote Desktop Services resources for IT Pros, we mentioned that we'd added a new wiki for Remote Desktop Services in WS08 R2. This wiki has been growing quickly, thanks to the efforts of some of our community. Most recently, we've released a new article on the TechNet Wiki entitled The case of invisible RemoteApp programs (a.k.a. No RemoteApp programs listed on RD Web Access site). This article discusses one of the error messages that you may get while trying to add one or more RemoteApp sources by
using the Configuration tab on the RD Web Access page. It includes an analysis and troubleshooting tips using RD Web Access Tracing. The article also covers the permissions related to WMI and DCOM that you can check when you get these error messages.

If you have your own tips, we encourage you to add them to our wiki and link them to the appropriate landing page.

Categories: , Microsoft

The App-V Client does not upload reporting data, resulting with Event 3144 and error code 0A-200001F4

Softgrid team blog - Thu, 12/01/2011 - 18:34

Hi everyone, Madelinde here again.  Some time ago I was working on a reporting issue for App-V and because this issue keeps popping up every once in a while I thought I’d write a blog post about it so you would be aware of it as well.

NOTE Before applying the actions in this article, make sure to back up your SQL database at any time before making changes!

The problem

The issue that occurs here is that the App-V client fails to upload its reporting cache back to the server. In this reporting cache we store the application usage data so if you have this issue you will not be able to run proper reports on App-V’s application usage. Not all clients have to have this issue, so don’t be surprised if some clients do work, but if some clients have the issue your reports will be incomplete and not reliable.

The symptoms

If your App-V server is configured to request reporting data from your clients, but if you do not use App-V reports, you will likely not even know if you have this issue. A remedy would then be to turn off reporting data collection.

In general, the symptoms of this issue would be:

· Warnings in the logs (Application Event log and App-V Client log).

· Missing or incomplete data in the Management server reports.

· Increasing disk space usage on the App-V clients, because the XML files will never be cleared.

In your App-V client log (sftlog.txt), you will find an entry similar to the one below if you have the issue.

[07/08/2011 07:56:28:947 REPT WRN] {tid=744:usr=USERNAME}
The Application Virtualization Client report data cache could not be sent to Publishing Server URL 'rtsp://APPVSERVER:554/' (rc = 1690640A-200001F4).

A corresponding warning event with ID 3144 will be logged in the Application Event log, but you should make sure that you check the details of this event.

The Event ID 3144 is a general ID for all reporting warnings and it is possible that you see another actual return code (rc) in the details. If you have Event 3144s and if your description matches RC 0A-200001F4 together with the symptoms listed earlier, you are very likely to experience the issue we are talking about here.

An important thing we should keep in mind for this issue is that the complete resolution consists of two parts. After we resolve the issue, reporting data will be uploaded again from that moment on but the reporting cache from before that time will not be uploaded automatically. This is where it gets interesting, because if you need the history data as well, you need to import all the history data manually into the SQL database which can be a somewhat complex procedure.

Background information on App-V reporting

Since the release of App-V 4.5, we improved the way the reporting works in general. We use XML files on the App-V client to store the application usage information between DC refreshes and these files will be uploaded to the server when a DC refresh happens. Because of the changes we made compared to SoftGrid 4.1, clients with App-V 4.5 or newer will not be able to upload their reporting to a SoftGrid 4.1 VAS. When this is the case, an entry similar to the below will be logged in the App-V Client log (sftlog.txt):

[08/24/2010 14:55:18:179 MIME VRB] {tid=BA4:usr=Administrator}
DC server does not want to receive v4.5+ reporting

In addition to this, when a 4.5+ client reports against a SoftGrid 4.1 VAS, you will notice that the below registry value is set to 0 and when it is reporting against a 4.5 VAS, it is set to 1.

On x86:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SoftGrid\4.5\Client\DC Servers\Reporting

On x64:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\SoftGrid\4.5\Client\DC Servers\Reporting

If the reporting key mentioned above is set to 1, you will have the following registry key as well. This key holds the information on the latest reporting cache XML file.

On x86:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SoftGrid\4.5\Client\Reporting\LastCacheFile

On x64:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\SoftGrid\4.5\Client\Reporting\LastCacheFile

This XML file is a physical file on the App-V client. It contains all the application usage information amongst some additional data in XML format. When a DC refresh occurs, we upload this to the server, the XML gets parsed and it will be inserted into the SQL database after which the local file will be flushed. This way, we can use the data in our reports.

NOTE The default location for the XML file is the Global Data Directory, but you have to select “Show hidden files and folders” in Windows folder options before you can actually see it.

Below is an example of how this XML looks like when we have launched applications and before it is uploaded. When we would now do a refresh, the data will be uploaded.

After a DC refresh, the XML file is empty until applications are launched again. An example of this is below as well.

When we use NTA logging to verify this, we can see that when we do a DC Refresh we will get a request for the reporting to be uploaded as well.

[10/31/2011 14:54:12.344, 0x03144] SWRTSPRequest::CreateRequest: Method(SET_PARAMETER), Url(rtsp://madelw-vas:554/), Header(Content-Type: text/xml
AppV-Op: Report
)

In a verbose NTA log you can verify what goes over the wire. When we upload the reporting data, the local XML file will be parsed and it will be sent to the server. In the frame that contains the information on this, you will see a section called “CLIENT_DATA”, and this section contains the information from the XML file.

When we strip an NTA log, in a good situation, the part per application would look like this:

<PKG_DATA.Name="{2920C30C-FB29-4E28-842D-34934585C7E0}".Guid="{2920C30C-FB29-4E28-842D-34934585C7E0}".Ver="0".VerGuid="{00000000-0000-0000-0000-000000000000}".Source="RTSP://%SFT_SOFTGRIDSERVER%:554/APPNAME.sft".PctCached="0"/>"

In a situation where we experience the 0A-200001F4 issue, it would look like the below:

<PKG_DATA.Name="".Guid="{2920C30C-FB29-4E28-842D-34934585C7E0}".Ver="0".VerGuid="{00000000-0000-0000-0000-000000000000}".Source="RTSP://%SFT_SOFTGRIDSERVER%:554/APPNAME.sft".PctCached="0"/>"

As you can see, the PKG_DATA.Name has no value. And this is exactly the issue!

The resolution

With the above information kept in mind, the reason for the issue is the fact that the PKG_DATA.Name does not have a value. And this needs to be imported into a column in SQL that is by default set not to accept NULL values.

You can verify this in SQL Server Management Studio, by opening the column properties for the package_name column in the dbo.REPORTING_PACKAGE_INFORMATION table.

Allow Nulls is set to False here, as shown in the example below:

When you execute the following SQL statement in a new query window, you will notice that the column will be able to accept NULL values from now on.

You have to make sure that the right database is selected when you execute the SQL statement. Otherwise, it will fail!

alter table REPORTING_PACKAGE_INFORMATION
alter column package_name nvarchar(256) null

When this SQL statement has been executed successfully, the issue will be resolved and the XML reporting cache will be uploaded to the App-V VAS again.

How to import the history data?

Now, the issue is resolved and all new App-V reporting data will be uploaded from now on. But the history data from before that time will remain orphaned on the App-V clients. It is possible to gather and import this “old” data as well, but this is a bit of a tricky, complex procedure.

We will use a SQL Stored Procedure to bulk import the data from the XML files into the SQL database. Below is a text version of the Stored Procedure.

NOTE: This stored procedure has been tested on SQL 2008. On other versions, it might need modification. Please test carefully!

You have to save this to a file called “proc_ImportReportingCacheFilesv3.sql

SET NOCOUNT ON
if exists(
select 1 from sysobjects where id = object_id('proc_ImportReportingCacheFilev3')
and OBJECTPROPERTY(id, N'IsProcedure') = 1
)
begin
drop procedure proc_ImportReportingCacheFilev3
end
go
create procedure proc_ImportReportingCacheFilev3
(
@client_host_name nvarchar(256),
@cache_file_name nvarchar(256)
)
as
if @client_host_name is null
begin
raiserror (N'Client host name cannot be NULL', 16, 1)
return
end
if @cache_file_name is null
begin
raiserror (N'Reporting cache file name cannot be NULL', 16, 1)
return
end
-- First, ensure that there is a row in the table that tracks basic
-- metadata for all reporting clients. If there isn't one, we will
-- synthesize a placeholder row with just enough information to allow
-- the app usage data to import correctly
if not exists ( select 1 from REPORTING_CLIENT_INFORMATION where host_name = @client_host_name )
begin
insert into REPORTING_CLIENT_INFORMATION
( host_name, version, cache_size, cache_used )
values
( @client_host_name, N'4.6.0.1523', 1, 0 )
end
declare @hostid uniqueidentifier
select
@hostid = host_id
from
REPORTING_CLIENT_INFORMATION
where
host_name = @client_host_name
print N'Mapped host_id for client ' + @client_host_name + N' as ' + rtrim(cast(@hostid as nvarchar(50)))
-- Load the reporting cache document
declare @doc xml
declare @sql nvarchar(1024)
set @sql = N'select @doc_out = ( select * from openrowset ( bulk ''' +
@cache_file_name + N''', single_blob ) as data )'
execute sp_executesql @sql, N'@doc_out xml output', @doc_out = @doc output
if @@ERROR = 0
begin
if NOT exists(
select 1 from sysobjects where id = object_id('imported_records')
)
begin
create table imported_records
(
row_id int not null identity,
start_time datetime not null,
end_time datetime null,
app_name nvarchar(64) not null,
app_version nvarchar(16) not null,
username nvarchar(256) not null,
server_name nvarchar(256) not null
)
Print 'Table Created for 1st Iteration: imported_records'
end
Print 'Table : imported_records Exists'
insert into imported_records
( start_time, end_time, app_name, app_version, username, server_name )
select
cache.start_time,
case when cache.end_time = '' then null else cache.end_time end,
cache.app_name, cache.app_version,
cache.username, cache.server_name
from
( select
parsed.content.query('data(@Launched)').value('.', 'datetime') as start_time,
parsed.content.query('data(@Shutdown)').value('.', 'datetime') as end_time,
parsed.content.query('data(@Name)').value('.', 'nvarchar(64)') as app_name,
parsed.content.query('data(@Ver)').value('.', 'nvarchar(16)') as app_version,
parsed.content.query('data(@User)').value('.', 'nvarchar(256)') as username,
parsed.content.query('data(@Server)').value('.', 'nvarchar(256)') as server_name
from
@doc.nodes('/REPORT_DATA_CACHE/APP_RECORDS/APP_RECORD') as parsed(content)
) as cache
print N'Loaded ' + rtrim(cast(@@rowcount as nvarchar(30))) + N' records from file ' + @cache_file_name
-- Prune any records that look like they have already been loaded
delete from imported_records
where exists
( select
1
from
APPLICATION_USAGE
where
imported_records.start_time = APPLICATION_USAGE.start_time and
imported_records.app_name = APPLICATION_USAGE.app_name and
imported_records.app_version = APPLICATION_USAGE.app_version and
imported_records.username = APPLICATION_USAGE.username and
APPLICATION_USAGE.host_id = @hostid
)
print N'Removed ' + rtrim(cast(@@rowcount as nvarchar(30))) + N' records that look to have been already uploaded.'
-- Prune duplicate records in the import list. Since they're duplicates, it
-- doesn't really matter which one we keep, so keep the one with the smallest
-- row_id
delete from imported_records
where exists
( select
1
from
imported_records as imported_records_inner
where
imported_records_inner.start_time = imported_records.start_time and
imported_records_inner.app_name = imported_records.app_name and
imported_records_inner.app_version = imported_records.app_version and
imported_records_inner.username = imported_records.username
group by
start_time, app_name, app_version, username
having
count(0) > 1 and min(imported_records_inner.row_id) != imported_records.row_id
)
print N'Removed ' + rtrim(cast(@@rowcount as nvarchar(30))) + N' records that are duplicates within the file itself.'
-- Prune records in the import list that indicate that an app launch ended before
-- it started.
delete from imported_records where end_time is not null and start_time > end_time
print N'Removed ' + rtrim(cast(@@rowcount as nvarchar(30))) + N' records with an incongruous end_time.'
-- Now the new records can be fed to the app usage table
insert into APPLICATION_USAGE
( start_time, end_time, shutdown_state, app_name, app_version,
app_id, username, server_name, host_id )
select
imported_records.start_time, imported_records.end_time,
case when imported_records.end_time is null or imported_records.end_time = '' then 0 else 1 end,
imported_records.app_name, imported_records.app_version,
APPLICATIONS.app_id,
imported_records.username, imported_records.server_name,
@hostid
from
imported_records,
APPLICATIONS
where
APPLICATIONS.name = imported_records.app_name and
APPLICATIONS.version = imported_records.app_version
print N'Added the remaining ' + rtrim(cast(@@rowcount as nvarchar(30))) + N' records with matching applications to the APPLICATION_USAGE table.'
print N'Cleaning up... : imported_records'
truncate table imported_records
print N'Table : imported_records truncated'
end
go

In order to add this Stored Procedure to SQL you have to do the following:

· Open SQL Server Management Studio.

· Select your App-V database.

· Open a new query window and copy the Stored Procedure in there.

· Execute it.

· You will now see that it is added:

If we have a lot of orphaned XML files spread across our clients, we need to gather them to one location. When all XML files are gathered in one folder, for example on your SQL server, you can use the following command to generate TSQL output.

With this TSQL output, you can start the bulk import automatically, and all XML files will be inserted in the database.

for /d %d in (C:\location where the orphaned XML files are gathered\*) do @for /f %f in ('dir /b /a:h %d\*.xml') do @echo exec proc_ImportReportingCacheFilev3 N'%~nd.fulldomainname', N'%~fd\%~f' >>c:\output.sql

When you have gathered the files like the below example, make sure that you do not include the subfolder name, in this case “Clientname001” in your command.

The /d option for the FOR loop will make sure it goes through all subfolders. So if you have created a folder “C:\Test”, containing subfolders for each client you gathered the orphaned files from, you only have to specify “C:\Test” in the command. An example command is outlined below.

Example:

for /d %d in (C:\test\*) do @for /f %f in ('dir /b /a:h %d\*.xml') do @echo exec proc_ImportReportingCacheFilev3 N'%~nd.domain.com', N'%~fd\%~f' >>c:\output.sql

NOTE It can take some minutes before this will finish, depending on the amount of files and folders to go through.

When the command is working properly, we will have a new output file created. This file will look like the below, and it will contain one line per XML file.

NOTE We should verify that the amount of lines in this file corresponds to the number of XML files before executing the TSQL.

Now we can copy this output to SQL Server Management Studio and when we execute it, all XML files will be imported to the SQL database.

We should keep in mind here that when we are talking about 100s or 1000s of files, this can be quite intensive. Therefore we should always do this outside office hours.

In addition to this, we can also consider to load a few files at a time to catch potential issues early.

When we execute the TSQL, we will receive a message that the query was executed successfully, as shown in the example below. Now we can continue to verify that the data has been imported properly, because if we now run an Application Usage report from our App-V Management Server, we should get the expected results

As soon as the results are confirmed, we have to do one final step, which is to remove the temporary table that SQL used to import the data.

Therefore, we have to execute the following command:

drop table imported_records

Now everything is working after all this work, I would also like to say to make a new backup of the database, so that it does not have to be repeated again.

Hopefully this will solve all the “0A-200001F4” errors out there!

Madelinde Walraven | Senior App-V Support Engineer

App-V Team blog: http://blogs.technet.com/appv/
AVIcode Team blog: http://blogs.technet.com/b/avicode
ConfigMgr Support Team blog: http://blogs.technet.com/configurationmgr/
DPM Team blog: http://blogs.technet.com/dpm/
MED-V Team blog: http://blogs.technet.com/medv/
OOB Support Team blog: http://blogs.technet.com/oob/
Opalis Team blog: http://blogs.technet.com/opalis
Orchestrator Support Team blog: http://blogs.technet.com/b/orchestrator/
OpsMgr Support Team blog: http://blogs.technet.com/operationsmgr/
SCMDM Support Team blog: http://blogs.technet.com/mdm/
SCVMM Team blog: http://blogs.technet.com/scvmm
Server App-V Team blog: http://blogs.technet.com/b/serverappv
Service Manager Team blog: http://blogs.technet.com/b/servicemanager
System Center Essentials Team blog: http://blogs.technet.com/b/systemcenteressentials
WSUS Support Team blog: http://blogs.technet.com/sus/

Categories: Microsoft, Virtualisation

How to sequence the Dynamics AX 2012 client with App-V 4.6 SP1 on Windows 7/2008 R2

Softgrid team blog - Wed, 11/30/2011 - 18:29

Hi everyone, Madelinde here.  Since the release of the Dynamics AX 2012 client, we have received a couple of issues when customers try to virtualize this new client using Microsoft Application Virtualization 4.6 Service Pack 1. Earlier versions of the AX client did sequence properly.

This post describes the symptoms, the resolution and the workaround for this particular issue.

The symptoms

When you try to sequence the Dynamics AX 2012 client with the App-V 4.6 Service Pack 1 sequencer on Windows 7 or Windows 2008 R2, you will notice that the Sequencer crashes with the below error.

SFTSequencer.exe – Application Error

Message: The instruction at 0x77bc76e6 referenced memory as 0xfce7687b.
The memory could not be read.
Click OK to terminate the program.

The sequencing will fail and you will be unable to sequence the new AX 2012 client.

This problem is caused by an issue in the App-V Sequencer. On Windows 7 and Windows Server 2008 R2, a specific function works different than on previous Windows versions such as Windows Vista. This issue will be addressed in a future Service Pack for App-V 4.6.

In the meantime, there is a workaround available that will allow you to sequence the AX 2012 client without issues. As mentioned before, the issue happens due to the behavior of a function in Win7/2008R2 only. Because the function behaves differently on Windows Vista, the issue will not happen on this OS. Therefore, if you follow the steps carefully, you should be able to sequence the application on Windows Vista. This package should work as expected on Windows 7 and 2008 R2.

IMPORTANT NOTE: Normally, App-V is not a cross platform solution. In this specific case the package will work because we have no platform specific things to consider. Therefore keep in mind that other applications will not work.

The workaround

The workaround for the issue is to sequence the AX 2012 Client using the following steps on a Windows Vista x86 or x64 machine instead of Windows 7 or 2008 R2.

When following the steps carefully on a Windows Vista machine, we should be able to sequence the AX 2012 Client with App-V 4.6 Service Pack 1.

Follow these steps first before you start the Sequencer:

1. Disable the "Windows Presentation Foundation Font Cache 3.0.0.0" Service

2. Disable the "Windows Presentation Foundation Font Cache 4.0.0.0" Service

3. Launch the AX Setup.exe; install all AX Client component prerequisites (use AX setup "Validate prerequisites" to assist in this).

4. Reboot the virtual machine and make a snapshot.

Workaround for AX setup problem:

1. Launch a command prompt.

If installing AX from a CD/DVD drive, change directories to the root of the CD/DVD drive.

If you are installing from the network share, you must map a network drive to the share, then change directories into the folder that contains AX's setup.exe

2. Launch the App-V sequencer from the command prompt:

"C:\Program Files\Microsoft Application Virtualization Sequencer\SFTSequencer.exe"

This will make the Sequencer's working directory the directory where AX's setup.exe exists.

The Sequencing process:

1. Start the App-V 4.6 Service Pack 1 Sequencer.

2. Click "Create a New Virtual Application Package".

3. Click "Next" (Create Package)

4. Address any issues that are reported on the "Prepare the computer for creating a virtual package" screen and click "Next".

5. Click "Next" (Standard application package).

6. Browse to the installer (AX's setup.exe).

7. Set Virtual Application Name to "AxClient" and then click “Next”.

8. This will launch the AX setup.

9. Click "Install Dynamics AX components".

10. Click "Next" on the "Welcome" screen

11. Accept the license terms and hit “Next”

12. Pick whether or not to join the Customer Experience Improvement Program and hit “Next”

13. On the “Set a file location” screen, choose “Q:\AxClient” as the File location (same folder as was chosen from the Sequencer UI)

14. Click OK to the dialog about placing install files in a different location.

15. Hit “Install” on the “Ready to install” screen to install the Setup Support Files

16. Hit “Next” on the “Select installation type” screen (Custom installation is the only choice)

17. Click the "Client” checkbox in the tree "Prerequisite Validation" should be all successful, hit "Next".

18. Check "Create a desktop shortcut for Microsoft Dynamics AX client application" on the "Select client preferences" screen, hit "Next".

19. Hit Next on the "Specify a location for configuration settings" screen.

20. Enter the required information on the "Connect to an AOS instance" screen, hit "Next".

21. "Prerequisite Validation" should be all successful, hit "Next".

22. Click "Install" on the "Ready to install" screen.

23. Install should succeed, push "Finish".

24. Click the "Exit" button on the AX Setup window.

25. Check the "I am finished installing." checkbox and hit Next.

26. The Sequencer will process for a minute.

27. On the "Configure Software" screen, select "Ax32.exe" and click "Run Selected".

28. Explore the AX client a bit, open various forms, and navigate through various menus.

29. Close the AX client. (Some machines report a shutdown crash at this point which can be ignored)

30. When control returns to the Sequencing Wizard, click "Launch" again to re-launch the AX client.

31. Explore the AX client a bit, open various forms, and navigate through various menus.

32. Close the AX client. (Some machines report a shutdown crash at this point which can be ignored)

33. Click "Next".

34. Click "Next" on the "Installation Report" screen.

35. On the "Customize" screen select the "Customize" radio button and hit next.

36. On the "Edit Shortcuts" select “Microsoft Dynamics AX 2012” and hit “Edit”. The Sequencer isn’t correctly setting the shortcut icon or version number. Adjust the “Version” field and “OSD File Name” to the appropriate version number then click the “Change Icon…” button.

37. Browse to the path “Q:\AxClient\Client\Bin\AxSearchSetup.exe” and double-click on the Dynamics icon (doesn’t work to pick the one from Ax32.exe).

38. Click “Save” on the “Edit Application” screen

39. Click “Next” on the "Prepare for Streaming" screen and click “Yes” on the ensuring “Launch Applications” dialog

40. On the "Target OS" screen, select 32-bit Windows 7 and 64-bit Windows 7.

41. Click "Next".

42. On the "Create Package" screen hit "Create"

This package should be deployable on a Windows 7 32-bit or Windows 7 64-bit machine.  You should make sure that all the AX 2012 Client’s prerequisites are installed on the clients.

Madelinde Walraven | Senior App-V Support Engineer

App-V Team blog: http://blogs.technet.com/appv/
AVIcode Team blog: http://blogs.technet.com/b/avicode
ConfigMgr Support Team blog: http://blogs.technet.com/configurationmgr/
DPM Team blog: http://blogs.technet.com/dpm/
MED-V Team blog: http://blogs.technet.com/medv/
OOB Support Team blog: http://blogs.technet.com/oob/
Opalis Team blog: http://blogs.technet.com/opalis
Orchestrator Support Team blog: http://blogs.technet.com/b/orchestrator/
OpsMgr Support Team blog: http://blogs.technet.com/operationsmgr/
SCMDM Support Team blog: http://blogs.technet.com/mdm/
SCVMM Team blog: http://blogs.technet.com/scvmm
Server App-V Team blog: http://blogs.technet.com/b/serverappv
Service Manager Team blog: http://blogs.technet.com/b/servicemanager
System Center Essentials Team blog: http://blogs.technet.com/b/systemcenteressentials
WSUS Support Team blog: http://blogs.technet.com/sus/

Categories: Microsoft, Virtualisation

App-V: How to Adjust/Increase/Reduce the RTCP/RTP Port Ranges for Use with RTSP

Softgrid team blog - Tue, 11/29/2011 - 19:02

Here’s another great article I found over on the TechNet Wiki that was written by Microsoft’s very own Steve Thomas. This one walks you through how to adjust, increase or reduce the RTCP/RTP port ranges for use with RTSP in App-V:

=====

To stream applications via RTSP, the App-V server uses three channels that are carried through three TCP sockets. First, the App-V client uses the RTSP channel to set up a connection with the App-V Management or Streaming Server. The server opens two private ports (one for the RTP channel and one for the RTCP channel.) The server also sends the port numbers to the client in a response. The client then opens two sockets. Then, the client connects to the private ports that are created on the server. The application is then streamed over the RTP channel. The RTCP channel provides real-time control over the data channel.

=====

To continue reading Steve’s article see http://social.technet.microsoft.com/wiki/contents/articles/4589.aspx.

J.C. Hornbeck | System Center Knowledge Engineer

App-V Team blog: http://blogs.technet.com/appv/
AVIcode Team blog: http://blogs.technet.com/b/avicode
ConfigMgr Support Team blog: http://blogs.technet.com/configurationmgr/
DPM Team blog: http://blogs.technet.com/dpm/
MED-V Team blog: http://blogs.technet.com/medv/
OOB Support Team blog: http://blogs.technet.com/oob/
Opalis Team blog: http://blogs.technet.com/opalis
Orchestrator Support Team blog: http://blogs.technet.com/b/orchestrator/
OpsMgr Support Team blog: http://blogs.technet.com/operationsmgr/
SCMDM Support Team blog: http://blogs.technet.com/mdm/
SCVMM Team blog: http://blogs.technet.com/scvmm
Server App-V Team blog: http://blogs.technet.com/b/serverappv
Service Manager Team blog: http://blogs.technet.com/b/servicemanager
System Center Essentials Team blog: http://blogs.technet.com/b/systemcenteressentials
WSUS Support Team blog: http://blogs.technet.com/sus/

Categories: Microsoft, Virtualisation

Launching an App-V virtualized application on a Remote Desktop Web Access server launches the wrong virtualized application

Softgrid team blog - Mon, 11/28/2011 - 22:19

Here’s another KB article we published today. This one tells you how to fix an issue where trying to launch a virtualized application on a Remote Desktop Web Access server ends up launching a different one:

=====

Symptoms

When users login to a Remote Desktop Session Host server using a Remote Desktop Connection, all of the Microsoft Application Virtualization (App-V) applications work properly, however when users launch the same App-V applications on a Remote Desktop Web Access server the wrong virtualized app is launched. For example, the users receive App-V application B when App-V application A is selected even though the icon and the application names are displayed correctly.

Cause

When the RemoteApps are configured using the RemoteApp configuration wizard, an Alias parameter is configured automatically. Since sfttray.exe is the application for all App-V virtualized apps, once the 2nd App-V application is added, the Alias parameter cannot be same name as another application therefore the Wizard increments the file name with a (1), (2) etc. An example of this is below:

You will notice that the Alias is different for each one of the applications on each server. For example, the Alias for App1 on Server 1 is Sfttray, on Server 2 it is Sfttray1, and on Server 3 it is Sftray3. This is the source of the problem as the Aliases need to be identical for each application on each server.

Resolution

To resolve this issue, edit the RemoteApp parameters for the App-V application so that the Alias parameters are the same for each application across all Remote Desktop Session Host servers. It is recommended that the application name referenced after the /launch switch of the sfttray command be used for the Alias.

Example where the App-V launch commands are:

App1 -sfttray.exe /launch "App1 1.1.1.1"
App2 -sfttray.exe /launch "App2 1.1.1.1"
App3 -sfttray.exe /launch "App3 1.1.1.1"
App4 -sfttray.exe /launch "App4 1.1.1.1"

Change the App1,2,3,4 RemoteApp configurations as follows:

Make this change on all Remote Desktop Session Host servers.

More Information

The most common scenario in which this can happen is when you have multiple Remote Desktop Session Host servers and Remote Desktop Web Access servers that are load balanced. When the App-V applications are manually installed on each Remote Desktop Session Host server, they may or may not have not been installed in exactly the same order. Also, the Applications configured in the RemoteApp Program wizard may or may not have not been configured in exactly the same order on the 3 Remote Desktop Session Host servers, thus the Alias names may not be in sync and in the same order on each server.

Application Virtualization 4.6 for Windows Server 2008 R2 Remote Desktop Services - whitepaper -
http://blogs.technet.com/b/appv/archive/2010/05/27/the-app-v-4-6-for-rds-whitepaper-is-now-available.aspx

=====

For the most current version of this article please see the following:

2638538: Launching an App-V virtualized application on a Remote Desktop Web Access server launches the wrong virtualized application

J.C. Hornbeck | System Center Knowledge Engineer

App-V Team blog: http://blogs.technet.com/appv/
AVIcode Team blog: http://blogs.technet.com/b/avicode
ConfigMgr Support Team blog: http://blogs.technet.com/configurationmgr/
DPM Team blog: http://blogs.technet.com/dpm/
MED-V Team blog: http://blogs.technet.com/medv/
OOB Support Team blog: http://blogs.technet.com/oob/
Opalis Team blog: http://blogs.technet.com/opalis
Orchestrator Support Team blog: http://blogs.technet.com/b/orchestrator/
OpsMgr Support Team blog: http://blogs.technet.com/operationsmgr/
SCMDM Support Team blog: http://blogs.technet.com/mdm/
SCVMM Team blog: http://blogs.technet.com/scvmm
Server App-V Team blog: http://blogs.technet.com/b/serverappv
Service Manager Team blog: http://blogs.technet.com/b/servicemanager
System Center Essentials Team blog: http://blogs.technet.com/b/systemcenteressentials
WSUS Support Team blog: http://blogs.technet.com/sus/

Categories: Microsoft, Virtualisation

Important Additional step when Sequencing the .NET 2.0 Framework in App-V 4.6 and above for Windows XP Clients

Softgrid team blog - Mon, 11/28/2011 - 19:29

Here’s a great article I found over on the TechNet Wiki that was written by Microsoft’s own Steve Thomas. This one talks about an important additional step you need to take when virtualizing (sequencing) .NET 2.0 Framework in App-V 4.6 and above for Windows XP Clients:

=====

For App-V Clients running on Windows XP, the App-V 4.5 Client and above will support the virtualization of the .NET 2.0 Framework…However, there is an additional step that must be taken during the monitoring phase after the .NET 2.0 installations has completed and before monitoring is stopped.

At the end of installing .NET during the monitoring phase, you will need to do a manual file copy of a directory due to the fact that a critical directory is created and referenced as a symbolic link…

=====

To continue reading Steve’s article see http://social.technet.microsoft.com/wiki/contents/articles/5352.aspx.

J.C. Hornbeck | System Center Knowledge Engineer

App-V Team blog: http://blogs.technet.com/appv/
AVIcode Team blog: http://blogs.technet.com/b/avicode
ConfigMgr Support Team blog: http://blogs.technet.com/configurationmgr/
DPM Team blog: http://blogs.technet.com/dpm/
MED-V Team blog: http://blogs.technet.com/medv/
OOB Support Team blog: http://blogs.technet.com/oob/
Opalis Team blog: http://blogs.technet.com/opalis
Orchestrator Support Team blog: http://blogs.technet.com/b/orchestrator/
OpsMgr Support Team blog: http://blogs.technet.com/operationsmgr/
SCMDM Support Team blog: http://blogs.technet.com/mdm/
SCVMM Team blog: http://blogs.technet.com/scvmm
Server App-V Team blog: http://blogs.technet.com/b/serverappv
Service Manager Team blog: http://blogs.technet.com/b/servicemanager
System Center Essentials Team blog: http://blogs.technet.com/b/systemcenteressentials
WSUS Support Team blog: http://blogs.technet.com/sus/

Categories: Microsoft, Virtualisation

Help! Finding Remote Desktop Services Information Online

Terminal Services team blog - Mon, 11/21/2011 - 19:32

We’d like to ensure you can find the information you need to use Remote Desktop Services, so here’s a quick roundup of the available resources and when they’re appropriate.

Most important: please ask questions in the support forums, not in the blog comments. The support forums are much more widely seen than blog comments, so asking in the right place both increases your chance to get an answer and helps others who might have a similar issue find the answer. Thanks!

Categories: , Microsoft

App-V database jobs fail with error - “Executed as user dbo. The server principal “sa” is not able to access the database under the current security context. [SQL State 08004] error 916”.

Softgrid team blog - Thu, 11/17/2011 - 14:44

Here’s one more KB article we just published today. This one talks about an issue where App-V database jobs fail if you have the wrong DB selected I the SQL Server Jobs configuration:

=====

Symptoms

The App-V Management Server installation creates database jobs in the SQL jobs section. When one of the database jobs is executed, the job fails with the error message:
“Executed as user dbo. The server principal “sa” is not able to access the database under the current security context. [SQL State 08004] error 916”.

Cause

The correct database is not selected in the SQL Server jobs configuration.

Resolution

1. Open SQL Management Studio.
2. Navigate to the SQL Server Agent\Jobs node in Object Explorer.
3. Open “Properties” for the Job.
4. Select the Page for “Steps” in the left pane.
5. Select “Edit” and change the database name to the App-V Database being used. (e.g. APPVIRT).

=====

For the most current version of this article please see the following:

2597203: App-V database jobs fail with error - “Executed as user dbo. The server principal “sa” is not able to access the database under the current security context. [SQL State 08004] error 916”.

J.C. Hornbeck | System Center Knowledge Engineer

App-V Team blog: http://blogs.technet.com/appv/
AVIcode Team blog: http://blogs.technet.com/b/avicode
ConfigMgr Support Team blog: http://blogs.technet.com/configurationmgr/
DPM Team blog: http://blogs.technet.com/dpm/
MED-V Team blog: http://blogs.technet.com/medv/
OOB Support Team blog: http://blogs.technet.com/oob/
Opalis Team blog: http://blogs.technet.com/opalis
Orchestrator Support Team blog: http://blogs.technet.com/b/orchestrator/
OpsMgr Support Team blog: http://blogs.technet.com/operationsmgr/
SCMDM Support Team blog: http://blogs.technet.com/mdm/
SCVMM Team blog: http://blogs.technet.com/scvmm
Server App-V Team blog: http://blogs.technet.com/b/serverappv
Service Manager Team blog: http://blogs.technet.com/b/servicemanager
System Center Essentials Team blog: http://blogs.technet.com/b/systemcenteressentials
WSUS Support Team blog: http://blogs.technet.com/sus/

Categories: Microsoft, Virtualisation

Error Codes XXXXXX2A-00000003 or XXXXXX0A-0000000A when attempting to stream an application from a Microsoft Application Virtualization Management Server

Softgrid team blog - Wed, 11/16/2011 - 19:00

Here’s another good KB article we just published today. This one talks about an issue where you get a 00000003 or 0000000A error when trying to launch a virtualized application from an App-V client:

=====

Symptoms

You receive the following error when trying to launch or stream an application using the App-V client:

The Application Virtualization Client could not Launch <APPLICATION NAME>
The System Cannot Find the File Specified
Error Code: XXXXXX-XXXXXX2A-00000003

You may also see the following error:

Unexpected Error
Error Code: XXXXXX-XXXXXX0A-0000000A

Cause

This can easily happen if you use the wrong convention for specifying a UNC path as an HREF for the SFT file in the application’s OSD file.

Resolution

If you use the traditional format and not the proper HREF format for specifying a UNC path, the App-V client will error out. You will need to specify the FILE:// HREF prefix in front of the UNC path. For example, if the SFT file located in \\server\share\directory\application.sft path, you will need to specify the format as follows:

FILE://\\server\share\directory\application.sft

More Information

Please note: Specifying a UNC path using the traditional format (\\server\sharename\directory) for the ASR (ApplicationSourceRoot) OSR (OSDSourceRoot) and ISR (IconSourceRoot) is required for those three values per the documentation here:

http://technet.microsoft.com/en-us/library/cc843817.aspx

=====

For the most current version of this article please see the following:

2641546: Error Codes XXXXXX2A-00000003 or XXXXXX0A-0000000A when attempting to stream an application from a Microsoft Application Virtualization Management Server

J.C. Hornbeck | System Center Knowledge Engineer

App-V Team blog: http://blogs.technet.com/appv/
AVIcode Team blog: http://blogs.technet.com/b/avicode
ConfigMgr Support Team blog: http://blogs.technet.com/configurationmgr/
DPM Team blog: http://blogs.technet.com/dpm/
MED-V Team blog: http://blogs.technet.com/medv/
OOB Support Team blog: http://blogs.technet.com/oob/
Opalis Team blog: http://blogs.technet.com/opalis
Orchestrator Support Team blog: http://blogs.technet.com/b/orchestrator/
OpsMgr Support Team blog: http://blogs.technet.com/operationsmgr/
SCMDM Support Team blog: http://blogs.technet.com/mdm/
SCVMM Team blog: http://blogs.technet.com/scvmm
Server App-V Team blog: http://blogs.technet.com/b/serverappv
Service Manager Team blog: http://blogs.technet.com/b/servicemanager
System Center Essentials Team blog: http://blogs.technet.com/b/systemcenteressentials
WSUS Support Team blog: http://blogs.technet.com/sus/

Categories: Microsoft, Virtualisation

How to create a sample App-V HTTP reporting service

Softgrid team blog - Thu, 11/10/2011 - 16:01

Although you can use the App-V Management Server to gather usage information from clients, many customers have special requirements that could benefit from a customized approach. HTTP Reporting provides a simple way to create a reporting service for App-V that is customized for your business needs.

The following article steps you through the process of creating a simple and scalable system for gathering App-V usage information. This solution will work with any of the supported application publishing methods supported by App-V, including App-V Management Server, Configuration Manager, or even manual deployment via MSIs (Windows Installer).

First, some background. By default, the App-V Client does not record usage information. It is enabled through the policies set up by the Publishing Servers that are configured for the client. Once enabled, the following information is recorded for every application launch: application name, user, and start time. When the application is closed, the end time is also recorded. This information will remain cached on the App-V client until a Publishing Refresh is requested against the reporting server. If you use the App-V Management Server as your reporting server, the usage information is stored in the APPLICATION_USAGE table of the App-V database.

Usage information is sent to the reporting server as a POST request that contains an XML document listing all of the packages loaded on the client system along with the usage information identified above. If the reporting server responds with HTTP 200, the App-V Client will remove the usage information from the client cache. Any other return code will cause the App-V Client to retain the usage information and it will try to send it again the next time a Publishing Refresh is requested against the reporting server.

Note: Currently the App-V Client misinterprets a response of Temporary Redirect as success so you should not use a web server that may return Temporary Redirects.

The App-V Client can be set up with more than one Publishing Server. For example, you could set up one Publishing Server to point to an App-V Management Server for Application Publishing and then setup a second Publishing Server as your reporting server.

For this blog, we are going to set up an HTTP Reporting Service built with ASP.NET. The storing of reporting data will happen in two steps. The App-V Client will connect with our HTTP Reporting Service which will accept the usage information and store it in an XML file. Each night, a scheduled task will load the information from these XML files into a database and then delete the XML files. To avoid filename conflicts, the HTTP Reporting Service will use a GUID as the name for the temporary XML files.

The first step in implementing this solution is to create a web services that performs two simple tasks. If it receives an HTTP GET request, it needs to notify that caller that it is prepared to accept reporting information. If it receives an HTTP POST request, it needs to generate a file name and store the contents of the POST request to the file. Here are the steps for creating your HTTP Reporting Service with Visual Studio 2010.

1. Start Visual Studio and create a new Visual C# ASP.NET Web Application project called “HTTP-Reporting-Service”. Make sure to select “.NET Framework 3.5” unless you already have IIS set up to support “.NET Framework 4.0”.

2. Change “Default.aspx” to contain the following content:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"
Inherits="HTTP_Reporting_Service._Default" %>

3. Right click on Default.aspx in the Solution Explorer and select “View Code”. Replace the auto generated code with the following:

//*********************************************************
//
// Copyright (c) Microsoft. All rights reserved.
//
//*********************************************************
using System;
using System.IO;
using System.Collections.Specialized;
using System.Configuration;
using System.Web.Configuration;
namespace HTTP_Reporting_Service
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// Load appSettings section of the web.config file
NameValueCollection appSettings = WebConfigurationManager.AppSettings as NameValueCollection;
// Instruct App-V Client to send reporting data to this service
if (Request.HttpMethod.Contains("GET"))
{
String refreshInterval = appSettings["RefreshInterval"];
Response.Output.Write("<DESKTOPCONFIG>");
Response.Output.Write("<POLICY MANAGEDDESKTOP=\"TRUE\" REPORTING=\"TRUE\">");
Response.Output.Write("<REFRESH ONLOGIN=\"TRUE\" PERIOD=\"" + refreshInterval + "\"/></POLICY>");
Response.Output.Write("<APPLIST>");
Response.Output.Write("</APPLIST>");
Response.Output.Write("</DESKTOPCONFIG>");
}
// Save reporting data to temporary cache file
if (Request.HttpMethod.Contains("POST"))
{
// Read web.config for configuration information
String cacheLocation = appSettings["CacheLocation"];
int bufferSize;
try
{
bufferSize = Convert.ToInt32(appSettings["BufferSize"]);
}
catch
{
// If BufferSize is invalid, default to 64K
bufferSize = 64 * 1024;
}
// Save reporting data to a unique filename
String filename = Path.Combine(cacheLocation, System.Guid.NewGuid().ToString() + ".xml");
try
{
Stream inputStream = Request.InputStream;
FileStream outputStream = new FileStream(filename, FileMode.CreateNew);
byte[] buffer = new byte[bufferSize];
int bytesToWrite = Request.TotalBytes - 1;
int bytesWritten = 0;
// Write out everything but the last byte so that the file can be parsed as XML
while (bytesWritten < bytesToWrite)
{
int bytesRead = inputStream.Read(buffer, 0, bufferSize);
if (bytesWritten + bytesRead > bytesToWrite)
bytesRead = bytesToWrite - bytesWritten;
outputStream.Write(buffer, 0, bytesRead);
bytesWritten += bytesRead;
}
outputStream.Close();
Response.StatusCode = 200;
}
catch
{
Response.StatusCode = 500;
}
}
}
}
}

4. Build the project. This should create “HTTP-Reporting-Service.dll”

You can now set this service up on IIS7 using the following steps:

1. Log in to the system hosting IIS. Make sure ASP.NET support is enabled.

2. Copy “Default.aspx” into “C:\inetpub\wwwroot\HTTP-Reporting-Service”.

3. Copy “HTTP-Reporting-Service.dll” into “C:\inetpub\wwwroot\HTTP-Reporting-Service\bin”.

4. Create a directory called “C:\Reporting-Cache” to hold the usage data sent by the App-V Client.

5. Create “C:\inetpub\wwwroot\HTTP-Reporting-Service\web.config” with the following content.

<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="CacheLocation" value=" C:\Reporting-Cache "/>
<add key="BufferSize" value="65536"/>
<add key="RefreshInterval" value="720"/>
</appSettings>
</configuration>

6. Open the Internet Information Services Manager and expand the Sites node. Right click on Default Web Site and pick “Add Application”.

7. Enter “HTTP-Reporting-Service” as the Alias. Enter “C:\inetpub\wwwroot\HTTP-Reporting-Service” as the Physical Path. Press Ok.

Next, you need to create program to load the XML files that are created by the HTTP-Reporting-Service created above. Here are the steps to do this using Visual Studio 2010:

1. Start Visual Studio and create a new Visual C# Console Application project called “Report-Data-Loader”. Make sure to select “.NET Framework 3.5” unless you already have IIS set up to support “.NET Framework 4.0”.

2. Replace the contents of Program.cs with the following code:

//*********************************************************
//
// Copyright (c) Microsoft. All rights reserved.
//
//*********************************************************
using System;
using System.IO;
using System.Data.SqlClient;
using System.Xml;
namespace AppV_Load_Report_Data
{
class Program
{
static int Main(string[] args)
{
// Display usage information of any parameters are missing
if (args.Length < 2)
{
Console.WriteLine("USAGE: AppV-Load-Report-Data <cacheLocation> <dbConnectionString>");
return 1;
}
String cacheLocation = args[0];
String connectionString = args[1];
// Make sure parameters are valid
DirectoryInfo cacheDirectory;
if (!Directory.Exists(cacheLocation))
{
Console.WriteLine("ERROR: The cacheLocation specified does not exist.");
return 2;
}
cacheDirectory = new DirectoryInfo(cacheLocation);
try
{
SqlConnection databaseConnection = new SqlConnection(connectionString);
databaseConnection.Open();
Console.WriteLine("Processing files...");
// Process each XML file in the cache directory
foreach (FileInfo reportFile in cacheDirectory.GetFiles("*.xml"))
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(reportFile.FullName);
XmlNodeList nodeList = xmlDoc.SelectNodes("//CLIENT_DATA/APP_RECORDS/APP_RECORD");
foreach (XmlNode node in nodeList)
{
DateTime shutdown = Convert.ToDateTime(node.Attributes["Shutdown"].Value);
if (shutdown < DateTime.MaxValue)
{
String commandText = "INSERT INTO AppV_Usage_Information " +
"(App_Name, App_Version, User_Account, Start_Time, End_Time) " +
"VALUES (@appName, @appVer, @user, @startTime, @endTime)";
SqlCommand command = new SqlCommand(commandText, databaseConnection);
command.Parameters.AddWithValue("@appName", node.Attributes["Name"].Value);
command.Parameters.AddWithValue("@appVer", node.Attributes["Ver"].Value);
command.Parameters.AddWithValue("@user", node.Attributes["User"].Value);
command.Parameters.AddWithValue("@startTime", Convert.ToDateTime(node.Attributes["Shutdown"].Value));
command.Parameters.AddWithValue("@endTime", shutdown);
command.ExecuteNonQuery();
}
}
reportFile.Delete();
}
databaseConnection.Close();
}
catch (Exception e)
{
Console.WriteLine("ERROR: Unexpected error.");
Console.WriteLine("DETAILS: {0}", e.Message);
return 3;
}
return 0;
}
}
}

3. Build the project. This should produce “Report-Data-Loader.exe”

4. Log in to the IIS Server and copy “Report-Data-Loader.exe” to “C:\ Reporting-Cache”

Before starting Report-Data-Loader you must create the database that will accept the usage information. Here are the steps for setting up the reporting database:

1. Open up the Microsoft SQL Server Management Studio using an account that has permission to create tables.

2. Open up a New Query window and run the following SQL Script to create a sample reporting table:

CREATE TABLE [dbo].[AppV_Usage_Information](
[App_Name] [nvarchar](64) NOT NULL,
[App_Version] [nvarchar](16) NULL,
[User_Account] [nvarchar](256) NOT NULL,
[Start_Time] [datetime] NOT NULL,
[End_Time] [datetime] NULL )

You now want to set up a scheduled task on your IIS Server to run Report-Data-Loader.exe. This can be scheduled to run during an off peak period.

1. Start Task Scheduler from Administrator Tools on your IIS server.

2. Select “Create Task”.

3. On the General tab, enter a name and description for this task and indicate the user account to use for the job.

4. Press New on the Triggers tab. On the New Trigger dialog, select “Daily” and specify a start time that is in your off peak window. Press Ok when you are done.

5. Press New on the Action tab. On the New Action dialog, select “Start a program”, specify “C:\Reporting-Cache\Report-Data-Loader.exe” as the Program, and specify “Server=localhost;Database=AppVReport;Uid=sa;Pwd=password” as the arguments. Note that this is your database connection string. Please make sure to substitute in the values for your database server. Press Ok when done.

6. Press Ok to save the new task.

The last step is to set up your App-V Clients to use the new HTTP Reporting Service.

1. Sign in to your App-V Client machine and open the Application Virtualization Client from the Administrative Tools control.

2. Right Click on Publishing Servers and select “New Server…”

3. Enter “Reporting Service” as the Display Name and select “Standard HTTP Server” as the Type. Press Next.

4. Enter server name as the Host Name (example “MyIISServer”) and “/HTTP-Report-Service/Default.aspx” as the Path and press Finish.

Once you have completed these steps, launch and shut down a couple of applications on your client. Then open the Application Virtualization Client, expand the Publishing Servers node, right click on the Reporting Service” item, and select Refresh Server. This should create an XML file in the “Reporting-Cache” directory of your IIS server. When the Report-Data-Loader.exe task is run it should load the usage information from this file into your database and then delete the XML file.

You will find that this service can support the reporting needs for App-V systems with many thousands of clients.

Happy Reporting!

Michael Bilodeau | Senior SDE

App-V Team blog: http://blogs.technet.com/appv/
AVIcode Team blog: http://blogs.technet.com/b/avicode
ConfigMgr Support Team blog: http://blogs.technet.com/configurationmgr/
DPM Team blog: http://blogs.technet.com/dpm/
MED-V Team blog: http://blogs.technet.com/medv/
OOB Support Team blog: http://blogs.technet.com/oob/
Opalis Team blog: http://blogs.technet.com/opalis
Orchestrator Support Team blog: http://blogs.technet.com/b/orchestrator/
OpsMgr Support Team blog: http://blogs.technet.com/operationsmgr/
SCMDM Support Team blog: http://blogs.technet.com/mdm/
SCVMM Team blog: http://blogs.technet.com/scvmm
Server App-V Team blog: http://blogs.technet.com/b/serverappv
Service Manager Team blog: http://blogs.technet.com/b/servicemanager
System Center Essentials Team blog: http://blogs.technet.com/b/systemcenteressentials
WSUS Support Team blog: http://blogs.technet.com/sus/

Categories: Microsoft, Virtualisation

Error when loading the Application Virtualization Client Management snap-in on a Windows Server computer running the App-V Client for Remote Desktop Services

Softgrid team blog - Wed, 11/09/2011 - 16:16

Here’s another good KB article we just published.  This one talks about an issue that may occur if you attempt to maintain multiple connections to the App-V client through the client administrative snap-in/console under the same administrative account when accessed from multiple RDP sessions:

=====

Symptoms

When you open the Application Virtualization (App-V) Client Management snap-in on a Windows Server Computer running the App-V Client for Remote Desktop Services, you get the following error:

MMC could not create the snap-in.
MMC could not create the snap-in. The snap-in might not have installed correctly.
Name: Application Virtualization Client

Cause

This may happen if you attempt to maintain multiple connections to the App-V client through the client administrative snap-in/console under the same administrative account when accessed from multiple RDP sessions.

You can have one console connection alongside a single RDP connection – even under the same user account. The issue only arises when you are attempting a second instance of the MMC snap-in from a second RDP session under the same user account.

Resolution

This issue is known and considered by design.

=====

For the most current version of this article please see the following:

2641268: Error when loading the Application Virtualization Client Management snap-in on a Windows Server computer running the App-V Client for Remote Desktop Services

J.C. Hornbeck | System Center Knowledge Engineer

App-V Team blog: http://blogs.technet.com/appv/
AVIcode Team blog: http://blogs.technet.com/b/avicode
ConfigMgr Support Team blog: http://blogs.technet.com/configurationmgr/
DPM Team blog: http://blogs.technet.com/dpm/
MED-V Team blog: http://blogs.technet.com/medv/
OOB Support Team blog: http://blogs.technet.com/oob/
Opalis Team blog: http://blogs.technet.com/opalis
Orchestrator Support Team blog: http://blogs.technet.com/b/orchestrator/
OpsMgr Support Team blog: http://blogs.technet.com/operationsmgr/
SCMDM Support Team blog: http://blogs.technet.com/mdm/
SCVMM Team blog: http://blogs.technet.com/scvmm
Server App-V Team blog: http://blogs.technet.com/b/serverappv
Service Manager Team blog: http://blogs.technet.com/b/servicemanager
System Center Essentials Team blog: http://blogs.technet.com/b/systemcenteressentials
WSUS Support Team blog: http://blogs.technet.com/sus/

Categories: Microsoft, Virtualisation

Error 268480357 starting an App-V Management Server with dynamic SQL ports

Softgrid team blog - Wed, 10/26/2011 - 15:34

Here’s another good KB article we published today. If you’re seeing error 268480357 on your App-V server then you’ll want to check this one out.

=====

Symptoms

The Application Virtualization Management Server service may fail to start on a Microsoft Application Virtualization 4.5 (App-V 4.5) server with the following error:

---------------------------
Services
---------------------------
Windows could not start the Application Virtualization Management Server on Local Computer. For more information, review the System Event Log. If this is a non-Microsoft service, contact the service vendor, and refer to service-specific error code 268480357.
---------------------------
OK
---------------------------

A corresponding event will be recorded in the System Event Log:

Log Name: System
Source: Service Control Manager
Event ID: 7024
Task Category: None
Level: Error
Keywords: Classic
Description:
The Application Virtualization Management Server service terminated with service-specific error %%268480357.

The Sft-server.log will show entries similar to the following:

[2011-10-18 14:48:33.578] APPVSRV 3020 1512 SW_SQLDataConnection::Open - - - - 2 41494 "Failed to establish a connection to the data source: (Server: sql01\appvirt, Database: APPVIRT).
"
[2011-10-18 14:48:33.578] APPVSRV 3020 1512 SW_SystemDispatcher::init - - - - 1 44901 "System dispatcher initialization error [-1]. System dispatcher startup will stop.
"
[2011-10-18 14:48:33.578] APPVSRV 3020 1512 SW_SystemDispatcher::fini - - - - 0 44952 "Successfully shut down Microsoft System Center Application Virtualization Management Server Version 4.5.2.17140 (3020)
"
Cause

This error may occur if the App-V Management Server was installed to a named SQL instance that is configured to use dynamic ports. If the Application Virtualization Management Server service is unable to connect to this database at startup, the 268480357 error will be generated. This can occur if either A) the port was hard-coded during setup and the port number has changed or B) if the SPN is not correctly registered for the service.

There are 2 registry keys under HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\SoftGrid\4.5\Server that control which SQL instance the server connects to: SQLServerName and SQLServerPort. SQLServerName will be either the server name or server_name\instance_name, depending on what was chosen during installation. If SQLServerPort is set to 0, App-V queries the SPN of the SQL server instance to determine the port number to connect to. If a port was manually entered during setup, SQLServerPort will be hard-coded to use that port number. In the event that the port number of the SQL instances changes, App-V will not be able to connect to the SQL server.

Resolution

To resolve this issue and allow the App-V Management Server service to start, use either of the following methods:

Method 1 - Use static ports

  1. Record the value of HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\SoftGrid\4.5\Server\SQLServerPort (
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SoftGrid\4.5\Server\SQLServerPort on a 32-bit server)
  2. Log on to the SQL server and open the SQL Server Configuration Manager
  3. Navigate to SQL Server Network Configuration\Protocols for <SQL_instance_name> (where <SQL_instance_name> is your App-V SQL instance). Double-click on TCP/IP and then click on the IP Addresses tab
  4. For each IP address, remove any value listed for TCP Dynamic Ports. Change TCP Port to the number you recorded in step 1. Repeat for all IP addresses.
  5. Restart the SQL server instance's service (for example, SQL Server (APPV)).
  6. Start the Application Virtualization Management Server service

Method 2 - Continue using dynamic port assignment

  1. Verify that the SPNs for the SQL server instance is correctly configured using the steps outlined in this article: http://blogs.technet.com/b/appv/archive/2009/04/21/app-v-4-5-remote-console-configuration-guide.aspx
  2. Open Regedit and navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\SoftGrid\4.5\Server. Edit SQLServerPort to change the value to 0. Verify that SQLServerName reflects the instanace name of your SQL server instance in the format <ServerName>\<InstanceName> (for example, SQLServer01\AppV).
  3. Double-click C:\Program Files (x86)\Microsoft System Center App Virt Management Server\App Virt Management Service\SftMgmt.udl and change the instance name to match the value entered in step 2.
  4. Start the Application Virtualization Management Server service
More Information

The 268480357 error can indicate a general failure to connect. This article addresses the specific scenario of a dynamic port changing its value. Always verify basic connectivity, make sure services are started, firewall rules are in place, etc.

=====

For the most current version of this article please see the following:

2633835: Error 268480357 starting an App-V Management Server with dynamic SQL ports

J.C. Hornbeck | System Center Knowledge Engineer

App-V Team blog: http://blogs.technet.com/appv/
AVIcode Team blog: http://blogs.technet.com/b/avicode
ConfigMgr Support Team blog: http://blogs.technet.com/configurationmgr/
DPM Team blog: http://blogs.technet.com/dpm/
MED-V Team blog: http://blogs.technet.com/medv/
OOB Support Team blog: http://blogs.technet.com/oob/
Opalis Team blog: http://blogs.technet.com/opalis
Orchestrator Support Team blog: http://blogs.technet.com/b/orchestrator/
OpsMgr Support Team blog: http://blogs.technet.com/operationsmgr/
SCMDM Support Team blog: http://blogs.technet.com/mdm/
SCVMM Team blog: http://blogs.technet.com/scvmm
Server App-V Team blog: http://blogs.technet.com/b/serverappv
Service Manager Team blog: http://blogs.technet.com/b/servicemanager
System Center Essentials Team blog: http://blogs.technet.com/b/systemcenteressentials
WSUS Support Team blog: http://blogs.technet.com/sus/

Categories: Microsoft, Virtualisation

Live Blogging Citrix Synergy Europe 2011 Day 1 Keynote

Shawn Bass - Wed, 10/26/2011 - 03:15

 Live blog of the day 1 keynote for Citrix Synergy Europe 2011 (Barcelona)

More...

A known good App-V virtual application package may fail with error 19-00001003 after adding a pre-launch script

Softgrid team blog - Thu, 10/20/2011 - 20:52

Here’s a great new KB article we published today.  If you’re seeing errors after adding a pre-launch script to one of your App-V packages then you’ll want to check this one out:

=====

Symptoms

A known good Microsoft Application Virtualization (App-V) package may fail with the following error after adding a pre-launch script:
Application Virtualization Error

The Application Virtualization Client could not launch <Package Name>.

The Application Virtualization Client encountered a problem while waiting for the application to be ready to interact with the user. Report the following error code to your System Administrator.

Error code: 4505CD-1F702A19-00001003

Cause

This is typically caused by a timing issue between the App-V client and the Windows Message Pump due to the pre-launch script.

Resolution

To resolve this issue, change the <SUBSYSTEM VALUE="windows"/> XML tag in the .OSD file from windows to console. This change will need to be implemented in each OSD file in the package.

Example:

Change:

<VM VALUE="Win32">
<SUBSYSTEM VALUE="windows"/>
</VM>

To:

<VM VALUE="Win32">
<SUBSYSTEM VALUE="console"/>
</VM>

If you are deploying packages using a Application Virtualization Server you will need to initiate a DC refresh on the App-V client to update the OSD cache. Once complete this issue should be resolved. If using Configuration Manager 2007 or an MSI package to deploy App-V applications, the package will need to be updated using the sequencer and redeployed.

=====

To continue reading this article please see the link below:

2628029: A known good App-V virtual application package may fail with error 19-00001003 after adding a pre-launch script

J.C. Hornbeck | System Center Knowledge Engineer

App-V Team blog: http://blogs.technet.com/appv/
AVIcode Team blog: http://blogs.technet.com/b/avicode
ConfigMgr Support Team blog: http://blogs.technet.com/configurationmgr/
DPM Team blog: http://blogs.technet.com/dpm/
MED-V Team blog: http://blogs.technet.com/medv/
OOB Support Team blog: http://blogs.technet.com/oob/
Opalis Team blog: http://blogs.technet.com/opalis
Orchestrator Support Team blog: http://blogs.technet.com/b/orchestrator/
OpsMgr Support Team blog: http://blogs.technet.com/operationsmgr/
SCMDM Support Team blog: http://blogs.technet.com/mdm/
SCVMM Team blog: http://blogs.technet.com/scvmm
Server App-V Team blog: http://blogs.technet.com/b/serverappv
Service Manager Team blog: http://blogs.technet.com/b/servicemanager
System Center Essentials Team blog: http://blogs.technet.com/b/systemcenteressentials
WSUS Support Team blog: http://blogs.technet.com/sus/

Categories: Microsoft, Virtualisation

VAppCollector launches even if System Center Configuration Manager/App-V integration is not enabled

Softgrid team blog - Thu, 10/20/2011 - 13:52

Here’s a great new KB article we published today. This one talks about a potential issue you might see one your App-V/ConfigMgr 2007 clients.  If you’re running these now or have plans to do so in the future you’ll probably want to give this one a read:

=====

Symptoms

The VAppCollector component of System Center Configuration Manager 2007 (ConfigMgr 2007) will be launched on a client even if ConfigMgr 2007/Microsoft Application Virtualization (App-V) integration is disabled. This can potentially generate multiple errors in the event log such as Event IDs 2012, 3008, 3210 and 5009.

Cause

This can occur if the Asset Intelligence component is enabled in System Center Configuration Manager 2007. Regardless of whether ConfigMgr 2007 is managing App-V clients or not, it will trigger the launch of VAppCollector. This is by design.

Resolution

There is no supported way to prevent VAppCollector from launching other than by disabling Asset Intelligence, although in most cases this is not a viable solution as it stops all licensing information for the System Center Configuration Manager site.

If you are unable to disable Asset Intelligence, the only other known workarounds are below:

1) Include the computer account as part of the App-V user group assigned in the App-V server. This will allow the system account to launch the applications and thus no errors will be reported in the application event log.

2) Use System Center Configuration Manager 2007 to deploy your virtual packages or to deploy your virtual applications using MSI.

3) Ignore the errors in the event logs as they will not affect the App-V operations.

4) Set the HKLM\software\Microsoft\Softgrid\4.5\Client\Configuration\RequireAuthorizationIfCached registry key to 0. Keep in mind that this affects security because any user can create a shortcut and launch the applications even when they are not authorized. Be sure you fully understand all the implications of this before modifying this registry key. See below definition of this key:

RequireAuthorizationIfCached

Indicates that authorization is always required, whether or not an application is already in cache. Possible values:

0=False: Always try to connect to the server. If a connection to the server cannot be established, the client still allows the user to launch an application that has previously been loaded into cache.

1=True (default): Application always must be authorized at startup. For RTSP streamed applications, the user authorization token is sent to the server for authorization. For file-based applications, file ACLs control whether a user may access the application.

Restart the sftlist service for the change to take effect. See http://technet.microsoft.com/en-us/library/dd464849.aspx for more details.

More Information

VAppCollector is a component developed by the System Center Configuration Manager team to collect information about virtual applications using the App-V client. Besides Asset Intelligence it is used to populate the information in the virtual applications reports in System Center Configuration Manager to gather errors, last launched, etc. It is also used to collect information for virtual applications for metering purposes. VAppCollector does not have its own log as do other components in System Center Configuration Manager 2007.

It is normal behavior to collect all this information during an Hardware inventory cycle and launch of each application. You can gather more information about Asset intelligence by looking at the following log:

Assetadvisor.log

You will see entries similar to these:

Executing "C:\Program Files\Microsoft Application Virtualization Client\sfttray.exe" /exe "C:\Windows\system32\CCM\VAppCollector.exe" /quiet /launch "Microsoft Office Document Cache" AssetAdvisor 8/4/2011 9:34:31 AM 236 (0x00EC)
Timed-out running "C:\Program Files\Microsoft Application Virtualization Client\sfttray.exe" /exe "C:\Windows\system32\CCM\VAppCollector.exe" /quiet /launch "Microsoft Office Document Cache" AssetAdvisor 8/4/2011 9:34:30 AM 236 (0x00EC)

If VAppCollector ran successfully you will see consecutive executing lines otherwise you will receive time-out entries among the executing lines.

Another way to determine if VAppCollector ran is to look into the sftlog.txt and find the lines that do not have usr values in them. Below is an example.

Launched by a user:

[08/04/2011 17:35:57:594 SWAP INF] {hap=C8:app=Microsoft Office Document Cache 14.0.4763.1000:tid=11C8:usr=administrator}
Elapsed time for launch: 6.219 seconds
[08/04/2011 17:36:18:958 SWAP INF] {hap=C8:app=Microsoft Office Document Cache 14.0.4763.1000:tid=11C8:usr=administrator}
App shut down

Launched by VAppCollector (note the lack of a "usr=" entry in the log lines):

[08/04/2011 17:30:21:501 SWAP INF] {hap=C3:app=Microsoft Office Document Cache 14.0.4763.1000:tid=1300}
Elapsed time for launch: 3.422 seconds
[08/04/2011 17:30:29:986 SWAP INF] {hap=C3:app=Microsoft Office Document Cache 14.0.4763.1000:tid=1300}
App shut down

Although VAppCollector will run on clients that have received applications through App-V server, the virtual applications reports in System Center Configuration Manager will not populate as there are no virtual packages to correlate the data. Asset Intelligence reports will have information about virtual packages but due to the lack of permissions to launch the virtual applications it cannot collect information such as software company, version, etc. These columns will show as unidentified or unknown on these reports.

Other things to consider:

Any prelaunch scripts that are set in the OSD files of these virtual applications will be launched during the hardware inventory cycle. If for example you are using a prelaunch script to map a drive, there will be an attempt to map the drive using the system account and if the computer doesn't have rights to map the drive it will show as disconnected. To work around this issue and similar issues consider the use of Post shutdown scripts to gracefully disconnect drives and terminate any instance that is triggered during the prelaunch phase.

=====

To continue reading this article please see the link below:

2590590: VAppCollector launches even if System Center Configuration Manager/App-V integration is not enabled

J.C. Hornbeck | System Center Knowledge Engineer

App-V Team blog: http://blogs.technet.com/appv/
AVIcode Team blog: http://blogs.technet.com/b/avicode
ConfigMgr Support Team blog: http://blogs.technet.com/configurationmgr/
DPM Team blog: http://blogs.technet.com/dpm/
MED-V Team blog: http://blogs.technet.com/medv/
OOB Support Team blog: http://blogs.technet.com/oob/
Opalis Team blog: http://blogs.technet.com/opalis
Orchestrator Support Team blog: http://blogs.technet.com/b/orchestrator/
OpsMgr Support Team blog: http://blogs.technet.com/operationsmgr/
SCMDM Support Team blog: http://blogs.technet.com/mdm/
SCVMM Team blog: http://blogs.technet.com/scvmm
Server App-V Team blog: http://blogs.technet.com/b/serverappv
Service Manager Team blog: http://blogs.technet.com/b/servicemanager
System Center Essentials Team blog: http://blogs.technet.com/b/systemcenteressentials
WSUS Support Team blog: http://blogs.technet.com/sus/

Categories: Microsoft, Virtualisation
Subscribe to Spellings.net aggregator - Microsoft