Citrix Provisioning Services Assessment Script Update Version 1.10
Back in July, I was helping a customer of my new employer, Choice Solutions, with some issues with their Provisioning Services (PVS) implementation. In order to resolve their issues, we had to implement several registry changes on their PVS servers. They had multiple PVS farms in multiple locations spread across the United States. I actually started to think about the next consultant who would have to come in and do any future work in this environment. I also thought about what if I had to come into a similar environment. How would any consultant know what registry keys had been added or changed? Would the same keys exist across all the PVS servers? Would they all have the same settings? Citrix Insight Services is absolutely no help for finding PVS issues or discrepancies (in my opinion). I decided to update the PVS Assessment script to help in this situation.
First I would like to thank Choice Solutions for allowing me to spend some company time in getting this script updated and out to the community. Second, I would like to thank a very dedicated tester, Andrew Williamson @ Fujitsu Services, for helping with this update.
One of my original desires for this script was to make it work for PVS versions 5.x to 7.x and with PowerShell versions 2.0 through 5.x. Andrew put in a LOT of time and effort helping me resolve all the issues with getting the script to work across all PVS and PowerShell versions.
#Version 1.10 8-Sep-2016
- Added Appendix K for 33 Misc Registry Keys
- Miscellaneous Registry Items That May or May Not Exist on Servers
- These items may or may not be needed
- This Appendix is strictly for server comparison only
- Added Break statements to most of the Switch statements
- Added checking the NIC’s “Allow the computer to turn off this device to save power” setting
- Added function Get-RegKeyToObject contributed by Andrew Williamson @ Fujitsu Services
- Added testing for $Null –eq $DiskLocators. PoSH V2 did not like that I forgot to do that
- Added to the console and report, lines when nothing was found for various items being checked
- Cleaned up duplicate IP addresses appearing in Appendix J
- Changed NICIPAddressess from array to hashtable
- Reset the StreamingIPAddresses array between servers
- Moved the initialization of arrays to the top of the script instead of inside a function
- PoSH V2 did not like the “4>$Null”. I test for V2 now and use “2>$Null”
- Script now works properly with PoSH V2 and PVS 5.x.x
- Since PoSH V2 does not work with the way I forced Verbose on, I changed all the Write-Verbose statements to Write-Host
- You should not be able to tell any difference
- With the help and patience of Andrew Williamson and MBS, the script should now work with PVS servers that have multiple NICs
The 33 registry keys that are now checked:
Registry Key Registry Value ================================================================================================= HKLM:\SOFTWARE\Citrix\ProvisioningServices AutoUpdateUserCache HKLM:\SOFTWARE\Citrix\ProvisioningServices LoggingLevel HKLM:\SOFTWARE\Citrix\ProvisioningServices SkipBootMenu HKLM:\SOFTWARE\Citrix\ProvisioningServices UseManagementIpInCatalog HKLM:\SOFTWARE\Citrix\ProvisioningServices UseTemplateBootOrder HKLM:\SOFTWARE\Citrix\ProvisioningServices\IPC IPv4Address HKLM:\SOFTWARE\Citrix\ProvisioningServices\IPC PortBase HKLM:\SOFTWARE\Citrix\ProvisioningServices\IPC PortCount HKLM:\SOFTWARE\Citrix\ProvisioningServices\Manager GeneralInetAddr HKLM:\SOFTWARE\Citrix\ProvisioningServices\MgmtDaemon IPCTraceFile HKLM:\SOFTWARE\Citrix\ProvisioningServices\MgmtDaemon IPCTraceState HKLM:\SOFTWARE\Citrix\ProvisioningServices\MgmtDaemon PortOffset HKLM:\SOFTWARE\Citrix\ProvisioningServices\Notifier IPCTraceFile HKLM:\SOFTWARE\Citrix\ProvisioningServices\Notifier IPCTraceState HKLM:\SOFTWARE\Citrix\ProvisioningServices\Notifier PortOffset HKLM:\SOFTWARE\Citrix\ProvisioningServices\SoapServer PortOffset HKLM:\SOFTWARE\Citrix\ProvisioningServices\StreamProcess IPCTraceFile HKLM:\SOFTWARE\Citrix\ProvisioningServices\StreamProcess IPCTraceState HKLM:\SOFTWARE\Citrix\ProvisioningServices\StreamProcess PortOffset HKLM:\SOFTWARE\Citrix\ProvisioningServices\StreamProcess SkipBootMenu HKLM:\SOFTWARE\Citrix\ProvisioningServices\StreamProcess SkipRIMS HKLM:\SOFTWARE\Citrix\ProvisioningServices\StreamProcess SkipRIMSforPrivate HKLM:\SYSTEM\CurrentControlSet\Services\BNIStack\Parameters SocketOpenRetryIntervalMS HKLM:\SYSTEM\CurrentControlSet\Services\BNIStack\Parameters SocketOpenRetryLimit HKLM:\SYSTEM\CurrentControlSet\Services\BNIStack\Parameters WcHDNoIntermediateBuffering HKLM:\SYSTEM\CurrentControlSet\services\BNIStack\Parameters WcRamConfiguration HKLM:\SYSTEM\CurrentControlSet\Services\BNIStack\Parameters WcWarningIncrement HKLM:\SYSTEM\CurrentControlSet\Services\BNIStack\Parameters WcWarningPercent HKLM:\SYSTEM\CurrentControlSet\Services\BNNS\Parameters EnableOffload HKLM:\SYSTEM\Currentcontrolset\services\BNTFTP\Parameters InitTimeoutSec HKLM:\SYSTEM\Currentcontrolset\services\BNTFTP\Parameters MaxBindRetry HKLM:\SYSTEM\Currentcontrolset\services\PVSTSB\Parameters InitTimeoutSec HKLM:\SYSTEM\Currentcontrolset\services\PVSTSB\Parameters MaxBindRetry
If anyone from the Citrix Insight Services team is reading this, my offer is still good. I have been offering to help you make your PVS diagnostics and health check actually work and be useful for a very long time. I cannot believe you are turning down free labor!
You can always find the most current script by going to https://carlwebster.com/where-to-get-copies-of-the-documentation-scripts/
- Added Appendix K for 33 Misc Registry Keys