If you are planning to install a Citrix Presentation Server 4.5 Farm, then this script will be very usefull. Just configure the bold settings and be sure you have installed Java Runtime Enviroment and .Net Framework 2.0. For more usefull scripts see http://www.theshonkproject.com
TITLE Install Metaframe Presentation Server 4.5
REM Written by Joe Shonk
:: Version 1.1
@echo off
setlocal enabledelayedexpansion
set AppSourcePath=\\server\share\CPS4\Source
set logfile=”%temp%\CPS45.log”
REM Disable the Anonymous Account Created by the Installer
:: Possible Choices
:: Y or Yes
:: N or No
set disable_anon=y
REM Create a new Farm or Join an existing Farm
:: Possible Choices
:: Create
:: Join
set farm_selection=Create
REM Select Database Type
:: Possible Choices
:: SQL
:: Access
:: SQLExpress
set database_type=SQLExpress
REM This is required if using SQL Server
:: Point this to the SQL Server hosting the datastore
set SQL_Server={SQL Server}
set SQL_Database={Database}
set SQL_ODBC_UserName=CitrixIMA
set SQL_ODBC_UserPwd={PASSWORD}
set SQL_DSN_File=”%temp%\mf20.dsn”
REM This is required if using a SQL Express or Access Datastore
:: and joining an existing Farm
:: Point this to the server hosting the datastore
set CTX_Join_Server={DataStore}
REM Set the Edition of Presentation Server
:: Possible Choices
:: Enterprise (Use this for Platinum Edition as well)
:: Advanced
set CTX_Edition=Enterprise
REM Choose Presentation Server Modules to Install
:: Possible Choices
:: PN : Program Neighborhood
:: PNAgent : Program Neighborhood Agent
:: CMC : Presentation Server Management Console
:: IM : Installation Manager
:: IMPackager : Installation Manager Packager
:: RM : Resource Manager
:: CSS : Application Hub Streaming Client
set CTX_Modules=PN,PNAgent,CMC,CSS,RM
set CTX_FarmName={Farm Name}
set CTX_UserName={USERNAME}
set CTX_UserPwd={PASSWORD}
set CTX_DomainName={DOMAINNAME}
set CTX_PNAgentSrv={WI Server}
set CTX_LicenseSrv={License Server Name}
set CTX_Zone={Zone Name or Leave Blank}
set CTX_XML=8080
if /i “%database_type%” == “SQL” (
echo [ODBC]>%SQL_DSN_File%
echo DRIVER=SQL Server>>%SQL_DSN_File%
echo UID=%SQL_ODBC_UserName%>>%SQL_DSN_File%
echo DATABASE=%SQL_Database%>>%SQL_DSN_File%
echo APP=Citrix IMA>>%SQL_DSN_File%
echo SERVER=%SQL_Server%>>%SQL_DSN_File%
)
set install_type=%database_type%_%farm_selection%
set switches=/qb- REBOOT=”ReallySuppress”
if /i “%install_type%” == “SQL_Create” (
set switches=!switches! CTX_MF_FARM_SELECTION=”Create”
set switches=!switches! CTX_MF_NEW_FARM_NAME=”%CTX_FarmName%”
set switches=!switches! CTX_MF_CREATE_FARM_DB_CHOICE=”ThirdParty”
set switches=!switches! CTX_MF_SILENT_DSNFILE=”%SQL_DSN_File:”=%”
set switches=!switches! CTX_MF_ODBC_USER_NAME=”%SQL_ODBC_UserName%”
set switches=!switches! CTX_MF_ODBC_PASSWORD=”%SQL_ODBC_UserPwd%”
set switches=!switches! CTX_MF_LIC_CHOICE_FOR_CREATE=”Point”
set switches=!switches! CTX_MF_LICENSE_SERVER_NAME=”%CTX_LicenseSrv%”
set switches=!switches! CTX_MF_USER_NAME=”%CTX_UserName%”
set switches=!switches! CTX_MF_DOMAIN_NAME=”%CTX_DomainName%”
)
if /i “%install_type%” == “SQL_Join” (
set switches=!switches! CTX_MF_FARM_SELECTION=”Join”
set switches=!switches! CTX_MF_JOIN_FARM_DB_CHOICE=”Direct”
set switches=!switches! CTX_MF_SILENT_DSNFILE=”%SQL_DSN_File:”=%”
set switches=!switches! CTX_MF_ODBC_USER_NAME=”%SQL_ODBC_UserName%”
set switches=!switches! CTX_MF_ODBC_PASSWORD=”%SQL_ODBC_UserPwd%”
set switches=!switches! CTX_MF_LIC_CHOICE_FOR_JOIN_OR_UPGRADE=”UseFarmSettings”
)
if /i “%install_type%” == “Access_Create” (
set switches=!switches! CTX_MF_FARM_SELECTION=”Create”
set switches=!switches! CTX_MF_NEW_FARM_NAME=”%CTX_FarmName%”
set switches=!switches! CTX_MF_CREATE_FARM_DB_CHOICE=”Local”
set switches=!switches! CTX_MF_LOCAL_DATABASE=”Access”
set switches=!switches! CTX_MF_USER_NAME=”%CTX_UserName%”
set switches=!switches! CTX_MF_DOMAIN_NAME=”%CTX_DomainName%”
set switches=!switches! CTX_MF_LIC_CHOICE_FOR_CREATE=”Point”
set switches=!switches! CTX_MF_LICENSE_SERVER_NAME=”%CTX_LicenseSrv%”
)
if /i “%install_type%” == “Access_Join” (
set switches=!switches! CTX_MF_FARM_SELECTION=”Join”
set switches=!switches! CTX_MF_JOIN_FARM_DB_CHOICE=”Indirect”
set switches=!switches! CTX_MF_INDIRECT_JOIN_USER_NAME=”%CTX_UserName%”
set switches=!switches! CTX_INDIRECT_JOIN_PASSWORD=”%CTX_UserPwd%”
set switches=!switches! CTX_MF_INDIRECT_JOIN_DOMAIN_NAME=”%CTX_DomainName%”
set switches=!switches! CTX_MF_JOIN_FARM_SERVER_NAME=”%CTX_Join_Server%”
set switches=!switches! CTX_MF_JOIN_FARM_SERVER_PORT=”2512″
set switches=!switches! CTX_MF_LIC_CHOICE_FOR_JOIN_OR_UPGRADE=”UseFarmSettings”
)
if /i “%install_type%” == “SQLExpress_Create” (
set switches=!switches! CTX_MF_FARM_SELECTION=”Create”
set switches=!switches! CTX_MF_NEW_FARM_NAME=”%CTX_FarmName%”
set switches=!switches! CTX_MF_CREATE_FARM_DB_CHOICE=”Local”
set switches=!switches! CTX_MF_LOCAL_DATABASE=”SQL”
set switches=!switches! CTX_MF_USER_NAME=”%CTX_UserName%”
set switches=!switches! CTX_MF_DOMAIN_NAME=”%CTX_DomainName%”
set switches=!switches! CTX_MF_SQLExpress_INSTANCE_NAME=”CITRIX_METAFRAME”
set switches=!switches! CTX_MF_LIC_CHOICE_FOR_CREATE=”Point”
set switches=!switches! CTX_MF_LICENSE_SERVER_NAME=”%CTX_LicenseSrv%”
)
if /i “%install_type%” == “SQLExpress_Join” (
set switches=!switches! CTX_MF_FARM_SELECTION=”Join”
set switches=!switches! CTX_MF_JOIN_FARM_DB_CHOICE=”Indirect”
set switches=!switches! CTX_MF_INDIRECT_JOIN_USER_NAME=”%CTX_UserName%”
set switches=!switches! CTX_INDIRECT_JOIN_PASSWORD=”%CTX_UserPwd%”
set switches=!switches! CTX_MF_INDIRECT_JOIN_DOMAIN_NAME=”%CTX_DomainName%”
set switches=!switches! CTX_MF_JOIN_FARM_SERVER_NAME=”%CTX_Join_Server%”
set switches=!switches! CTX_MF_JOIN_FARM_SERVER_PORT=”2512″
set switches=!switches! CTX_MF_LIC_CHOICE_FOR_JOIN_OR_UPGRADE=”UseFarmSettings”
)
REM These are switches that apply to all install types
set switches=%switches% CTX_USE_EXISTING_JRE=”Yes”
set switches=%switches% CTX_MF_ZONE_NAME=”%CTX_Zone%”
set switches=%switches% CTX_MF_ADD_ANON_USERS=”No”
set switches=%switches% CTX_MF_CREATE_REMOTE_DESKTOP_USERS=”CopyUsers”
set switches=%switches% CTX_MF_SHADOWING_CHOICE=”Yes”
set switches=%switches% CTX_MF_SHADOW_PROHIBIT_REMOTE_ICA=”No”
set switches=%switches% CTX_MF_SHADOW_PROHIBIT_NO_NOTIFICATION=”No”
set switches=%switches% CTX_MF_SHADOW_PROHIBIT_NO_LOGGING=”No”
set switches=%switches% CTX_MF_XML_CHOICE=”Separate”
set switches=%switches% CTX_MF_XML_PORT_NUMBER=”%CTX_XML%”
set switches=%switches% CTX_MF_SERVER_TYPE=”%CTX_Edition:~0,1%”
set switches=%switches% CTX_MF_ENABLE_VIRTUAL_SCRIPTS=”No”
set switches=%switches% CTX_MF_ADD_LOCAL_ADMIN=”No”
set switches=%switches% CTX_RDP_DISABLE_PROMPT_FOR_PASSWORD=”Yes”
set switches=%switches% CTX_MF_LICENSE_SERVER_PORT=”27000″
set switches=%switches% CTX_MF_LICENSE_SERVER_PORT_DEFAULT=”1″
set switches=%switches% CTX_IGNORE_MCM=”No”
set switches=%switches% CTX_REMOVE_WI_TURNKEY=”No”
set switches=%switches% CTX_MF_ONLY_LAUNCH_PUBLISHED_APPS=”Yes”
set switches=%switches% INSTALLDIR=”%ProgramFiles%\Citrix”
set switches=%switches% CTX_MF_REBOOT=”No”
set switches=%switches% CTX_IMA_PROTECTION_ENABLE=”0″
REM Additional Switches found in CPS 4.5 that have not been implemented in
:: this script as of yet.
:: CTX_PROTECT_KEY_TYPE=
:: CTX_PROTECT_KEY_PATH=
:: CTX_PROTECT_NEW_KEY_PATH=
:: CTX_SERV_PRINTER_LOGON=
:: CTX_SERV_MALOO_LOGON=
REM Pass-Through Client Properties
:: Administrator’s Guide Pages 381-382
set switches=%switches% CLIENT_NAME=”%computername%”
set switches=%switches% CLIENT_UPGRADE=”Yes”
set switches=%switches% CLIENT_INSTALLDIR=”%ProgramFiles%\Citrix\ICA Client”
set switches=%switches% ENABLE_DYNAMIC_CLIENT_NAME=”Yes”
set switches=%switches% PROGRAM_FOLDER_NAME=”Citrix\MetaFrame Access Clients”
set switches=%switches% SERVER_LOCATION=”%CTX_PNAgentSrv%”
set switches=%switches% ENABLE_SSON=”Yes”
REM DEFAULT_NDSCONTEXT=
REM Presentation Server Modules
:: Variables created using the placeholders defined in the Administrator’s Guide
:: Pages 375-376
set @Core=MetaFrame_XP,CTX_MF_MetaFrame_Core,CTX_MF_IMA_Core,
set @Core=%@Core%CTX_MF_ICA_Shell_Editor,CTX_SMA,CTX_MF_CTXCPU,CTX_MF_CTXSFO
set @PN=PN,PN_ENGINE
set @PNAgent=PN_AGENT,PN_ENGINE
set @CMC=CTX_MF_CMC,CTX_MF_IM_Plugin,CTX_MF_RM_Plugin
set @IM=CTX_MF_IM,CTX_MF_IM_Service
set @IMPackager=CTX_MF_IM_Packager
set @RM=CTX_MF_RM
set @CSS=CSS_SS,CSS_CLIENT
set @Enterprise=WMI,CTX_MF_LM,CTX_MF_NM,CTX_MF_ASCII
set @Advanced=CTX_MF_LM
Set CTX_Modules=%CTX_Modules: =%
set CTX_Modules_Vars=%@Core%,
for %%i in (%CTX_Modules%) do (
if /i “%%i” == “PN” set CTX_Modules_Vars=!CTX_Modules_Vars!%@PN%,
if /i “%%i” == “PNAgent” set CTX_Modules_Vars=!CTX_Modules_Vars!%@PNAgent%,
if /i “%%i” == “CMC” set CTX_Modules_Vars=!CTX_Modules_Vars!%@CMC%,
if /i “%%i” == “IM” set CTX_Modules_Vars=!CTX_Modules_Vars!%@IM%,
if /i “%%i” == “IMPackager” set CTX_Modules_Vars=!CTX_Modules_Vars!%@IMPackager%,
if /i “%%i” == “RM” set CTX_Modules_Vars=!CTX_Modules_Vars!%@RM%,
if /i “%%i” == “CSS” set CTX_Modules_Vars=!CTX_Modules_Vars!%@CSS%,
)
if /i “%CTX_Edition:~0,1%” == “E” set CTX_Modules_Vars=%CTX_Modules_Vars%%@Enterprise%
if /i “%CTX_Edition:~0,1%” == “A” set CTX_Modules_Vars=%CTX_Modules_Vars%%@Advanced%
set switches=%switches% CTX_ADDLOCAL=”%CTX_Modules_Vars%”
@echo on
pushd %AppSourcePath%\Citrix Presentation Server
start /wait msiexec /i “mps.msi” /l* %logfile% %switches% ¼br> popd
if /i “%disable_anon:~0,1%” == “y” (
net user Anon000 /active:no
net user Anon001 /active:no
net user Anon002 /active:no
net user Anon003 /active:no
net user Anon004 /active:no
net user Anon005 /active:no
net user Anon006 /active:no
net user Anon007 /active:no
net user Anon008 /active:no
net user Anon009 /active:no
net user Anon010 /active:no
net user Anon011 /active:no
net user Anon012 /active:no
net user Anon013 /active:no
net user Anon014 /active:no
)
:end
endlocal