• View Communities
    • Citrix Communities
      Visit the Citrix Communities to get and share technical information and best practices about desktop delivery, datacenter, networking and cloud computing solutions.
    • Citrix Blogs
      Learn the latest from the Citrix employees who are building the future of virtual computing.
    • Citrix Developer Network
      The place for unfiltered straight talk on Citrix products. Find related blogs, best practices, code downloads, APIs and more.
    • Citrix Ready Community Verified
      Does it work with Citrix? Application compatibility questions are a thing of the past with the new Citrix Community Verified site.
  •  Sign In
Citrix Developer Network

Add-DisableICALogonLE.ps1

A PowerShell script that creates a Load Evaluator with an empty Schedule Rule. A Load Evaluator with an empty Schedule Rule maximizes a XenApp server's load. Thus, it won't accept new ICA sessions.

Description

Experienced Citrix XenApp/Presentation Server admins like to use a Load Evaluator with an empty Schedule Rule to take a server offline for maintenance or troubleshooting. An empty Schedule Rule maximizes the server's load, thus it won't accept any new ICA sessions while all active sessions are not affected.

Compared to CHANGE LOGON /DISABLE or Disable Logon in AMC an empty Schedule LE Rule allows disconnected user's to reconnect to their sessions, and Administrators are still able to establish new RDP sessions.

The script Add-DisableICALogonLE.ps1 uses MFCOM to create such an "Offline" Load Evaluator and is useful in automated Citrix Farm setups.

Download

Get the latest version of this script here: Add-DisableICALogonLE.ps1

Code Snippet

Please any code snippet which might be useful for the user to better understand the script.

# NAME
#     Add-DisableICALogonLE.ps1
#
# SYNOPSIS
#     Creates a Load Evaluator with an empty Schedule Rule.
#
# SYNTAX
#     .\Add-DisableICALogonLE.ps1 -name Name [-description Description]
#
# DETAILED DESCRIPTION
#     A Load Evaluator with an empty Schedule Rule will maximize a XenApp
#     server's load. Thus, it won't accept new ICA sessions while active
#     and disconnected sessions are not affected.
#
# AUTHOR
#     Frank-Peter Schultze www.fpschultze.de
#
# DATE
#     27-Jul-2008

Param(
  $name = $(throw "Load Evaluator name must be specified"),
  $description = "Takes server offline for maintenance purposes"
)

$MetaFrameWinFarmObject = 1
$LMRuleSchedule = 5

$myfarm = New-Object -ComObject "MetaFrameCOM.MetaFrameFarm"
$myfarm.Initialize($MetaFrameWinFarmObject)
$myfarm.LoadEvaluators | %{if ($_.LEName -eq $name) {
    Write-Warning "The load evaluator `"$name`" already exists."; break
  }
}

Write-Verbose "Creating Load Evaluator `"$name`" . . ."

$newrule = New-Object -ComObject "MetaFrameCOM.MetaFrameLMRule"
$newrule.RuleType = $LMRuleSchedule

$allrules = New-Object -ComObject "MetaFrameCOM.MetaFrameLMRules"
$allrules.AddRule($newrule)

$newle = New-Object -ComObject "MetaFrameCOM.MetaFrameLoadEvaluator"
$newle.LEName = $name
$newle.Description = $description
$newle.Rules = $allrules
$newle.SaveData()



Disclaimer

These software applications are provided to you as is with no representations, warranties or conditions of any kind. You may use and distribute it at your own risk. CITRIX DISCLAIMS ALL WARRANTIES WHATSOEVER, EXPRESS, IMPLIED, WRITTEN, ORAL OR STATUTORY, INCLUDING WITHOUT LIMITATION WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NONINFRINGEMENT. Without limiting the generality of the foregoing, you acknowledge and agree that (a) the software application may exhibit errors, design flaws or other problems, possibly resulting in loss of data or damage to property; (b) it may not be possible to make the software application fully functional; and (c) Citrix may, without notice or liability to you, cease to make available the current version and/or any future versions of the software application. In no event should the code be used to support of ultra-hazardous activities, including but not limited to life support or blasting activities. NEITHER CITRIX NOR ITS AFFILIATES OR AGENTS WILL BE LIABLE, UNDER BREACH OF CONTRACT OR ANY OTHER THEORY OF LIABILITY, FOR ANY DAMAGES WHATSOEVER ARISING FROM USE OF THE SOFTWARE APPLICATION, INCLUDING WITHOUT LIMITATION DIRECT, SPECIAL, INCIDENTAL, PUNITIVE, CONSEQUENTIAL OR OTHER DAMAGES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. You agree to indemnify and defend Citrix against any and all claims arising from your use, modification or distribution of the code.

Enter tags to add to this page:
Please wait 
Looking for a tag? Just start typing.
  1. Aug 07, 2008

    Vishal Ganeriwala says:

    Hi Frank Great powershell script. Thanks for the contribution.

    Hi Frank
    Great powershell script. Thanks for the contribution.

Related Links