Blog

Subscribe to the RSS feed

AppSense Personalization Best Practices - Grouping

Written on Thursday 27 June 2013 by Geert De Keyser in category AppSense

In this blog we describe the best practices on the two types of grouping AppSense Personalization has:

  • Personalization Groups
  • Application Groups

AppSense Environment Manager Policy Configurations Lost

Written on Thursday 18 April 2013 by Geert De Keyser in category AppSense

Have you ever seen AppSense items disappearing while users are logged on? Typically this can be a user that misses mapped drives, shortcuts or GPO settings. This is out-of-the-box behavior of AppSense. To understand why this happens and how you can prevent it from happening, please read this post.

SCCM 2012 and Citrix Provisioning Services

Written on Wednesday 27 March 2013 by Frank Vandebergh in category Citrix

When using SCCM together with an imaging solution such as Citrix provisioning server, care must be taken regarding the SCCM agent unique ID information. This information is normally stored in the C:\windows\SMSCFG.INI file. The problem is that this file will be the same in every pooled instance and therefore causing duplicate resources within SCCM or re-registrations of the SCCM agent. In the past, the problem was solved using a computer startup and shutdown script that copied this ini file to a persistent location and back, and as such preserving the unique ID of each machine.

When ConfigMgr 2012 was released, Microsoft built in some generic WMI namespace in which different vendors could populate certain fields in order to tell the SCCM Agent which location to use for storing it's persistent configuration. When the SCCM agent is starting it detects it is running on a non-persistent machine and used WMI to determine the location of the Citrix Identity Store (in order for this to work, PVS write cache should be set to Device Hard Disk).

When SCCM determines the location of the persistent drive (ex. D:\ ) it restores its unique information from this location.

There is no documentation from Citrix regarding this configuration other than that it should just work. However we have found that some additional steps are needed in order to make this work:

  1. When finishing the "master" image, prior to shutdown. Stop the CCMEXEC service. (or SMS Agent Host)
  2. Delete the C:\Windows\SMSCFG.INI file
  3. Delete the current certificates in the "SMS" certificate store.
  4. Close the master image

    When the image is next booted using PVS standard mode, the SCCM agent will create a new SMSCFG.INI file based on the contents of the Citrix Identity Store and will create new certificates to be used for communication with the configmgr management points. The agent will now use the existing resource records within ConfigMgr instead of creating a new resource.

AppSense Personalization Archiving

Written on Tuesday 26 March 2013 by Geert De Keyser in category AppSense

One of our clients had errors with the automatic archiving job. To solve this I had to dive into all the settings, but could not find documentation of it in one place. So I wrote an article to share with you.

Archiving enables application and desktop settings to be rolled back to previous states in event of profile inconsistencies. The great thing about the AppSense way of working is that, in contrast to the standard Windows profile, EM Personalization is split into small pieces, allowing you to restore only the erroneous settings.

Manipulate the AppSense virtual bubble

Written on Tuesday 5 March 2013 by Geert De Keyser in category AppSense

AppSenseSPECIAL is a command-line tool to work in the bubble of the application.  With this “switch” you can trick AppSense into thinking that you are starting an application, while in real you are not, you are accessing the bubble and can manipulate it.

We created an import/export process to migrate data from the virtual AppSense registry to the physical registry of the computer. But the same process can be used to import/export files between the physical filesystem and the virtual AppSense filesystem.

Virtualizing SQL Server 2012 with Hyper-V

Written on Sunday 24 June 2012 by Bob Deleeck in category Default

This report presents the results of ESG Lab testing of the performance and scalability of Microsoft’s Windows Server 2008 R2 SP1 with Hyper-V server virtualization technology. Testing with a tier-1 virtualized Microsoft SQL Server 2012 application workload was used to confirm that Hyper-V can be used to lower total cost of ownership, increase scalability, and maintain performance.

Citrix Updates Citrix Receiver to Support CloudGateway and Substantially Improve End User Performance

Written on Wednesday 22 February 2012 by Bob Deleeck in category Default

Citrix will be releasing updates to Receiver to broaden and enrich the end user experience on a variety of endpoints. Updates will include Receiver mobile clients for Android and iOS as well as Receiver for Windows (3.1).

STOP error 0x0000DEAD on XenServer 6

Written on Sunday 19 February 2012 by Erik Janssens in category Default

Since we upgraded our LAB environment from XenServer 5.6 to XenServer 6, all our Windows Server 2008 R2 virtual machines are regulary crashing, and showing BSOD's with stop error 0x0000DEAD. Also, the event viewers on all servers were showing events similar to the one below:

When going through the memory dumps I noticed the issue was related to the network Citrix PV Ethernet driver, more specifically xenvif.sys, installed by XenServer Tools from XenServer 6. When an interface using this driver receives a rogue TCP packet, where the TCP header contains options but the IP packet length is too short to accommodate them, the system crashes. The fact that these packages exist suggest something else on the network is misbehaving.

Citrix recognizes this problem, but it will only be fixed in the next version of XenServer, 6.0.2, which will be released somewhere in March. Luckily there are two workarounds for this problem:

  • Install XenServer Tools from XenServer 5.6
  • Disable 'Large Receive Offload' on the driver properties for all interfaces using the Citrix PV Ethernet driver

Update: This powershell script disables Large Receive Offload for all interfaces using the Citrix PV Ethernet driver:

$root = 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}'
$items = Get-ChildItem -Path Registry::$Root -Name

Foreach ($item in $items) {
    if ($item -ne "Properties") {
        $path = $root + "\" + $item
        $DriverDesc = Get-ItemProperty -Path Registry::$path | Select-Object -expandproperty DriverDesc
        if ($DriverDesc -eq "Citrix PV Ethernet Adapter") {
            Set-ItemProperty -path Registry::$path -Name LROIPv4 -Value 0
        }
     }
}

Best Practices for Virtualizing Exchange Server 2010 with Windows Server 2008 R2 Hyper V

Written on Friday 17 February 2012 by Bob Deleeck in category Default

The purpose of this paper is to provide guidance and best practices for deploying Microsoft® Exchange Server 2010 in a virtualized environment with Windows Server® 2008 R2 Hyper V™ technology. This paper has been carefully composed to be relevant to organizations of any size.

XenServer 6 Auto-Start VMs

Written on Saturday 7 January 2012 by Frank Vandebergh in category Citrix

In XenServer 6, Citrix made the decision to not include the option anymore to auto-start VM's when the XenServer host boots up. The reason is that this feature interfered with the HA and Failover capabilities, but nonetheless it was a nice feature for situations where only one XenServer host is used.

In XenServer 6 it is possible to auto-start VM's but it requires enabling the auto-start feature at the pool level and on each individual VM by using the CLI which is not very user friendly. Therefore, we have created a script that runs during startup of the host and will start any VM that has been tagged with the "autostart" tag. This allows for easy administration using XenCenter.

In order to install the script,  copy the contents below to the end of the /etc/rc.d/rc.local file on the XenServer host, using for example WinSCP.  Afterwards just tag the VM's you would want to auto-start using the tag "autostart". The VM's will be started with a 20 second delay between each VM.

 

# AutoStart VM's that are tagged with autostart tag
# Script created by Raido Consultants - http://www.raido.be
TAG="autostart"
# helper function
function xe_param()
{
PARAM=$1
while read DATA; do
LINE=$(echo $DATA | egrep "$PARAM")
if [ $? -eq 0 ]; then
echo "$LINE" | awk 'BEGIN{FS=": "}{print $2}'
fi
done
}
# Get all VMs
sleep 20
VMS=$(xe vm-list is-control-domain=false | xe_param uuid)
for VM in $VMS; do
echo "Raido AutoStart Script : Checking VM $VM"
VM_TAGS="$(xe vm-param-get uuid=$VM param-name=tags)"
if [[ $VM_TAGS == *$TAG* ]]
then
echo "starting VM $VM"
sleep 20
xe vm-start uuid=$VM
fi
done



Update: This script will do the same with vApps. If "autostart" is in the description of a vApp it will start the vApp during boot. Within a vApp you can specify multiple VM's and their boot order.
# AutoStart Vapp's that have autostart in description
# Script created by Raido Consultants - http://www.raido.be 
TAG="autostart"
# helper function
function xe_param()
{
PARAM=$1
while read DATA; do
LINE=$(echo $DATA | egrep "$PARAM")
if [ $? -eq 0 ]; then
echo "$LINE" | awk 'BEGIN{FS=": "}{print $2}'
fi
done
}
# Get all Applicances
sleep 20
VAPPS=$(xe appliance-list | xe_param uuid)
for VAPP in $VAPPS; do
echo "Raido AutoStart : Checking vApp $VAPP"
VAPP_TAGS="$(xe appliance-param-get uuid=$VAPP param-name=name-description)"
if [[ $VAPP_TAGS == *$TAG* ]]
then
echo "starting vApp $VAPP"
xe appliance-start uuid=$VAPP
sleep 20
fi
done