Monthly Archives: June 2012

  • 0

Identify and Remove Ghost NICs With devcon

With this post I share a small batch file that leverages the devcon utility from Microsoft to remove hidden network interfaces.

Recently Citrix identified an issue with those “Ghost NICs” when trying to image a target machine that resides on a virtualization platform like VMware (see CTX133188). NICs can be hidden of leftover from when the machine was built or when the virtualization tools were installed. If the PVS target software binds itself to one of these hidden NICs it won’t allow bnistack to load a vDisk properly.

Next question is how to get devcon because there’s no official download page. Check out this blog post

Disclaimer: I hope that the information in this post is valuable to you. Your use of the information contained in this post, however, is at your sole risk. All information on this post is provided “as is”, without any warranty, whether express or implied, of its accuracy, completeness, fitness for a particular purpose, title or non-infringement, and none of the third-party products or information mentioned in the work are authored, recommended, supported or guaranteed by me. Further, I shall not be liable for any damages you may sustain by using this information, whether direct, indirect, special, incidental or consequential, even if it has been advised of the possibility of such damages.


  • 0

[Updated] Prepare XenApp 6.x Server for Imaging with PVS

Hello again,

today I want to share a small PowerShell script that I use to semi-automatically prepare a XenApp 6.x server for imaging with PVS. It automates the following steps:

  • Investigate the PVS’ Personality.ini in the root of the system drive in order to determine the disk mode (read-write, read-only, or started from local HD)
  • Start the Citrix IMA service
  • Query XenApp Server Load. Exit if the query fails. Exit if the XenApp server count is below 3.
  • Run XenAppConfigConsole to prepare the server for imaging. (Based on the script user’s choice locally stored XenApp database information will be either kept or cleared from mf20.dsn and LGPO. Default is keep db information. If you choose to clear them you need to provide DB information through GPO.)
  • Clear XenApp related caches (LHC and RADE)
  • Clear Citrix User Profile Manager’s cache
  • Resync time
  • Update GPO settings
  • Clear network related caches (DNS and ARP)
  • Clear WSUS Client related settings
  • Clear event logs
  • Based on the findings in Step 1, suggest a convenient main action, that is either “Exit” (if we’re in maintenance/private w/ read-write vdisk access), or “Invoke ImagingWizard” (if we started from local HD), or “Invoke XenConvert” (reverse imaging scenario w/ read-only vdisk access)

The script raises no claim to completeness. For example, you should consider running chkdsk C: as consistency check and Mark Russinovich’s SDelete to reduce storage needs.

Disclaimer: I hope that the information in this post is valuable to you. Your use of the information contained in this post, however, is at your sole risk. All information on this post is provided “as is”, without any warranty, whether express or implied, of its accuracy, completeness, fitness for a particular purpose, title or non-infringement, and none of the third-party products or information mentioned in the work are authored, recommended, supported or guaranteed by me. Further, I shall not be liable for any damages you may sustain by using this information, whether direct, indirect, special, incidental or consequential, even if it has been advised of the possibility of such damages.


  • 0

Simple XenApp 6.5 Farm Reboot Cycle

Tags :

Category : Windows PowerShell

With this post I want to share a simple approach to restart Citrix XenApp 6.5 servers within a given timeframe, each at a different time. Yes yes, there are Citrix policies to do that, but these settings only take effect with XenApp 6.5 Platinum Edition. If your company didn’t purchased Platinum licenses you need to rely on “traditional” ways like my ordinary scripted solution.

First take a look at this small PowerShell function Restart-ComputerSoon:

If you execute this function on all XenApp servers at the same time (as a scheduled task), each server will actually restart at a different time because the function uses a randomly chosen amount of seconds to delay the restart.

Please don’t consider this a perfect solution. The function just cares about issuing a shutdown.exe command within a timeframe of 30 minutes (by default). But it doesn’t care about existing user sessions and giving them a chance to log off for example.