Windows Server 2016 Optimisation Script

Windows Server 2016 Optimization Script.

Tested on: Windows Server 2016 build 14393.0.

Description: This script disables services, removes  scheduled tasks and imports registry values to optimise system performance on Windows Server 2016 running in a Citrix SBC environment.

Warning: This script makes changes to the system registry and other configurational change  and as such a full backup of the machine or # snapshot if running in a virtual environment is strongly recommended. Carry out full testing before introducing image to production.

Note: You should review ALL optimisations this script makes and determine if they fit in to your environment. Not every optimisation suits all environments. For example, this script disables key Hyper-V services for use in non-Hyper-V environments. If you use Hyper-V, you must enable these services.

Instructions: To avoid failure, run PowerShell as an administrator before running this script and make sure you are using the 64-bit version of PowerShell.

Download (click below):

Windows Server 2016 Optimisation Script (26340 downloads)

Any problems with the script or if you want to make your own improvement suggestions then comment below.

Open the script using a text editor or PowerShell ISE to see what exactly the script does.


628 Comments

  • Steve Elgan

    April 14, 2017

    Great script. You may want to consider setting power to high performance and also disabling Server Manager task.

    Reply
    • George Spiers

      April 15, 2017

      Thanks. I did consider including disabling Server Manager on startup at the time however that is an HKCU key. I’ve included High Performance.

      Reply
  • RICHARD HUGHES-CHEN

    May 18, 2017

    Was looking for some 2016 optimizations to test in my POC.

    If using Citrix App Layering would it be best to run in the OSLayer or as another layer?

    There seems to be a similar script configured with Citrix App Layering in the OS machine tools scripts folder C:\windows\setup\scripts\Optimize.html

    What is the best thing to do?

    Reply
    • George Spiers

      May 18, 2017

      Run optimisations in the OS Layer. The script I provide is specifically for Windows Server 2016 and does contain a tonne of optimisations that have been checked and evaluated thoroughly. The Optimisation builder you mention does contain probably the same optimisations that my script has but not as many.

      Reply
      • Paul

        July 5, 2019

        Nice script. Can I also get the excel spreadsheet. Thanks in advance.

        Reply
        • George Spiers

          July 9, 2019

          Sent.

          Reply
          • James

            August 16, 2019

            George, have you posted the excel workbook for others, or is it available by request? If by request only at this time, can you also send me a copy of it? Thanks mate.

          • George Spiers

            August 19, 2019

            Sent.

          • Ruth

            November 6, 2019

            Please send med the XL sheet,.. and thanks!

          • George Spiers

            December 1, 2019

            Sent.

          • steve johnson

            December 1, 2019

            Gorge what email did you send it too haven’t received anything except the response from you sent.

          • George Spiers

            December 3, 2019

            You should hopefulyl have it now

          • David

            February 18, 2020

            Please send med the XL sheet,.. and thanks!

          • George Spiers

            May 10, 2020

            Sent.

          • Ivan Conde

            February 20, 2020

            May I have the Excel?

            Thank you very much for your efforts!

          • George Spiers

            May 10, 2020

            Sent.

          • Brian W

            March 16, 2020

            I’d greatly appreciate an Excel listing as well. Thank you for your efforts!

          • George Spiers

            May 19, 2020

            Sent.

          • Rogerio Araujo

            April 15, 2021

            Hi George,

            Thanks for this great script. Could you send me the excel sheet?

          • Asif

            November 23, 2022

            Good Script. Can u pls share the excel sheet along with link to deploy MCS Master image.

      • Alberto

        December 27, 2019

        Does the Excel file contain any further documentation about the script? Could you send me a copy?

        We use a WSUS server to deliver updates to our RDSH collection. I think your script disable some services required to fetch the updates. I would like to adapt the script before implementing it.

        Thank you very much!

        Reply
        • Alberto Pérez Pastor

          January 4, 2020

          Hi George,

          Could you send me the excel file?

          Thank you!

          Reply
        • George Spiers

          February 17, 2020

          Sent. Sorry for the delay.

          Reply
  • eltjo

    May 19, 2017

    Hello George,

    how does your script compare the Base Image Script Framework (BIS-F) that Login has released?

    Regard,

    Eltjo

    Reply
  • George Spiers

    May 19, 2017

    BIS-F can run defragmentations, clean out profiles, rearm Office, run Antivirus etc. and many other preparation type tasks. My script is purely disabling Services, disabling Scheduled Tasks, removing Active Setup, decreasing Event Logs size and much more to get the best performance out of your image.

    Reply
    • Matthias Schlimm

      June 14, 2017

      You can use this Optimization Script in a combination with BIS-F, copy it to the custom preparation folder in BIS-F and it would be automatically executed if you BIS-F starts.

      Reply
    • George Spiers

      May 31, 2017

      Thanks – I had a review. I’m going to include 8 more services to be disabled. The document also says to disable some services but I’m not going to disable via the script. Examples are Print Spooler (required to see printers so not wise to disable). The document also doesn’t specify to disable services such as Remote Access Connection Manager. My script disables it since there is no need to manage dial-up and VPN connections. Also the script disables superfetch (service that improves performance over time) – not useful for stateless machines.

      Reply
      • Steve Elgan

        May 31, 2017

        Cool. What are your thoughts on configuring the script in such a way that you can pass a variable for a Citrix config vs. just a general 2016 server config? Right now I just comment out lines that are specific to Citrix workloads when I want to use it on a general 2016 server. I’m still learning PoSh but i’d be willing to work up a PoC for you to review.

        Reply
        • George Spiers

          May 31, 2017

          The script is focused on SBC regardless of whether the image is deployed via Citrix, RDS, VMware. Everyone’s taste will be different in terms of what to keep and remove. That is why I think it’s easier to suggest that each person reviews what this script does and then remove or comment out lines to their liking.

          Reply
      • RICHARD HUGHES-CHEN

        June 1, 2017

        Hi George, have you included the additional services to be disabled in the script? Thanks

        Reply
        • George Spiers

          June 1, 2017

          Hey. Yes they are included now.

          Reply
  • RICHARD HUGHES-CHEN

    June 1, 2017

    just noticed the comments around Hyper-V which is what I am using.

    # in non-Hyper-V environments. If you use #

    # Hyper-V, you must enable these services.

    Reply
    • George Spiers

      June 1, 2017

      That’s right. Edit the script and remove the lines relating to disabling Hyper-V services.

      Reply
  • Jochen

    June 23, 2017

    Hello,
    I used this script in my test environment and it is great, Much more responsive Xenapp Server.
    The only thing I have now is that during logon I am stuck for about 20-30 seconds on the following message: please wait for user profile service.
    After this everything is lightning fast.
    Any idea why i have to wait for the user profile service? (We use roaming profiles)

    Reply
    • George Spiers

      June 23, 2017

      Thanks for the feedback. Have you tried taking roaming profiles out of the equation to see if it still occurs? That would be my first action, pick a machine, put it in maintenance mode, disable roaming profiles and test.

      Reply
  • Frank

    July 10, 2017

    hi george
    i take also bis-f script from matthias schlimm, and now there is the CTXOE supported. so your script is awesome, but did you test if CTXOE make the same now, or did you make some additional special things, so that both scripts will be good for optimization?
    regards
    frank

    Reply
    • George Spiers

      July 10, 2017

      The Citrix Optimizer tool has 71 different types of optimisations for Windows Server 2016. The script here has 170+ different optimisations. There are about 5-7 different unique optmisations in Citrix Optimiser with the majority of those left out of my script intentially. So my script has 90% of optimisations that are included in the Citrix Optimizer tool but around 80+ additionals. For example Citrix Optimizer does not disable Xbox related Scheduled Tasks whereas my script does. You are safe to use both, which I highly recommend.

      Reply
  • Steve Elgan

    August 1, 2017

    George,

    Have you considered adding any of the optimizations mentioned in Rory’s blog post here? http://rorymon.com/blog/?p=3951

    For example the other offload options. Or what about disabling power management on the NIC card?

    Reply
    • George Spiers

      August 1, 2017

      No to disabling power management on NIC as I’ve not encountered that setting interfering with VDAs before and the script sets power to High Performance anyway. The script does disable TCP Large Send Offload but no other of the offload settings. I’ll have a look in to them to decide if they should go in the script. Thanks

      Reply
  • Jonathan Aumont

    August 23, 2017

    HI,
    this is an awsome script. I was wondering if you have a word or excel document that list all the features that you do modify in your script?

    Reply
    • George Spiers

      August 23, 2017

      Sure, I have your email so I’ll send the Excel document across.

      Reply
      • Jonathan Aumont

        August 24, 2017

        thank’s for this. I’ll wait for it.

        Reply
      • Fernando

        April 24, 2019

        George, would it be possible to get a copy of that spreadsheet also?

        Reply
        • George Spiers

          April 24, 2019

          Sent.

          Reply
          • Ralph Howland

            May 21, 2019

            Can I get that spreadsheet as well…

          • George Spiers

            May 27, 2019

            Sent.

          • ankit

            July 8, 2020

            Hi george,Can you send me the excel workbook too.

      • Jorge

        October 9, 2019

        Hi George, would it be possible to get a copy of that spreadsheet and word file ?

        Reply
        • George Spiers

          October 15, 2019

          Sent.

          Reply
  • Vincent Caberas

    September 2, 2017

    Hi george,

    Thank you for your very good Word. I m interesting too, about the Excel file with the optimization. Thank you

    Reply
    • George Spiers

      September 3, 2017

      No problem, I’ll send it to you soon.

      Reply
  • Mikael Laine

    September 7, 2017

    Great work George. I’ll have a rundown in our lab environment and provide some feedback. Would it be ok to drop me the excel sheet?

    Reply
    • George Spiers

      September 8, 2017

      Thanks and sure – I’ll get that across to you later today.

      Reply
      • Chet

        May 16, 2019

        Hi George,
        Would you mind sending me the doc as well?
        By the way, we do not use citric or any other solution other than straight windows RDP environment. Any suggestions for server 2012 R2?

        Reply
        • George Spiers

          May 16, 2019

          Sent. I have a specific WS2012R2 script: https://jgspiers.com/windows-server-2012-r2-optimisation-script/

          Reply
          • Chet

            June 26, 2019

            hi George,
            I have not received the script.. Wuold you resend it?

          • George Spiers

            June 27, 2019

            Sent. Please check again.

          • Chet

            June 26, 2019

            hi George,
            Sorry I meant the excel doc. Would you resend it please?

          • Roland

            November 8, 2019

            I would like to have a custom script to optimize my clients server 2012 and 2016 and 2019. They all use Hyper V and have share drives as well.

            Thanks in advance

          • George Spiers

            December 3, 2019

            I have a 2012 R2 script which you can find on the blog (use Search box). Server 2019 still to come.

  • jonathan Aumont

    September 8, 2017

    Hi George,
    One quick question for you. Is there any part in your script that might affect the Microsoft supportability of the Windows 2016 OS?

    Regards.

    Reply
    • George Spiers

      September 8, 2017

      I can’t exactly comment for sure on Microsoft’s support terms and conditions. I can’t imagine they would deny support because you have disabled a Scheduled Task or Service, they would likely just ask you to enable it. If system settings are configurable then they are there to be changed and modified. The script itself does not perform anything that is irreversible.

      Reply
      • jonathan Aumont

        September 8, 2017

        Thanks for your quick reply. I agree with you on this. I was juste checking if you hade face a situation that it could break support. Thank again. really appreciated.

        Reply
        • George Spiers

          September 8, 2017

          No problem at all! 🙂

          Reply
  • Reinhard

    September 13, 2017

    Hi George,

    great script, thanks for sharing! Could you please also send me the Excel?

    Reply
    • George Spiers

      September 13, 2017

      Thanks. Yes I have just sent it.

      Reply
  • Owen Reynolds

    September 15, 2017

    Amazing!
    I ran this on a XD 7.15 / Win 2016 in my home lab tonight, and noted a huge performance in logon and over-all UI latency!

    Great work , George!

    One question – would this script be appropriate for non Citrix Windows Server 2016 installs? Looking over the various changes, they seem appropriate for Win 2016 as it’s used in other roles: File servers, active directory controllers, store front , SQL , etc.

    Owen

    Reply
    • George Spiers

      September 15, 2017

      Cool, it’s nice to hear good results! In regards to running it on other servers, I guess it is up to you. Personally I do not run optimisations on non Citrix servers, but it would not be a bad practice at all.

      Reply
      • Owen Reynolds

        September 15, 2017

        I’ll give it a shot on my other servers, thx again.
        Wold you be able to send me the xls that contains the items changed by this script?

        Reply
        • George Spiers

          September 15, 2017

          Have sent it.

          Reply
  • Gareth

    September 18, 2017

    George this is amazing work! Thank you for sharing, you’ve saved me hours of work. Could I push my luck a little further and trouble you for a copy of your excel document please.

    Reply
    • George Spiers

      September 18, 2017

      Thanks – I will send you the document shortly.

      Reply
  • Michael

    September 28, 2017

    George – great job! Love the script! Thank you so much for sharing! Could I also have a copy of the Excel spreadsheet? Thanks!

    Reply
    • George Spiers

      September 28, 2017

      Thanks. I have sent it across to you.

      Reply
  • Zach

    September 29, 2017

    Will this also disable/remove Windows Ink Workspaces?

    Reply
    • George Spiers

      September 29, 2017

      No I can confirm it doesn’t.

      Reply
  • Alexander Schwarz

    October 5, 2017

    Hello George
    I´m very happy that I found this great script!
    Thank´s a lot for sharing 🙂
    Can you also send me the excel sheet?

    Reply
    • George Spiers

      October 5, 2017

      Thanks. Glad you like it. I’ve just sent the sheet across.

      Reply
  • Tommy

    October 8, 2017

    Thansk George

    Will this work on Windows 2016 RDP server ?

    Regards
    /Tommy

    Reply
    • Tommy

      October 8, 2017

      Hi Goerge

      Actual my Questions was is it possible to run this script on Windows 2018 RDP server
      that running in vmware as guest?

      /Tommy

      Reply
      • George Spiers

        October 8, 2017

        Hi Tommy, yes this will work fine on RDSH.

        Reply
  • Tommy

    October 9, 2017

    Great George and Thanks!

    Sorry for my bad English 🙂

    Regards
    Tommy

    Reply
  • George Spiers

    October 9, 2017

    Your English is great actually! 🙂

    Reply
  • Aaron

    October 10, 2017

    FYI
    Your ClearPageFileAtShutdown setting isn’t correct, its re-running the NtfsDisableLastAccessUpdate command.

    Reply
    • George Spiers

      October 10, 2017

      Thanks for pointing that out. I’ve corrected it.

      Reply
  • Srinivas

    November 7, 2017

    Hi George,

    can this script run on Win2k12 R2.

    Thanks,
    Sri

    Reply
    • George Spiers

      November 7, 2017

      No I do not advise this as the script was created for WS2016 and may contains Services, Scheduled Tasks and so on that are not available on WS2012 R2.

      Reply
      • Jos van Rijn

        December 20, 2017

        Your script runs just fine on 2012 R2. I’m seeing the same performance boost as in 2016. Services and tasks that aren’t available in 2012 R2 get skipped, so no problem there.

        Thanks so much for sharing this with us.

        Reply
        • George Spiers

          December 21, 2017

          Brilliant thanks for sharing that feedback with us.

          Reply
  • Brian Mooney

    November 10, 2017

    George,
    How does your script work compared to the Citrix latest Citrix optimization tool? Have you compared the two?

    Reply
    • George Spiers

      November 10, 2017

      I haven’t checked recently but last time I did check the script had over 80+ additional customisations.

      Reply
  • Steve Turnbull

    November 23, 2017

    Hi George, thanks for all your hard work on this script. Please could you send over the excel sheet too for reference. Many thanks!

    Reply
    • George Spiers

      November 24, 2017

      Have sent it.

      Reply
  • Tom

    November 30, 2017

    Great work, George. Can you please send me the Excel sheet? Thank you.

    Reply
    • George Spiers

      November 30, 2017

      Sent!

      Reply
  • Satya

    December 15, 2017

    George , Please send me the excel sheet. Thank you.

    Reply
  • Satya

    December 15, 2017

    Great work, George. Can you please send me the Excel sheet? Thank you.

    Reply
    • George Spiers

      December 15, 2017

      Hi, yes I have just sent it.

      Reply
  • Pingback: Image Optimization Tools Comparison Matrix - Dennis Span

  • Rene

    December 25, 2017

    Hi this helped me alot can you also send me the excel sheet please ?

    Reply
    • George Spiers

      December 28, 2017

      No problem I have sent it.

      Reply
      • liam

        December 18, 2019

        Can i get a copy of the excel file too please?

        Reply
        • George Spiers

          December 29, 2019

          Sent.

          Reply
  • SRasschaert

    December 29, 2017

    Hi George, have you considered creating a VMware OSOT template? (https://labs.vmware.com/flings/vmware-os-optimization-tool)
    Or a Citrix Optimizer template (https://support.citrix.com/article/CTX224676)

    Reply
    • George Spiers

      December 29, 2017

      Hi, I have had plans to create a Citrix Optimizer Template, just have not got round to it yet 🙂

      Reply
  • Ivan

    December 29, 2017

    Hi, can you send me a word or excel, with changes in script?

    Reply
    • George Spiers

      December 29, 2017

      Sent.

      Reply
  • Fadi

    January 2, 2018

    Hello George,

    I would like to test the script but wanted to check the excel/word sheet so I can review the services/task that are configured.

    Thank you!

    Reply
    • George Spiers

      January 2, 2018

      No problem I have sent it.

      Reply
  • Aasim

    January 6, 2018

    Hi, I would like to test the script but wanted to check the excel/word sheet so I can review the services/task that are configured.

    Thank you!

    Reply
    • George Spiers

      January 8, 2018

      Sent.

      Reply
  • Njordur

    January 10, 2018

    Excellent script, sped up my server a lot.

    I’m also interested in the excel/word sheet… Do you mind sending that to me as well

    /Thanks for your hard tuning 🙂

    Reply
    • George Spiers

      January 10, 2018

      No problem, thanks. I have sent the spreadsheet.

      Reply
  • Chassidy

    January 10, 2018

    I’m also interested in the excel/word sheet. Thanks for suck an awesome script!

    Reply
    • George Spiers

      January 10, 2018

      No problem I have sent it.

      Reply
  • Daniel Gifford

    January 11, 2018

    Looks like a great script for Server 2016. Been encountering lots of slowdowns on Server 2016 especially in RDS/Citrix environments. Can you send me the Excel sheet as well? Thanks!

    Reply
    • George Spiers

      January 11, 2018

      Yes have sent it.

      Reply
  • mart

    January 18, 2018

    I’m also interested in the excel/word sheet. Thanks for suck an great script!

    Reply
    • George Spiers

      January 18, 2018

      Sent!

      Reply
  • Anonymous

    January 18, 2018

    Hi George, great script.

    I have applied these optimations to 2x XenApp 7.15 servers running on VMWare. When I rebooted them I keep getting a warning on my network card (no internet). It appears as though I can still access the internet and local network OK. Outlook won’t connect though, to my internal Exchange server. I have tried turning off the firewall, wicksock reset on the NIC, removing and readding the NIC. No luck. Anything else you can think of from your script that might be causing this? It was working before I applied the script.

    Reply
    • George Spiers

      January 18, 2018

      Is your OS up to date? Are you using a VMXNET3 NIC? I’ve tested the script against Windows Server 2016 with December patches on VMware and I don’t see the same.

      Reply
    • Anonymous

      February 14, 2018

      I have this issue on several occasions using this script.

      Windows does indeed check a Microsoft site for connectivity, using the Network Connectivity Status Indicator site. There are a few variations of the connection checking process:

      NCSI performs a DNS lookup on http://www.msftncsi.com, then requests http://www.msftncsi.com/ncsi.txt. This file is a plain-text file and contains only the text Microsoft NCSI.
      NCSI sends a DNS lookup request for dns.msftncsi.com. This DNS address should resolve to 131.107.255.255. If the address does not match, then it is assumed that the internet connection is not functioning correctly.

      This happens.

      The only workaround for me was:

      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet

      Under the Internet key, double-click EnableActiveProbing, and then in Value data, type: 0.The default for this value is 1. Setting the value to 0 prevents NCSI from connecting to a site on the Internet during checks for connectivity.

      Reply
  • Brad

    January 22, 2018

    Hello
    Great Script, can i get a copy of the excel document.

    Reply
    • George Spiers

      January 22, 2018

      Sent.

      Reply
  • Mayur

    January 23, 2018

    Please send me a link and or the excel doc.
    Many thanks!

    Reply
    • George Spiers

      January 23, 2018

      Sent!

      Reply
      • Mayur

        January 24, 2018

        I received it, thanks!
        Had a question on the disablement of Active Setup for speeding up logon times. I have used it for Win7 VDI with local profiles and it does make a big difference. I had learned that from Unidesk a while back. However, I have run into a small problem with XenApp 7.12 WS2012R2. For some strange reason, the published Outlook 2013 (transform) first time MAPI profile is not being created automatically and I am curious to find out if having disabled Active Setup might be the cause of this issue because if I understand it right it is required for roaming profiles.

        Reply
        • George Spiers

          January 24, 2018

          What happens the first time, is autodiscover becoming stuck? The second time it works? I’ve not experienced the same issue, I’m using Outlook 2016 – have not used 2013.
          Thanks

          Reply
          • Anonymous

            January 25, 2018

            Yes, in my case it consistently keeps failing and throws up a ambiguous pop up message:

            “Cannot start Microsoft Outlook. Cannot open the Outlook window. The set of folders cannot be opened. Your profile is not configured.”

            At first I thought the issue was related an AppLocking GPO settings but that didn’t solve the issue.

            I am contemplating whether to restore the Active setup registry settings. I deleted both the 32bit and 64bit settings and I did that on the VDA template image.

          • George Spiers

            January 25, 2018

            Restore them even temporarily to see if that fixes your issue?

          • Anonymous

            January 25, 2018

            I did restore the reg settings and it now works.

          • George Spiers

            January 26, 2018

            Thanks, I also tried using WS2016 and Outlook 2013 and did not have the same problem.

          • Mayur

            January 26, 2018

            In my case i had deleted the active setup stubs on a WS2012R2 and it seems to be breaking the auto discovery and mapi profile creation for published Outlook 2013. MS must have changed the use of Active Setup to speed up logon performance.

            Btw – A side question do you happen to have any example scripts for the customization of the default profile for published desktop? Having to do it manually is really a pain and it breaks the unattended build process of a Xenapp server.

          • George Spiers

            January 29, 2018

            I don’t nope. What do you mean by customising the default profile? I normally perform NTUSER.DAT customisations which apply then to users logging on to the box. I have a script for that, but they are just registry modifications.
            P.s. I did not experience the same issue as you regarding Outlook 2013 and WS2012 R2 but glad you have resolved the issue for yourself.

          • Mayur

            January 30, 2018

            I am trying to build a pooled MCS Win7 Image using MDT and would like to try and make it zero touch. I have tried various ways to import the registry settings which are mainly to do with setting the Visual Effects to custom and only enabling “Use visual styles on windows and buttons” into the NTUSER.DAT but for some reason I just can’t seem to get this to apply for any new users who logon.

          • George Spiers

            January 30, 2018

            Using a template machine, set the visual effects to custom and then uncheck/check the effects you want/don’t want. Then grab the value of “UserPreferencesMask” under “HKCU\Control Panel\Desktop”.

            You then want to make sure this UserPreferencesMask binary value is created for all users via WEM/GPO or else by using the NTUSER.dat method. You also want to make sure VisualEffects is set to 0x3 using the same methods (WEM/GPO/NTUSER.DAT).

          • Mayur

            January 30, 2018

            Yes, I have managed to get the correct hex value as the below plus there are other settings:
            [HKEY_USERS\Temp\Control Panel\Desktop]
            “UserPreferencesMask”=hex:98,12,03,80,10,00,00,00

            I place the above with other settings into a reg file called VisualEffects.reg

            I have a batch file for importing the reg into default profile but for some reason the settings do not seem to be applying to new profiles. I have done this before but it does not seem to be working for Visual Effects.

            REG LOAD HKU\Temp C:\Users\Default\NTUSER.DAT

            REM Configure the default user profile

            REM Customise Visual Effects Theme.
            REG IMPORT VisualEffects.reg

            REM Unload the default profile hive
            REG UNLOAD HKU\Temp
            exit

          • George Spiers

            January 31, 2018

            Someone else had the same issue and had to edit NTUSER.dat manually.

          • Mayur

            January 31, 2018

            Yes, the default user profile customization has always been tricky to automate. I will have to resort to suspend the MDT task sequence. Do the manual changes and copy the NTUSER.DAT.

  • Anonymous

    January 24, 2018

    Hello George,

    how are you?

    Thank you for the script. Do you have one for windows 10 as well?

    Cheers,
    Pavan

    Reply
    • George Spiers

      January 25, 2018

      Not at this time unfortunately.

      Reply
  • Dan

    January 25, 2018

    I would also greatly appricate a link to the excel doc please

    Reply
    • George Spiers

      January 25, 2018

      Sent

      Reply
  • Anonymous

    February 8, 2018

    George,

    I’m running into some issues with this script. I’m using 7.15.1000 on server 2016 with MCS as my provisioning method. After running the script on my master image some of my users are not loading the default background or any start menu icons. All of these settings are configured through WEM 4.5 and were working before the script. Is there a registry change in the script that I missed that could cause this?

    Your feedback and work on this script are much appreciated.

    Reply
    • George Spiers

      February 8, 2018

      Nothing that I know about. I use MCS, WEM and so on but do not see the same. Seems like the WEM agent is failing to apply settings periodically. I would expect this to happen to all users if it was a registry change. Have you checked WEM logs to see why actions are failing?

      Reply
      • Anonymous

        February 12, 2018

        That was my thought as well. I looked at the log parser and didn’t find anything. Maybe the WEM cache on the VDA is corrupt? Not really sure why WEM would be having such a problem. Have you run into WEM doing these kinds of things?

        Reply
        • George Spiers

          February 12, 2018

          I use a Scheduled Task on system startup which runs an Agent cache refresh and Norskale Agent Host service restart. Details are referenced at https://jgspiers.com/citrix-workspace-environment-manager/#Troubleshooting

          Otherwise, if settings are failing to apply you should be getting something in the “Citrix WEM Agent Init” or “Citrix WEM Agent” log files under %UserProfile%.

          Reply
  • Alejandro V.

    February 8, 2018

    George,

    I just applied the script to my Terminal Server that is running Windows Server 2016. However, after the reboot, I was no longer able to RDP to it. I had to restart the RDS service. I restarted the server again and the same issue. Do you know what might be the issue?

    Reply
    • George Spiers

      February 9, 2018

      What Hypervisor are you running on?

      Reply
    • satya

      June 18, 2019

      same here, I ran optimisation script and rebooted. I am unable to RDP to it afterwards. My environment is on Vmware ESXI 6.5.

      Reply
      • George Spiers

        June 20, 2019

        I’ll have a look in to it.

        Reply
        • Jeff

          January 29, 2020

          Did you ever find anything out on this? I’m in the same boat – VMware 6.5 environment, unable to connect to RDSH servers after a reboot until I manually restart the RDS service.

          I’ve used your script before on some standalone RDSH servers in my same VMware 6.5 environment and it worked GREAT. It seems to have some effect on the Connection Broker, possibly?

          Reply
        • Jeff

          February 5, 2020

          I’ve narrowed it down to one of the following two services in the script that causes the issue:

          NcbService – Network Connection Broker
          NcaSvc – Network Connectivity Assistant

          Commenting both of those out allows the RDS environment to function normally.

          Reply
  • Gwyn Llewelyn

    February 12, 2018

    Hi George, thanks for your time on this script. I came across it whilst trying to troubleshoot slow logon times for my 2016 XenApp server PVS vDisk. Could you send the spreadsheet for further info? Thanks.

    Reply
    • George Spiers

      February 12, 2018

      Sent.

      Reply
  • David M.

    February 12, 2018

    Great Script. Could you send me a copy of the Spreadsheet as well.

    Thanks

    Reply
    • George Spiers

      February 12, 2018

      Yes sent.

      Reply
  • nhr

    February 13, 2018

    Awsome info. Please George, could u send me spreadsheet info copy? thanks in advanced

    Reply
    • George Spiers

      February 13, 2018

      Sent.

      Reply
  • Morten

    February 14, 2018

    I too really like a copy of the Excel sheet, please.. 🙂

    Morten T

    Reply
    • George Spiers

      February 14, 2018

      Sent.

      Reply
      • Anonymous

        February 15, 2018

        Thanx! 🙂

        Reply
  • Bastuaab

    February 15, 2018

    I also would like to receive a copy of the excel sheet. Thnx

    Reply
    • George Spiers

      February 15, 2018

      Sent.

      Reply
      • Paul

        February 20, 2018

        This looks fantastic, can I get a copy of the spreadsheet please?

        Reply
        • George Spiers

          February 22, 2018

          Hi I’ve sent the document across.

          Reply
  • Mayur

    February 25, 2018

    I was looking at improving the performance of my lab environment which seems to have taken a hit after I built a new XD7.15CU1 site using WS2016 VMs. So I decided to try out this script by first running it on my Delivery Controller VM which only has 2GB RAM so it was very sluggish and constantly kept updating with Windows/defender updates so I thought see if it helps with reducing the memory and cpu overhead and make it more responsive. First impressions it seems to have done a good job and as far as I can tell nothing is broken.

    Next I will be testing it on my XenApp build. Perhaps, it might be a good idea to create another script for optimizing the WS2016 OS for Citrix delivery controller/storefront server builds.

    Reply
    • George Spiers

      February 26, 2018

      Thanks for the feedback.

      Reply
  • Gregor Mottl

    March 2, 2018

    Hi George, could you please send me the excel, thx for the great script. Greg

    Reply
    • George Spiers

      March 3, 2018

      Sent!

      Reply
  • frhell

    March 7, 2018

    Thanks for your job! Can i also receive copy of spreadsheet?

    Reply
    • George Spiers

      March 7, 2018

      Sent!

      Reply
  • Matheen

    March 16, 2018

    Hi, Can I have copy of spread sheet please?

    Reply
    • George Spiers

      March 16, 2018

      Sent!

      Reply
  • vl

    March 19, 2018

    Are there concerns applying this script for Server 2016 Core? – and: would you mind sending me the excel sheet as well? –

    thanks

    Reply
  • Anonymous

    March 19, 2018

    vl
    … I measn: besides Citrix applications of course – or are these settings specific for citrix environments?

    thanks

    Reply
    • George Spiers

      March 19, 2018

      The script performs actions to reduce the Operating System footprint. I’ve not tested it on Server Core, but providing that Server Core uses the same set of services and scheduled tasks etc. there should be no issue. That said, a lot of these settings are for EUC type environments, so you might be best commenting out things that are not needed in non-EUC environments. I’ve sent you the guide.

      Reply
  • Rick

    March 31, 2018

    Hello,

    I tried your script but had after an error on outlook, can I have your excel so I can have more details to adapt your script

    Thank you 🙂

    Reply
    • George Spiers

      March 31, 2018

      Sent!

      Reply
  • Josh

    April 1, 2018

    Hi George,

    Could you please email me your Excel spreadsheet?

    Reply
    • George Spiers

      April 3, 2018

      Sent.

      Reply
  • Andrew

    April 5, 2018

    Could this same script be used for windows 10 in a Citrix VDI environment?

    Reply
    • George Spiers

      April 5, 2018

      Overall no I would not recommend it, as I haven’t tested it nor focused on Windows 10 optimisations but hopefully I will later in the year. There may be things you can pick from this script, and there will be optimisations specific to Windows 10 that are not part of this script.

      Reply
  • Raj

    April 7, 2018

    Would you please send a copy of excel sheet.

    Thanks

    Reply
    • George Spiers

      April 7, 2018

      Sent.

      Reply
  • Bauke

    April 16, 2018

    Hi George,

    Could you please email me your Excel spreadsheet?

    Reply
    • George Spiers

      April 16, 2018

      Sent.

      Reply
  • Walter Dominick

    April 18, 2018

    Hi sir,
    Could you please e-mail me your excel file? Thanks in advance.

    Reply
    • George Spiers

      April 18, 2018

      Sent.

      Reply
  • Vaqar Hasan

    April 18, 2018

    I would also greatly appreciate a link to the excel doc please

    Reply
    • George Spiers

      April 18, 2018

      No problem I have sent it.

      Reply
  • PSK

    April 24, 2018

    Great work! Could you please share the excel work book? Thanks.

    Reply
    • George Spiers

      April 24, 2018

      Sent

      Reply
  • Don

    April 26, 2018

    Hi George,
    I was able to successfully download the W2012 optimisation script, however, I have tried downloading this script from a couple of different machines and browsers but when I try to open the zip file, it is reported as an invalid file.

    Reply
    • George Spiers

      April 26, 2018

      I’ve noticed this before, resolved by upgrading to the latest version of WinRAR of 7zip for example.

      Reply
  • Kendrick Gray

    May 7, 2018

    About to run your script on a 2016, 7.15 CU1, we have an issue with mpnotify.exe holding logins for 30 seconds, and overall slower performance. Can you send me a copy of the changes it makes.

    Reply
    • George Spiers

      May 8, 2018

      Sent.

      Reply
    • Alan Behan

      January 5, 2024

      Sorry to raise a very old issue but came across something similar recently and was wondering if you were able to get to the bottom of the mpnotify.exe holding the login for 30 seconds? Thanks for any insight.

      Reply
  • Richard Lawson

    May 14, 2018

    Morning, I’d be very interested in the list, could you send me a copy please George?

    Reply
    • George Spiers

      May 14, 2018

      Sure. I have sent it.

      Reply
  • Marius

    May 15, 2018

    Would you please send me a copy of the excel sheet?

    Thanks

    Reply
    • George Spiers

      May 15, 2018

      Sent.

      Reply
  • Michael

    May 18, 2018

    Hi George,

    I am building a new xenapp 7.15 for my company. Just come across this site and script. I have run Citrix Optimiser on my win2016 build already. want to see whatelse changes your script will do for optimise the image. Can I have a copy of the excel before I apply the script please? thank you very much.

    Reply
    • George Spiers

      May 18, 2018

      Sure, sent.

      Reply
  • Pelle Dahlkild

    May 21, 2018

    Hi George,
    I am about to replaces my existing RD-farm and your script seems super!
    Could you plz also send me a copy of the list over all tweaks?
    Br, Pelle

    Reply
    • George Spiers

      May 21, 2018

      Sent.

      Reply
  • Wayne Small

    May 22, 2018

    Hi George – would love a copy of the XLS if possible. Thanks for your efforts.

    Reply
    • George Spiers

      May 22, 2018

      No problem. Sent!

      Reply
  • David

    May 23, 2018

    Hi George,
    Would you please send me a copy of excel sheet.
    Thanks
    David

    Reply
    • George Spiers

      May 23, 2018

      Sent.

      Reply
  • Simon

    May 23, 2018

    Can you please send me a copy of the changes made. Windows updates seems to break following using it. I want to just disable WU and BITS services so I can periodically update my master.

    Reply
    • George Spiers

      May 23, 2018

      Sent.

      Reply
  • Florent

    May 31, 2018

    Great Script, in my case, I enable WSUS and BITS to update servers using wsus
    Could you sent me the excel sheet to ?

    Reply
    • George Spiers

      May 31, 2018

      Sent.

      Reply
  • Luke

    June 5, 2018

    Hey George,

    We are having huge performance issues while running Win 2016 server with ESET (or any other AV) on Citrix XenServer. I’am about to check your script. Would you mind sending me this excel file for further reference. Many thanks

    Reply
    • Anonymous

      June 5, 2018

      We are having the same issue with 2016 and XenServer Clients we have Sophos AV on the clients. Would like to hear what you guys have done to help with the performance issues.

      Reply
      • George Spiers

        June 5, 2018

        So removing Sophos solves the issue? I normally turn off on-read access and keep it set to on-write.

        Reply
      • Luke

        June 6, 2018

        So we have had even case with ESET opened because of this. They couldn’t find any reason. This has been escalated to global dev team and we are about to hear back from them. I’m sure they won’t find anything. What I realised yesterday, that on the VM’s that have had performance issues we had Windows Defender feature installed in Win 2016. I was very upset but once I removed this feature from the server performance get back to normal.

        Of course I will try the script today to see if I can improve further. I must admit that Windows server 2016 is disaster. Who the hell implemented “Working hours” …in server environment ?? Some genius.

        Reply
    • Kendrick

      June 5, 2018

      Contact Info

      Reply
    • George Spiers

      June 5, 2018

      Sure – sent.

      Reply
  • Mike Scott

    June 5, 2018

    You should probably just link that Excel Spreadsheet here 😉

    Ill take a copy please, and Thank you!

    Reply
    • George Spiers

      June 5, 2018

      I was waiting for someone to say that 🙂 Sent.

      Reply
      • Anonymous

        June 6, 2018

        I have some questions regarding some entries in the spreadsheet. You want me to privately email you back or post in comments? I dont want to clog up comments, but other may find it helpful.

        Reply
        • Mike Scott

          June 6, 2018

          Sorry that was me, didnt mean to post as Anonymous

          Reply
          • George Spiers

            June 6, 2018

            Sure – post your questions here if you prefer.

  • Mohammad Shoieb

    June 5, 2018

    Hi George Great Script , Would you please send me a copy of the excel sheet?

    Many Thanks

    Reply
    • George Spiers

      June 5, 2018

      No problem – sent.

      Reply
  • Mike Scott

    June 6, 2018

    This script is mostly pointed to Citrix, but I work for an MSP that deals mostly with RDS, so im not sure these would all apply to a Citrix environment but wanted to ask..Im sure mileage will vary. I looked through the Excel spreadsheet and here are a few that stuck out to me.

    Active Setup Registry entries
    Would only affect the first time a user logs in.
    May cause problems with Windows Media Player being available for users?

    Various Registry optimizations
    Removes admin alert when system crashes – just the notification if configured right?
    Disable crash dump creation – no blue screen dumps?
    Disable system crashing to event log – we would have no evidence if anything crashed or why at this point right?
    Disables offline files – probably fine for RDS/Citrix environments
    Disabled Last Access attribute – could be helpful in auditing/tracking
    Reduces Event log sizes down to 64k – would probably be way too small to collect amount of logs if an issue pops-up
    Disable Machine Account Password Changes – what is point of this?

    Disabling Services
    HyperV heartbeat – if the Citrix/RDS server is a Hyper-V VM, wouldn’t disabling this service screw with failover clustering as well as monitoring?
    HyperV guest shutdown service – wouldn’t be able to remotely power off or reset?
    Microsoft account sign-in assistance – what about Office 365? Have to sign in constantly?
    Network connection broker – RDS brokers/gateways would be affected I believe
    Sensor monitoring services – this would disable Temp, CPU, fans…all that?
    User access logging – Depending on environment could be needed to see who did what. If GPO forces auditing on will this enable itself?

    Delete scheduled tasks – these usually run in the middle of the night
    Disk cleanup
    Defrag

    Reply
    • George Spiers

      June 7, 2018

      1. I have not had any issues with WMP due to deleting the Active Setup entry for it.
      2. No dumps as generally for Citrix non-persistent machines wipes it anyway
      3. Again non-persistence and read-only images means would wipe blue scren sdumps and system crashing
      4. Event Log reduction is recommendation, normally I would advise to configure event forwarding due to non-persistence, if you have a need for logs
      5. This is so PVS/MCS can handle machnie account password changes
      6. You have to hash out the section that disabled Hyper-V related services if your VMs will reside on Hyper-V, I made mention of it in the notes
      7. No, I use O365 and sign-in works
      8. Regarding sensor monitoring service that service is for physical endpoints, adjusting screen brightness and rotation on tablets for example
      9. No need for disk cleanup and defrags on Citrix machines as generally non-persistent

      Reply
      • Anonymous

        June 8, 2018

        Ok thank you for the quick reply!

        Reply
  • GKM

    June 12, 2018

    Excellent script! Thank you so much, this site has been an amazing source of information!

    One thing I have noticed is that using MCS, VDA 7.16, and hosted on Azure, you cannot RDP to the VM after running the optimisations. Running some remote commands from Azure you receive errors about there not being enough RPC endpoints available to service the request.

    I will do a bit more troubleshooting and let you know what I find.

    Again, Thank you for your efforts!

    Reply
  • Henry

    June 14, 2018

    I’m about to build out 2016 servers for our XD 7.15 farm. From reading the comments here I’d have to say kudos to you for creating this script George. Also, I”m going to follow everyone and ask for the excel file too :).

    Reply
    • George Spiers

      June 14, 2018

      Sent!

      Reply
  • Abdulkadir

    June 21, 2018

    Can yo send me the excel file too :).

    Reply
    • George Spiers

      June 21, 2018

      Sent.

      Reply
  • Anonymous

    June 24, 2018

    Hi George, also interested in the link to the spreadsheet…

    Thanks

    Leo

    Reply
    • George Spiers

      June 25, 2018

      Hi please provide your email address so I can email it to you. You can email me and I will reply.

      Reply
  • Sander Paauwe

    June 26, 2018

    Hi all I got this error after some minutes users are logged in. No matter administrator or normal user. Does anyone is aware of this or have a solution. I have been looking for hour but cannot find the root cause.

    Faulting application name: SettingSyncHost.exe, version: 10.0.14393.2248, time stamp: 0x5ae3f856
    Faulting module name: SettingsHandlers_nt.dll, version: 10.0.14393.2248, time stamp: 0x5ae3f920
    Exception code: 0xc0000005
    Fault offset: 0x0000000000010893
    Faulting process id: 0x2b8
    Faulting application start time: 0x01d40d0b61b5f0f9
    Faulting application path: C:\Windows\system32\SettingSyncHost.exe
    Faulting module path: C:\Windows\System32\SettingsHandlers_nt.dll
    Report Id: fa4a8733-03b6-4b3c-ad82-d1e58c1f374b
    Faulting package full name:
    Faulting package-relative application ID:

    Reply
    • Francesc

      December 20, 2018

      I have the same problem. Do you know any solution?
      Regards

      Reply
  • Christophe Van Laere

    June 28, 2018

    Hi George,

    this is a great script, thx a lot!

    Could I also get the Excel sheet please?

    Thx in advance

    Reply
    • George Spiers

      June 28, 2018

      Sent.

      Reply
  • Erik Z

    July 8, 2018

    Hi George,

    I would like to test the script. Can you send me the documentation?

    Thanks in advance.

    Greetings Erik

    Reply
    • George Spiers

      July 9, 2018

      Sent.

      Reply
  • John

    July 8, 2018

    Hi, great job. May I have the excel pls?

    Reply
    • George Spiers

      July 9, 2018

      Sent.

      Reply
  • CSIM

    July 12, 2018

    Hello
    Great job !!
    Could you send to me the Excel sheet please ?

    Reply
    • George Spiers

      July 13, 2018

      Sent.

      Reply
  • CSIM

    July 12, 2018

    Hey George,
    Could you add the desactivation of “Mapsbroker” & “SyncHost” services ?
    http://www.em-soft.si/myblog/elvis/?p=800

    Reply
    • George Spiers

      July 15, 2018

      Maps Broker was already part of the script. I have just added a line to disable the Sync Host service too.

      Reply
  • Anthony Zepeda

    July 15, 2018

    Could I get a copy of the excel sheet. Thank you.

    Reply
    • George Spiers

      July 16, 2018

      Sent.

      Reply
  • Kareem

    July 16, 2018

    just wanted to consider asking if you will be using Windows defender or End Point protection as the script removes Windows defender and you can’t install SCEP without Windows Defender.

    Reply
    • George Spiers

      July 16, 2018

      You could edit the script and comment out the line that removes Windows Defender.

      Reply
  • Pascal

    July 16, 2018

    Hi George
    Thanks for your script!
    I do have 2 question:
    1) In your change log there is written “Removed line that created DisableTaskOffload DWORD….” however, in my opinion DisableTaskOffload is still beeing set in $CreateRegistry Array?
    2) When running the script all StubPath reg-keys are not found. My OS is Win2016 14393.2248
    And last, I also would like to have the Excel sheet.
    Thanks a lot!

    Reply
    • George Spiers

      July 16, 2018

      Thanks, I removed the DisableTaskOffload line from the array you mentioned as it should have been removed before.
      I don’t see any issues with the StubPath registry keys and I have tested on a newer build than you have.
      I sent you the excel file.

      Reply
  • Ron

    July 16, 2018

    George, as always I appreciate the shared information and effort. Could I possibly get a copy of your excel document that lists the modifications for review?
    Thank you!

    Reply
    • George Spiers

      July 16, 2018

      Sure – sent it to you!

      Reply
  • osama moheb

    July 17, 2018

    Hello,

    I have a share folder ‘HR Share’ on Server 2016 where I have a security group ‘HR Users’ from AD. I need

    HR Users – read, write, edit, modify, rename etc but NO DELETE permission (This folder, sub folder or files none)

    HR ManagerHello,

    I already tried a lot from sharing permissions as well as Security>Advanced>Edit special permissions but confused.

    If I deny delete for HR Users and allow everything else, they still CAN’T rename, save data in MS office file and it creates temp files too. – above all + delete permission (Full Control needed)

    what should i do to make this permission full control with out Delete Data form root folder . ?

    Reply
    • George Spiers

      July 18, 2018

      You should educate users not to delete files and deploy shadow copy for quick restore just in case, with backups as a higher level recovery option. Assigning just delete permissions isn’t possible.

      Reply
  • Dov Banach

    July 20, 2018

    Hi George, can you email me the script?

    Reply
  • Dov Banach

    July 20, 2018

    Hi George, can you email me the spreadsheet? Thanks!

    Reply
    • Randy Hall

      July 20, 2018

      Thank you for the hard work and research you have put into your script.
      Could I get a copy of your Spreadsheet as well?
      Thank you again.

      Reply
      • George Spiers

        July 20, 2018

        No problem. Sent.

        Reply
    • George Spiers

      July 20, 2018

      Sent!

      Reply
  • Lucas Santos

    July 25, 2018

    Hi. Good morning, George.

    Thanks for sharing this knowledge! Could you please send me the excel document as well?

    Thank you very much for the help!

    Reply
    • George Spiers

      July 25, 2018

      Sent.

      Reply
  • Roth Locke

    July 26, 2018

    Hi.
    We have problems with Outlook (2016) after running this script. It wont connect to exchange (2013 onprem) We tried creating new profile in outlook, but it wont go through the wizard, it fails on the authentication part in autoconfigure. We have reversed all the disabled services. Still no effect. We have reinstalled Office 2016. Next part is to restore registry and Scheduled tasks. Anyone else seen this?

    Reply
    • George Spiers

      July 26, 2018

      Any error message? Are you getting an autodiscover error?

      Reply
    • Chucky

      October 30, 2018

      The proxy setting in the browser was a cause for this in our case. When running the wizard, try with or without the proxy enabled.

      Reply
  • CSIM

    August 1, 2018

    Hi George
    You changed the process in your script … before I could directly execute the script in post-installation … Now … impossible .. I meet multiples errors (see below)
    —————————————————————————————————————————————–
    PS C:\_Support\Scripts_V1.15\WS2K16_Optimzation> .\WS2016Optimisations_V9.ps1
    At C:\_Support\Scripts_V1.15\WS2K16_Optimzation\WS2016Optimisations_V9.ps1:77 char:2
    + @(“StubPath – Themes Setup.”,”‘HKLM\SOFTWARE\Microsoft\Active Setup\ …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    The assignment expression is not valid. The input to an assignment operator must be an object that is able to accept assignments, such as a variable or a
    property.
    At C:\_Support\Scripts_V1.15\WS2K16_Optimzation\WS2016Optimisations_V9.ps1:78 char:4
    + (“StubPath – WinMail.”,”‘HKLM\SOFTWARE\Microsoft\Active Setup\Insta …
    + ~~~~~~~~~~~~~~~~~~~~~
    The assignment expression is not valid. The input to an assignment operator must be an object that is able to accept assignments, such as a variable or a
    property.
    At C:\_Support\Scripts_V1.15\WS2K16_Optimzation\WS2016Optimisations_V9.ps1:78 char:26
    + … – WinMail.”,”‘HKLM\SOFTWARE\Microsoft\Active Setup\Installed Componen …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    The assignment expression is not valid. The input to an assignment operator must be an object that is able to accept assignments, such as a variable or a
    property.
    At C:\_Support\Scripts_V1.15\WS2K16_Optimzation\WS2016Optimisations_V9.ps1:79 char:4
    + (“StubPath x64 – WinMail.”,”‘HKLM\SOFTWARE\WOW6432Node\Microsoft\Ac …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~
    The assignment expression is not valid. The input to an assignment operator must be an object that is able to accept assignments, such as a variable or a
    property.
    At C:\_Support\Scripts_V1.15\WS2K16_Optimzation\WS2016Optimisations_V9.ps1:79 char:30
    + … – WinMail.”,”‘HKLM\SOFTWARE\WOW6432Node\Microsoft\Active Setup\Instal …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    The assignment expression is not valid. The input to an assignment operator must be an object that is able to accept assignments, such as a variable or a
    property.
    At C:\_Support\Scripts_V1.15\WS2K16_Optimzation\WS2016Optimisations_V9.ps1:80 char:4
    + (“StubPath – Windows Media Player.”,”‘HKLM\SOFTWARE\Microsoft\Activ …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    The assignment expression is not valid. The input to an assignment operator must be an object that is able to accept assignments, such as a variable or a
    property.
    At C:\_Support\Scripts_V1.15\WS2K16_Optimzation\WS2016Optimisations_V9.ps1:80 char:39
    + … ia Player.”,”‘HKLM\SOFTWARE\Microsoft\Active Setup\Installed Componen …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    The assignment expression is not valid. The input to an assignment operator must be an object that is able to accept assignments, such as a variable or a
    property.
    At C:\_Support\Scripts_V1.15\WS2K16_Optimzation\WS2016Optimisations_V9.ps1:81 char:4
    + (“StubPath x64 – Windows Media Player.”,”‘HKLM\SOFTWARE\WOW6432Node …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    The assignment expression is not valid. The input to an assignment operator must be an object that is able to accept assignments, such as a variable or a
    property.
    At C:\_Support\Scripts_V1.15\WS2K16_Optimzation\WS2016Optimisations_V9.ps1:81 char:43
    + … ia Player.”,”‘HKLM\SOFTWARE\WOW6432Node\Microsoft\Active Setup\Instal …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    The assignment expression is not valid. The input to an assignment operator must be an object that is able to accept assignments, such as a variable or a
    property.
    At C:\_Support\Scripts_V1.15\WS2K16_Optimzation\WS2016Optimisations_V9.ps1:82 char:4
    + (“StubPath – Windows Desktop Update.”,”‘HKLM\SOFTWARE\Microsoft\Act …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    The assignment expression is not valid. The input to an assignment operator must be an object that is able to accept assignments, such as a variable or a
    property.
    Not all parse errors were reported. Correct the reported errors and try again.
    + CategoryInfo : ParserError: (:) [], ParseException
    + FullyQualifiedErrorId : InvalidLeftHandSide
    —————————————————————————————————————————————

    Could you help me to solve this issue ?
    Many thanks in advance

    Reply
    • George Spiers

      August 1, 2018

      “before I could directly execute the script in post-installation” – What is this? How are you running the script?

      Reply
      • CSIM

        August 2, 2018

        Hi george
        I was throwing your script with Powershell commandline

        Reply
  • Richard Horton

    August 2, 2018

    George,

    May I get a copy of your excel/word document for the script? I would greatly appreciate it.

    Reply
    • George Spiers

      August 2, 2018

      Sent.

      Reply
  • Ilrobby

    August 6, 2018

    Hi George!
    Really thanks for the script!

    If you want, to disable all “User*SyncSvc*” services, other keys need to be modified:

    $UserArch = Get-Service -Name UnistoreSvc | select -ExpandProperty Name
    $UserArch_NUM = Get-Service -Name UnistoreSvc* | select -ExpandProperty Name
    $UserContact = Get-Service -Name PimIndexMaintenanceSvc | select -ExpandProperty Name
    $UserContact_NUM = Get-Service -Name PimIndexMaintenanceSvc* | select -ExpandProperty Name
    $SyncService = Get-Service -Name OneSyncSvc | select -ExpandProperty Name
    $SyncService_NUM = Get-Service -Name OneSync* | select -ExpandProperty Name
    $CDP_USR_Service_NUM = Get-Service -Name cdpuser* | select -ExpandProperty Name
    $CDP_USR_Service = Get-Service -Name cdpusersvc | select -ExpandProperty Name
    $CDP_Service = Get-Service -Name cdpsvc* | select -ExpandProperty Name

    and used the $ModifyRegistry array to add the 0x4 value to each new key; the set-service cmd, as you said, doesn’t works!

    I’ve added also this 3 services, logging options and removed *xbox* app :

    WalletService
    PhoneSvc
    FrameServer

    #################Define Logs#############
    $date1 = get-date -format d
    # replace \ by –
    $time = get-date -format t

    $date1 = $date1.ToString().Replace(“/”, “-“)

    $time = $time.ToString().Replace(“:”, “-“)
    $time = $time.ToString().Replace(” “, “”)

    $logs = “.\Logs” + “\” + “WS2016Optimisations_” + $date1 + “_” + $time + “_.txt”
    #############################################

    Start-Transcript -Path $logs

    ….
    code
    ….

    Stop-Transcript

    Get-AppxPackage *box* | Remove-AppxPackage

    New server, 2016dtc 1607.14393.0, os iso installer, no errors in the events after 2 days (totally idle).

    Bye,
    Roberto

    Reply
  • Anonymous

    August 6, 2018

    Thanks again for the spreadsheet. This script is amazing. As I am beginning to learn powershell I am going to use yours as a breakdown example to teach myself. I really appreciate the time and effort that people like you to help others learn. This helps us all out!

    Thanks again.

    Reply
  • RICE

    August 8, 2018

    Thanks for this script. Can you also send me the excel document?

    Reply
    • George Spiers

      August 8, 2018

      Sent.

      Reply
  • CSIM

    August 9, 2018

    Hi George
    Could you explain me how i can use/run you script ?

    Thanks in advance

    Reply
    • George Spiers

      August 9, 2018

      For example, launch PowerShell as administrator -> cd C:\Scripts -> .\WS2016Optimisations.ps1
      That is one way to run it.

      Reply
  • Eero

    August 16, 2018

    Hi. Thanks for this. Could you send me the excel document also. Thank you.

    Reply
    • George Spiers

      August 16, 2018

      Sent.

      Reply
  • Dwayne

    August 23, 2018

    Hi George, this is a beauty and helps tremendously. I am sure many appreciate you taking your time which helps us save us time on our side! Keep up the great work. Could I get a copy of the excel document also? Thanks again!

    Reply
    • George Spiers

      August 23, 2018

      Sent.

      Reply
  • Kelvin

    August 23, 2018

    Hi George,

    Many thanks for your efforts, could I also get a copy of the spreadsheet please.

    Thanks in advance

    Reply
    • George Spiers

      August 23, 2018

      Sent.

      Reply
  • Keith Correa

    August 24, 2018

    George, thank you for your wonderful script! Much appreciated! Can you please send me the Excel file? TIA!

    Reply
    • George Spiers

      August 24, 2018

      Sent.

      Reply
  • Maarten

    August 26, 2018

    Hi George,

    Great script, i would also like to receive the Excel file if possible.

    Thank you!

    Reply
    • George Spiers

      August 27, 2018

      Sent.

      Reply
  • Edwin

    August 29, 2018

    Hi George,

    Great script, Thanks!
    I would also like to receive the Excel file if possible?
    Thanks in advance

    Edwin

    Reply
    • George Spiers

      August 29, 2018

      Sent.

      Reply
  • Richard Raaijmakers

    August 30, 2018

    Hello George,

    Thanks for making this great script!

    I would also like to receive the Excel file. Can you please sent it to me?

    Thanks,
    Richard

    Reply
    • George Spiers

      August 30, 2018

      Sent.

      Reply
  • Marco

    August 31, 2018

    Hi George,

    Great script and good job. Would it be possible to send me the excel sheet also?
    Thank you!

    Reply
    • George Spiers

      August 31, 2018

      Sent.

      Reply
  • Dom

    August 31, 2018

    what about these settings.

    Fairshare- Have not tested this but could help, thoughts?
    HKLM\SYSTEM\CurrentControlSet\Serivces\TSFairShare\Disk\EnabledFairShare = 0 (changed from 1)

    HKLM\SYSTEM\CurrentControlSet\Serivces\TSFairShare\NetFS\EnabledFairShare = 0 (changed from 1

    This has helped many clients servers – Disables all offload settings in network adapters, can drop network for 1-2 seconds.
    Powershell
    Set-NetAdapterAdvancedProperty “*” -DisplayName “*offload*” -DisplayValue “Disabled”

    Reply
  • Robert Murphy

    August 31, 2018

    George,

    May I get a copy of the spreadsheet for the Server 2016 Optimization script.

    TIA
    Murph

    Reply
  • Dom

    September 2, 2018

    Hi,

    Would also like a copy of the spreadsheet, please

    Thank you, will be testing this script 🙂

    Reply
    • George Spiers

      September 3, 2018

      Sent!

      Reply
  • Marc

    September 3, 2018

    Could you sent me a copy of the spreadsheet please, so I van adapt and test the script, please?

    Reply
    • George Spiers

      September 4, 2018

      Sent.

      Reply
  • don

    September 6, 2018

    can i please get a copy of the spreadsheet and script?

    Reply
    • George Spiers

      September 6, 2018

      Sent.

      Reply
  • Biju

    September 6, 2018

    George,

    May I get a copy of your excel/word document for this script? I would greatly appreciate it.

    Reply
    • George Spiers

      September 6, 2018

      Sent.

      Reply
  • Tor Ivar

    September 9, 2018

    Ran the script in a XenApp 7.18 on Windows Server 2016, and after that the servers wouldn’t register with delivery controller until I logged on with RDP. When I rolled back to the previous image, the problem was gone.

    Anyone experienced the same?

    Reply
  • Leandro Franklin

    September 26, 2018

    George,

    May I get a copy of your excel/word document for this script? I would greatly appreciate it.

    Reply
    • George Spiers

      September 26, 2018

      Sent.

      Reply
  • Dom

    September 27, 2018

    Will you be looking at a script for server 2019?

    Reply
    • George Spiers

      September 27, 2018

      Absolutely. Within the next 2 months I will begin to look at Server 2019.

      Reply
  • Giacomo

    September 30, 2018

    Hi, I accidentally disable Hyper-V services but I need to re-enable them.

    How should I do?

    Reply
    • George Spiers

      October 8, 2018

      The services are soft disabled, simply go to services.msc and enable them again. You can use another machine with the same OS version as reference to determine what each Startup Type should be set to.

      Reply
  • Stuupdog

    October 5, 2018

    Hi George,

    Can you send me a copy of your script and spreadsheet…..I appreciate the effort youve put into this dude! Kudos!

    Reply
    • George Spiers

      October 8, 2018

      Sent.

      Reply
  • John Ferguson

    October 5, 2018

    Hi George,

    I used your script on a base image of server 2016 back in January. We didn’t do much with the template until just recently and we’ve come across an odd issue with any server created from it.
    None of the PowerShell storage commands like Get-Disk, Get-Volume, etc. work. No errors, just zero functionality. Even CIM query doesn’t return anything (gcim MSFT_Disk -Namespace root/Microsoft/Windows/Storage).
    We rebuilt a fresh image with no optimizations and all that works.
    Have you seen this behavior before? I’ve tried sfc /scannow, wmi rebuilds, and more but no luck. We are having to use gwmi commands instead of commandlets to manage storage .

    Reply
    • George Spiers

      October 8, 2018

      Not seen it but can try it myself. What Hypervisor are you running 2016 from?

      Reply
      • Anonymous

        October 8, 2018

        Hi George,
        After further research, it doesn’t seem to be related to your script. I am finding multiple instances of Server 2016 losing functionality of the Storage module in PowerShell.

        Reply
  • Pieter

    October 10, 2018

    Hi George,

    Can you send me a copy of the spreadsheet?

    Thanks,
    Pieter

    Reply
    • George Spiers

      October 11, 2018

      Sent.

      Reply
  • Barry

    October 11, 2018

    Thanks for your script, I am reviewing it. I would like a copy of the excel Sheet if possible. Thank you for all your articles and work. Very helpful!

    Reply
    • George Spiers

      October 11, 2018

      Sent.

      Reply
  • wiederre

    October 16, 2018

    Hey. Thanks for your Script. I would like a copy of the excel Sheet if possible. Thank you for all your articles and work

    Reply
    • George Spiers

      October 18, 2018

      Sent.

      Reply
      • Jagdish Bhai

        October 23, 2018

        Hi George,

        Can I please have a copy of this excel file.

        Thank you in advance

        Reply
  • Josh B.

    October 25, 2018

    Hi George,

    May I have a copy of the excel sheet?

    Thanks for your hard work on these settings! Working to optimize an XA7.15 LTSR/2016 build right now.

    Thanks!

    Reply
    • George Spiers

      October 25, 2018

      Sure, sent!

      Reply
  • Sebastien M.

    October 30, 2018

    Hi George,

    May I have a copy of the excel sheet?

    Thanks For your script it’s very interesting ! I

    Thanks !

    Reply
    • George Spiers

      October 31, 2018

      Sent.

      Reply
  • Chester Eason

    October 30, 2018

    Could you send to me the Excel sheet please ?

    Reply
    • George Spiers

      October 31, 2018

      Sent.

      Reply
      • Chester Eason

        October 31, 2018

        Thank you George for the spreadsheet. Excellent work.

        After applying the script I find that the detection of a USB storage device (stick) does not work. Might you be able to help identify which of the scripted changes would be involved?

        Reply
        • Chester Eason

          November 1, 2018

          I need to mention that the USB storage device (stick) detection was not caused by any changes made by the scripts and apologize for making a hasty assumption. The cause was an oversight on my part for not assigning the required Citrix USB Redirection policy to the Delivery Group.

          Reply
  • Xavier Lamprecht

    November 6, 2018

    Thank you George for this script. I’m working on a XA7.15 LTSR CU3/2016 Build atm. Can you also send me the excel document?

    Reply
    • George Spiers

      November 6, 2018

      Sent, good luck with the build.

      Reply
  • Heinz Anders

    November 12, 2018

    Hi George

    Great Work!
    Could you send to me the Excel sheet please ?

    Thx.

    Reply
    • George Spiers

      November 12, 2018

      Sent.

      Reply
  • Marc

    November 15, 2018

    Hi George,

    Nice script ! Could you forward me the word / excel file ?

    Many thanks & Cheers,

    Marc

    Reply
    • George Spiers

      November 15, 2018

      Sent.

      Reply
  • Moorhuhn

    November 21, 2018

    Hi George

    Great Work!
    Could you send to me the Excel sheet please ?

    Thanks

    Reply
    • George Spiers

      November 21, 2018

      Sent.

      Reply
  • Steve Turnbull

    November 21, 2018

    hi George, just to let you know I have also just tried running this script on Windows 2019 and it ran fine and appears to have improved the performance of the desktop in the same way as Windows 2016. The only issue so far is on the logon screen, the network icon shows an error, even though it’s working fine.

    Reply
    • George Spiers

      November 22, 2018

      Thanks Steve. I will make a specific 2019 script in the near future but good to know the 2016 script works.

      Reply
      • Martin Loubser

        April 29, 2022

        Hello George,

        Did you manage to create a Windows Server 2019 Optimization Script?

        Thanks

        Reply
  • Christian Hackmann

    November 22, 2018

    Hi George

    Great!
    Could you send to me the Excel sheet please?

    Thanks

    Reply
    • George Spiers

      November 22, 2018

      Sent!

      Reply
  • Muhammad Kamran

    November 23, 2018

    hi George, thanks for the script, I have applied it on our Windows server 2016. Everything appears to work fine but the only issue so far is on the logon screen, the network icon appears with Red Cross mark showing there is no network, even though it’s working fine when I login. Is there any service or registry key we need to set to overcome this please?

    Reply
    • George Spiers

      November 25, 2018

      Yes you need to set the Windows Connection Manager service back to Automatic. As you have found, having this service disabled only shows a red X against the network connection icon whilst at the logon screen.

      Reply
  • Nils Krüger

    November 24, 2018

    Hi George

    Awesome work. The Script really helped me out.
    Could you send to me the Excel sheet please?

    Thanks

    Reply
    • George Spiers

      November 25, 2018

      Sent.

      Reply
  • Adam Egginton

    November 26, 2018

    Hi George,

    Thank you for the script. I have struggled to get good performance from our 2016 RDS servers.

    I would be very grateful if you could send me the spreadsheet please.

    Thanks,

    Reply
    • George Spiers

      November 26, 2018

      Sent!

      Reply
  • Hal Buruto

    November 27, 2018

    Hi, just came across your script this week. Excellent work. Can I please kindly get a copy of the Excel spreadsheet too?
    Thanks!

    Reply
    • George Spiers

      November 27, 2018

      Sure, sent.

      Reply
  • Dirk Westphal

    November 29, 2018

    Hi George,

    Can you send me a copy of the spreadsheet?

    Reply
    • George Spiers

      November 29, 2018

      Sent!

      Reply
  • Jeremy

    November 30, 2018

    HI George, just saw this script and was hoping to get a copy of that excel sheet as well.

    Reply
    • George Spiers

      November 30, 2018

      No problem, sent!

      Reply
  • Nick Cardinal-Richards

    December 1, 2018

    Hi George,
    Could I trouble you for a copy of the spreadsheet please?
    Many Thanks,
    ~Nick

    Reply
    • George Spiers

      December 3, 2018

      Sent!

      Reply
  • Far

    December 6, 2018

    Hello Mate,

    Could I get the excel sheet as well? Appreciate it

    Reply
    • George Spiers

      December 6, 2018

      No problem, sent.

      Reply
      • Sonny

        December 10, 2018

        Could I get the excel sheet as well? Thanks

        Reply
        • George Spiers

          December 10, 2018

          Sent.

          Reply
  • Michael Loemm

    December 10, 2018

    Hi George
    Awesome work. The Script really helped me out.
    Could you send to me the Excel sheet please?
    Thanks

    Reply
    • George Spiers

      December 10, 2018

      Check your mail 🙂

      Reply
  • Anonymous

    December 11, 2018

    Thank you George, very nice work. Can I get the Excel as well?

    Reply
    • George Spiers

      December 12, 2018

      You can but you didn’t leave your email when commenting.

      Reply
      • Kapil

        January 29, 2019

        This script looks amazing George, I am currently working on 2016 deployment in our Citrix PVS based infrastructure. I will definitely try this in my infrastructure.

        Can you please send an excel copy to me for further analysis.

        Thanks in advance.

        Reply
        • George Spiers

          January 29, 2019

          No problem – sent.

          Reply
  • Pingback: Citrix Optimizer custom template for Windows Server 2016 - Dennis Span

  • Terry D

    December 26, 2018

    Just an FYI, if you running Appsense, the BITS service is required.

    Reply
  • Darren Price

    January 3, 2019

    Hi George, great script can I have a copy of the excel please

    Reply
    • George Spiers

      January 4, 2019

      Sent!

      Reply
  • Andreas

    January 5, 2019

    great script – may I have a copy of the Excel sheet, too – please?

    do you (or someone else) have any experience using the script as a “starting point” for other use cases like IIS or MSSQL-Server? I would like to create a pure base image for our vm’s …

    Thanks!

    Reply
    • George Spiers

      January 5, 2019

      Sent, and I haven’t used the script on any other server roles myself.

      Reply
  • Anonymous

    January 7, 2019

    Very clean code! Good job on this

    Reply
  • Sean

    January 14, 2019

    thanks, great script

    Reply
  • Ruud

    January 14, 2019

    Hi George,

    Great script ! can i have a copy of the excel list as well?

    Thnx!

    Reply
    • George Spiers

      January 15, 2019

      Sent.

      Reply
  • Kay

    January 17, 2019

    Hi George,
    thank you so much for sharing your script.
    May you can send me the Excel Sheet too?

    Thx 🙂

    Reply
    • George Spiers

      January 25, 2019

      Sent!

      Reply
  • Sean

    January 21, 2019

    Hi George, thanks for your script. I have two virtual esxi server 2016 running as RDS server.
    both With Office 365 Proplus. I ran the script on one of the server, and when I open the mail setup icon from control panel, it take ages to open. When ran on the server that i didn’t run the script, it runs fine.
    On the server I ran the script on, it works okay for me, maybe cause I am admin, but a normal user, it seems it takes so long to read/write to the registry. Was using the Mail Icon, to set up the outlook profiles. etc. Not sure if I changes anything else on top of running this script, but is there anything to do with loading the registry for users or related ?

    Reply
    • George Spiers

      January 28, 2019

      Hello. No have not noticed that. I usually configure mail by just launching Outlook but I have opened the Control Panel mail applet without the same issues.

      Reply
  • Anonymous

    January 21, 2019

    Hi I ran your script and I no longer get toast notifications for any programs including Outlook etc. Do you know which part of your script would cause this and also how to re-enable the notifications please?

    Reply
    • George Spiers

      January 28, 2019

      The script doesn’t disable toast notifications. Just tested on a WS2016 machine with the script applied and Outlook notifications are showing fine.

      Reply
      • Richard

        January 29, 2019

        Thanks George it seems all my RDSH servers are no longer showing toast notifications and I thought it might have been the script that has done this . Great script by the way improved my RDSH server performance.

        Reply
  • Sveb

    January 29, 2019

    Hello,
    thanks for your work. Before using it productive, could you sent me the spreadsheet?

    Reply
    • George Spiers

      January 29, 2019

      Sent.

      Reply
  • Kris

    January 29, 2019

    Great Script!! Can you send me a copy of the Excel/Word. Thank you.

    Reply
    • George Spiers

      January 30, 2019

      Sent.

      Reply
  • Piyush Nayak

    February 6, 2019

    Great script. Thanks for sharing the great work. Would you be able to send me the excel/word doc please? Thanks in advance

    Reply
    • George Spiers

      February 7, 2019

      Sent.

      Reply
  • Toni

    February 13, 2019

    Hi George,

    great great great job!!!!! , thanks for sharing! Could you please also send me the Excel?

    Reply
    • George Spiers

      February 13, 2019

      Sent!

      Reply
  • Tobias

    February 18, 2019

    Hi George, we recently went productive with our new XA 7.15 / WIN 2016 RDS and have massive performance issues when more than 8 or 9 users are logged on. Therefore I am searching for information to optimise these servers. May I ask you to send me your overview as well? TIA, Kind regards, Tobias

    Reply
    • George Spiers

      February 19, 2019

      Sent!

      Reply
  • M!ke Hansen

    February 19, 2019

    Hi,

    really nice script. Could you please send me the Excel-Sheet too?
    Thx in advance!

    Reply
    • George Spiers

      February 19, 2019

      Sent!

      Reply
  • Mark Mc Grath

    February 21, 2019

    Hi George,

    Nice work buddy, I seen you giving a demo at the CUGC in Dublin last year. I am about to build a XenApp lab with Server 2019. Would you send me the excel file as i would like to try your script on it.

    Cheers,
    Mark.

    Reply
    • George Spiers

      February 22, 2019

      Hi Mark, sent. Note that the script isn’t specifically made for 2019, but I’ll bet the majority still applies.

      Reply
  • sebi

    February 22, 2019

    hi, i used your script, but now my logon screen is missing, i had configured a picture with gpo, can you tell which settings this is and can i revert only this setting with logon and lock screen?

    thanks,sebastian

    Reply
    • George Spiers

      February 26, 2019

      Yes in the registry set DWORD “DisableLogonBackgroundImage” to “0x0” under “HKLM\SOFTWARE\Policies\Microsoft\Windows\System”

      Reply
  • Magnus

    February 25, 2019

    Hi George,

    Can you send me a copy of the spreadsheet?

    Thanks,
    Magnus

    Reply
    • George Spiers

      February 26, 2019

      Hi Magnus, the email you provided was invalid. I got a bounceback saying the domain was not found.

      Reply
      • Magnus

        February 27, 2019

        Had an extra char in the domain, should be good now.

        Thanks

        Reply
  • Tamang

    February 25, 2019

    I am currently working on XA/XD 7.17, 2016 server os in AWS and wanted to implement in this POC. and could you also send me the excel file as well.
    Thanks in Advance

    Reply
    • George Spiers

      February 26, 2019

      Sent.

      Reply
  • Pieter Jan

    February 26, 2019

    can I have also het excel doc ?
    and is there a reverse option in the script ?

    Reply
    • George Spiers

      February 26, 2019

      Sent. The only reverse option is a snapshot of the VM, which is easy! The script itself has no reverse options.

      Reply
  • Eamonn

    March 2, 2019

    Can I have a copy of script and excel?
    Thanks
    Eamonn

    Reply
    • George Spiers

      March 4, 2019

      Sent.

      Reply
  • Shantanu

    March 7, 2019

    Hello George,
    We are in the process of Building a new PVS image for Win 2016 Server.
    Can you please let me know when we are supposed to apply this optimization Script.
    Is it after creating the PVS Server Image ? OR Before Creating the Image on the Server Level?
    OR Apply this Optimization Script before Sealing the Vdisk to production and or test?
    Any help is much appreciated.
    Thanks,
    Shaan

    Reply
    • George Spiers

      March 11, 2019

      Hi Shantanu. I suggest applying it after you have run the Imaging Wizard and created the vDisk. You can create a vDisk version, place it in testing mode and then you have the ability to roll-back if you or your users encounter an issue.

      Reply
  • Atle

    March 12, 2019

    Hi George,

    Great article as always, really appreciate the work and effort you put in sharing your knowledge with the community. Could you please send me a copy of the script and spreadsheet?

    Thank you so much! 🙂

    Reply
    • George Spiers

      March 12, 2019

      No problem, sent.

      Reply
  • Balachandran

    March 13, 2019

    Hi George,

    great script, thanks for sharing! Could you please also send me the Excel?

    Reply
    • George Spiers

      March 13, 2019

      Sent.

      Reply
  • Gudjon Hauksson

    March 18, 2019

    Hello George, great script and thanks for the share. Could I have the excel with all the changes ?

    Reply
  • Brian

    March 30, 2019

    George, the script looks great, and I am stating to use this a basis for our new servers. Is it possible to get a copy of your Excel file? Additionally do you have plans to update this script for Windows 2019?

    Reply
    • George Spiers

      April 2, 2019

      Sent and yes I have been asked for a 2019 edition a few times now, so hope to have that soon.

      Reply
  • Keith

    April 1, 2019

    Hello George,
    Just stumbled across your site and this wonderful blog.
    Could you please email the excel file at your earliest convenience ?
    I would like to compare to the optimizations I am implementing.
    Thank you and now following you on LinkedIn.

    Reply
    • George Spiers

      April 2, 2019

      Thanks Keith, Excel file sent.

      Reply
  • John Lindhan

    April 2, 2019

    Hello George, great script, any chance to get the excel file with all the changes?

    Reply
    • George Spiers

      April 5, 2019

      Sent.

      Reply
  • Ronny

    April 4, 2019

    Hi George,
    can i please recieve also the excel document?
    thank you so much!

    Reply
    • George Spiers

      April 5, 2019

      Sent.

      Reply
  • Mal

    April 9, 2019

    Excellent Script George !
    I was wondering if I could have a copy of the excel document that list all the features that you do modify in your script?
    Again many thanks really great work.

    Reply
    • George Spiers

      April 11, 2019

      You’re welcome, sent!

      Reply
  • Jani

    April 10, 2019

    Hi George.
    Can you please send me the Excel sheet?
    Thanks!

    Reply
    • George Spiers

      April 11, 2019

      Sent.

      Reply
  • Jason Bazinet

    April 23, 2019

    Can I get a copy of the Excel wkbk as well.

    Reply
    • George Spiers

      April 24, 2019

      Sent.

      Reply
  • Milan

    April 24, 2019

    Hi George,
    thank you for this script.
    Can you please send me the excel sheet, too?
    Thanks in advance!

    Reply
    • George Spiers

      April 24, 2019

      Sent.

      Reply
  • Fernando

    April 24, 2019

    George, would it be possible to get a copy of that spreadsheet also?

    Reply
  • Dusty

    May 8, 2019

    I’m getting this error when running the script. Thoughts?
    PS C:\Users\useraccount> C:\ITData\WS2016Optimizations\WS2016Optimisations.ps1
    At C:\ITData\WS2016Optimizations\WS2016Optimisations.ps1:268 char:40
    + }
    + ~
    Unexpected token ‘}’ in expression or statement.
    + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : UnexpectedToken

    Reply
    • Dusty

      May 8, 2019

      Disregard, I edited out the hyper v settings and left a character there.

      Reply
  • Ewald

    May 9, 2019

    Thank your this nice script.

    What about disabling fair sharing for CPU, Disk and Network by creating the following registry keys:? This seem to help to improve the over all performance. For CPU Management, we use WEM instead.

    (“Disable TS Fair Sharing for Disk.”,”‘HKLM\SYSTEM\CurrentControlSet\Services\TSFairShare\Disk’ /v EnableFairShare /t REG_DWORD /d 0x0 /f”),
    (“Disable TS Fair Sharing for Network.”,”‘HKLM\SYSTEM\CurrentControlSet\Services\TSFairShare\NetFS’ /v EnableFairShare /t REG_DWORD /d 0x0 /f”),
    (“Disable TS Fair Sharing for Network.”,”‘HKLM\SYSTEM\CurrentControlSet\Services\TSFairShare\NetFS’ /v EnableNetworkFSS /t REG_DWORD /d 0x0 /f”),
    (“Disable TS Fair Sharing for CPU.”,”‘HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Quota System’ /v EnableCpuQuota /t REG_DWORD /d 0x0 /f”)

    And disabling Power Saving for the NICs:

    # Disable NIC Power Saving
    foreach ($NIC in (Get-NetAdapter -Physical)){
    $PowerSaving = Get-CimInstance -ClassName MSPower_DeviceEnable -Namespace root\wmi | ? {$_.InstanceName -match [Regex]::Escape($NIC.PnPDeviceID)}
    if ($PowerSaving.Enable){
    $PowerSaving.Enable = $false
    $PowerSaving | Set-CimInstance
    }
    }

    And disabling various NIC Offloading Features.
    Disable-NetAdapterChecksumOffload -Name “*” -IpIPv4 -TcpIPv4 -TcpIPv6 -UdpIPv4 -UdpIPv6 -NoRestart
    Disable-NetAdapterRss -Name “*” -NoRestart
    Set-NetAdapterAdvancedProperty Ethernet0 -DisplayName “IPv4 TSO Offload” -DisplayValue “Disabled” –NoRestart
    Set-NetAdapterAdvancedProperty Ethernet0 -DisplayName “Large Send Offload V2 (IPv4)” -DisplayValue “Disabled” -NoRestart
    Set-NetAdapterAdvancedProperty Ethernet0 -DisplayName “Large Send Offload V2 (IPv6)” -DisplayValue “Disabled” -NoRestart
    Set-NetAdapterAdvancedProperty Ethernet0 -DisplayName “Offload IP Options” -DisplayValue “Disabled” -NoRestart
    Set-NetAdapterAdvancedProperty Ethernet0 -DisplayName “Offload tagged traffic” -DisplayValue “Disabled”

    Reply
    • George Spiers

      May 9, 2019

      Thanks for the suggestions, will give them some thought.

      Reply
      • Ewald

        May 9, 2019

        Sorry … I just discovered that disabling the NIC Offloading Features causes issues on Server 2016. At least on my VMs on ESX6.5. It´s Looks better on Server 2012R2.

        Reply
        • George Spiers

          May 10, 2019

          Thanks for the update.

          Reply
  • Patrick

    May 11, 2019

    Thanks for the script! Can you sent me the excel sheet?

    Reply
    • George Spiers

      May 13, 2019

      Sent.

      Reply
  • Anonymous

    May 12, 2019

    Hi. Please can you send me the excel sheet also?

    Reply
    • George Spiers

      May 13, 2019

      Sent.

      Reply
  • Gustav

    May 13, 2019

    Hi! Really nice script! Would it be possible to get a copy of the Excel-file.

    Best regards
    Gustav

    Reply
    • George Spiers

      May 16, 2019

      Sent.

      Reply
  • Jeff Mohler

    May 17, 2019

    Could I receive a copy of your Excel file? Your script is my go to source!!

    Reply
    • George Spiers

      May 17, 2019

      Sent!

      Reply
  • Volkan Alkılıç

    May 30, 2019

    Syntax error;

    + function DisablingServicesOnServer2016wDE{
    + ~
    Missing closing ‘}’ in statement block or type definition.
    + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : MissingEndCurlyBrace

    Reply
  • Niels

    June 4, 2019

    Great script. Can you send me a copy of the Excel file?

    Reply
    • George Spiers

      June 4, 2019

      Sent.

      Reply
  • Chris Claxton

    June 5, 2019

    Wow – more than a year and you’re still answering posts regulary. Thanks for this script and the other Citrix work that I’ve read from you.

    …and like many others, could you send me the excel sheet?

    Thanks

    Reply
    • George Spiers

      June 5, 2019

      Sent!

      Reply
  • Steve S

    June 6, 2019

    George,

    Great script, you mention it can be ran with the Citrix Optimizer Tool, which would you run first?

    Also can I get the Excel File. 🙂

    Reply
    • George Spiers

      June 7, 2019

      Excel file sent. This script can’t be run with the Optimizer tool. I’ve been working on getting it available for Optimizer but not finished yet. Hopefully in the next month it will be there.

      Reply
  • Aaron

    June 7, 2019

    Thanks for all of your efforts on behalf of the whole world! Can I get a copy of the Excel file as well please?

    Reply
    • George Spiers

      June 7, 2019

      Sure, sent. 🙂

      Reply
  • Sen

    June 13, 2019

    Thank you for this script George. Could you please send me the excel sheet?

    Reply
    • George Spiers

      June 16, 2019

      Sent.

      Reply
  • Jonas

    June 25, 2019

    Thank you for this script George. Will try it for at RDP 2016 🙂
    Could you please send me the excel sheet?

    Reply
    • George Spiers

      June 27, 2019

      Sent.

      Reply
  • Gio

    June 26, 2019

    Hi George,

    Thanks for your script! I’ve read that you would give some thoughts regarding an 2019 version of the script. Any news about it?

    PS….
    Could you send me the Excel sheet?

    Reply
    • George Spiers

      June 27, 2019

      Sent the spreadsheet. 2019 I’m working on it. Expect to have in the next month.

      Reply
      • Alexander Schwarz

        July 8, 2019

        Thank you for this great script.

        Could you please send me the excel sheet?

        Reply
        • George Spiers

          July 9, 2019

          Sent.

          Reply
  • Rolands

    July 2, 2019

    Hi,
    Great script, thanks for sharing! Could you please also send me the Excel sheet?

    Reply
    • George Spiers

      July 3, 2019

      Sent.

      Reply
  • Pingback: Citrix Troubleshooting 101: Frequently Asked Questions | eG Innovations

  • Sean Trimm

    July 7, 2019

    Excellent script sir. Very much appreciate the time you’ve dedicated to this project that you have shared. May I also get your reference documentation? Much appreciated!

    Reply
    • George Spiers

      July 9, 2019

      Sent.

      Reply
  • Alexander Schwarz

    July 8, 2019

    Thank you for this great script.

    Could you please send me the excel sheet?

    Reply
  • Manuel

    July 19, 2019

    Thanks a million for the script, It is really helpful.
    I got this weird error at the end of the “creating Registry object” section… I had a look at the script in notepad++ and could not find any obvious reason for this ( no weird chars, the arrays are fine,…).

    Creating registry object DisableLogonBackgroundImage DWORD – Disable Logon Background Image.
    The operation completed successfully.
    Creating registry object S
    ERROR: Invalid key name.
    Type “REG ADD /?” for usage.
    The following section contains commands that remove Active Setup registry entries. These optimisations are aimed at redu
    cing logon times.
    Deleting registry object StubPath – Themes Setup.
    The operation completed successfully.

    Reply
    • George Spiers

      July 20, 2019

      Odd, there is nothing created after DisableLogonBackgroundImage. It goes into a delete section, so not sure why you got that.

      Reply
      • Hy

        April 20, 2024

        Hi George,
        I get the exact same error with “Creating registry object S”. I have run the original ps1-file in PowerShell ISE.

        Reply
  • Ben Johnson

    July 24, 2019

    Hey George, great script. Can, I also get the Excel list?

    Reply
    • George Spiers

      July 26, 2019

      Sent.

      Reply
  • Nico Noy

    July 25, 2019

    Hi Georges, great script. Can you send me the Excel list please?
    Thanks

    Reply
    • George Spiers

      July 26, 2019

      Sent.

      Reply
  • Baptiste

    July 26, 2019

    Hi Georges,

    thank you for this great script, I have use it many times ! can you send me, also, the Excel file ?

    Reply
    • George Spiers

      July 26, 2019

      You’re welcome. Sent.

      Reply
  • Christian Dalum

    July 31, 2019

    Have you look into Windows 2019 compared with latest Citrix optimizer ?

    Reply
    • George Spiers

      August 2, 2019

      Not yet but I’ve plans.

      Reply
  • keith

    July 31, 2019

    hey George you are a star! thanks for the script would you please email the spreadsheet?

    Reply
    • George Spiers

      August 8, 2019

      Sent.

      Reply
  • Alex de Jong

    August 6, 2019

    Could you please send me the Excel too?

    Reply
    • Alex de Jong

      August 14, 2019

      I haven’t received the spreadsheet yet.
      *friendly reminder*

      Reply
    • George Spiers

      August 18, 2019

      Sent.

      Reply
  • Dave W

    August 14, 2019

    Hi,

    Great article! My download gets blocked unfortunately is it possible you could email me a text version of the script and Excel, if you get chance.

    Many thanks!
    Dave

    Reply
    • George Spiers

      August 18, 2019

      Sent.

      Reply
  • Michal

    August 18, 2019

    Nice Work ! can you send me, also, the Excel file ? Thanks

    Reply
    • George Spiers

      August 19, 2019

      Sent.

      Reply
  • Johan

    August 21, 2019

    Good morning,
    Could you please send me a copy of your Excel Spreadsheet ?

    Many thankks

    Reply
    • George Spiers

      August 26, 2019

      Sent.

      Reply
  • sampathkumar

    August 23, 2019

    Hi,
    Please can you send me a copy to me.

    Thanks,
    Sampathkumar

    Reply
    • George Spiers

      August 26, 2019

      Sent.

      Reply
  • Ashok Kumar

    August 23, 2019

    Hi George ,

    can u send me also the copy of excel

    Thank you,
    ashok030884@gmail.com

    Reply
    • George Spiers

      August 26, 2019

      Sent.

      Reply
  • Joe Denice

    August 26, 2019

    Excellent Script. I am going to do some testing with it this week. Now will this script remove the Server Manager or is there another suggestion on removing that so users do not see it? Also could I get a copy of the excel sheet?

    Thanks again!

    Reply
    • George Spiers

      August 29, 2019

      Nothing specific performed with Server Manager, it shouldn’t open when a standard user logs on. I’ve sent the spreadsheet.

      Reply
  • Syed

    September 3, 2019

    Hi George,

    Can you please share copy of excel sheet?

    Reply
    • George Spiers

      September 5, 2019

      Sent.

      Reply
  • Oliver

    September 12, 2019

    Hello George,

    could you please provide me a copy of the excel sheet?

    Reply
    • Oliver

      September 12, 2019

      Hello George,

      just another question. Could I use this Optimisation Script also within Server 2019?
      Of course, most of the settings are the same, but do you have experience by reusing it for 2019?

      Regards, Oliver

      Reply
      • George Spiers

        September 29, 2019

        I have not personally used it with Server 2019. Just, as always, make sure you have a rollback option and perform thorough testing.

        Reply
    • George Spiers

      September 29, 2019

      Sent.

      Reply
  • Nathan

    September 17, 2019

    Nice Work ! can you send me, also, the Excel file ? Thanks

    Reply
    • George Spiers

      September 29, 2019

      Sent.

      Reply
  • ramil

    October 1, 2019

    Awesome job George! Kindly send me the Excel file ? Thanks

    Reply
    • George Spiers

      October 3, 2019

      Sent.

      Reply
  • Xander

    October 4, 2019

    Thanks for sharing the script, could you please send me the Excel file?

    Reply
    • George Spiers

      October 6, 2019

      Sent.

      Reply
  • Ard

    October 7, 2019

    Hi George, could you also send me the Excel file?

    Reply
    • George Spiers

      October 9, 2019

      Sure, sent.

      Reply
  • Julian Fellows

    October 7, 2019

    Hi George,

    Thanks for creating this script, it’s been really helpful. Could I also have a copy of the Excel file please?

    Thank you

    Reply
    • George Spiers

      October 9, 2019

      Sent.

      Reply
  • Frank zhang

    October 9, 2019

    George,
    Cool. Would you like to send a copy of the excel file to me? Thanks!

    Reply
    • George Spiers

      October 15, 2019

      Sent.

      Reply
  • Steve

    October 9, 2019

    Hi George,

    Could you send me the excel too please?
    Thanks in advance

    Reply
    • George Spiers

      October 15, 2019

      Sent.

      Reply
  • Derek

    October 11, 2019

    Hey George – this has been a fantastic resource. Can you send me the spreadsheet, as well?
    Thanks!

    Reply
    • George Spiers

      October 15, 2019

      Sent.

      Reply
  • Carlos Vasquez

    October 14, 2019

    Hi George – Thanks for the script, it works great. Could you send me the spreadsheet? Also, is the 2019 version coming out soon? Thanks again!

    Reply
    • George Spiers

      October 15, 2019

      2019 I hope will be out early next year if not the end of this year. Sorry for the wait. I sent you the spreadsheet.

      Reply
  • Aditi

    October 17, 2019

    Hi,
    Could you send me the excel too please?

    Thanks

    Reply
    • George Spiers

      November 3, 2019

      Sent.

      Reply
  • Damon

    October 21, 2019

    Hello and thanks for the script! This help out my Server 2019 build but I need to install .NET 3.5 nor could I install it via a downloaded file. Searching for the switch and reenable it.

    Thanks,
    -Damon

    Reply
    • Anonymous

      October 22, 2019

      Mount the Installation disk, take note of the path , open a powershell (elevated privileges) and run the following in powershell without the ” ”
      “Dism /online /enable-feature /featurename:NetFX3 /All /Source:E:\sources\sxs”

      where e is the drive letter of your installation disk

      Reply
      • Damon

        October 22, 2019

        Thank you, sorry the page didn’t refresh after I sent my reply in. I’ll add this to my “box of tools.”

        Reply
  • Damon

    October 22, 2019

    Nevermind, I found them…

    Reply
  • Damon

    October 22, 2019

    Oh, here’s a reasonable request:
    Is there a switch SOMEWHERE other than the Device Manager that controls the Power Management for USB devices? I have USB 3.0 hub that likes to re-enable the “Allow the computer to turn off this device to save power” switch. So when I’m playing around, and the mouse goes to sleep, one would think the system locked.

    Fat chance this has something to do with the central power management, eh?

    Reply
  • Vincent

    October 31, 2019

    Hi,
    Could you send me the excel too please?

    Thanks

    Reply
    • George Spiers

      November 10, 2019

      Sent.

      Reply
  • Sathish

    November 13, 2019

    Hi George, do you mind sharing the excel please? Thanks

    Reply
    • George Spiers

      December 3, 2019

      Sent.

      Reply
  • Dan

    November 28, 2019

    Hi George, Can i have excel file pls. THanks so much.

    Reply
    • George Spiers

      December 3, 2019

      Sent.

      Reply
  • steve johnson

    November 30, 2019

    George can I get a copy of the excel spreadsheet please.

    Reply
  • Ingo Wilkenloh

    December 2, 2019

    Wow, great work

    Can u plz sent me a copy of the Excelsheet?

    Thx
    Ingo

    Reply
    • George Spiers

      December 3, 2019

      Sent.

      Reply
  • David Regev

    December 2, 2019

    hi

    can i get copy of the Excelsheet?

    david

    Reply
    • George Spiers

      December 3, 2019

      Sent.

      Reply
  • Christian

    December 9, 2019

    Hi George, great script. Can you please send me a copy of the Excel sheet. Thanks
    Christian

    Reply
    • George Spiers

      December 14, 2019

      Sent.

      Reply
  • 9denis

    December 12, 2019

    Thanks George for the scritpt. Can you please send me the excel sheet? Thanks!

    Reply
    • George Spiers

      December 14, 2019

      Sent.

      Reply
  • Dennis

    December 19, 2019

    Hi George, can I still get a copy of the excel sheet? I know it came by a few times before, but what is in your opinion right now the best way you should configure the NIC offloading part for Windows 2016 Hyper-V? All settings Off, or all default (On)?

    Reply
    • Dawie

      December 23, 2019

      @Dennis,

      My experience in this is that the Hyper-V Guests works better with all the offloading disabled. I did not have this part of the script previously and did it manually to all of my Windows Server 2016 guests. Others might have different experiences, but too me the disabling the offload features improved network performance on a Host with 20 guests …

      Reply
    • George Spiers

      December 29, 2019

      Sent. Using PVS? You don’t actually specifically need to disable. Whatever you choose, just check your PVS retries.

      Reply
  • Dawie

    December 23, 2019

    @ George Spiers,

    Thank you greatly for a simple way to improve my guests without breaking ANY of our software systems running on them!
    One of my clients wants to run Windows 2019 next year … any plans for a Windows Server 2019 Standard optimization script?

    Reply
    • George Spiers

      December 29, 2019

      Yes I am working on it, should be here first half of 2020.

      Reply
      • Eyal

        February 13, 2020

        Please send med the XL sheet,

        Thanks,

        Reply
  • Michal

    December 27, 2019

    Hello is it possible to get the excel file.
    Really nice script!

    Reply
    • George Spiers

      February 17, 2020

      Sent – sorry for the delay.

      Reply
  • Zdenek

    January 3, 2020

    Hi George

    can i get copy of the Excelsheet?

    Zdenek

    Reply
    • George Spiers

      February 17, 2020

      Sent. Sorry for the delay.

      Reply
  • Rick

    January 6, 2020

    Hi George
    Can you send me the Excel list please?
    Thanks

    Reply
    • George Spiers

      February 17, 2020

      Sent. Sorry for the delay.

      Reply
  • Harsh Kumar

    January 10, 2020

    Hi George,

    I have applied the script but since then “Average Logon Duration Data Missing In Citrix Director”.

    Could you please suggest, which option I should exclude from the script to make this working?

    Also, please send me the excel list please.

    Thanks in advance.

    Harsh Kumar

    Reply
    • George Spiers

      February 17, 2020

      Sent. Sorry for the delay.

      Reply
  • jason

    January 23, 2020

    Can I get the excel or can you post it on google docs. thanks

    Reply
    • Harsh Kumar

      January 24, 2020

      Hi Jason,

      For past few days, I tried few things & made some changes in the script as per my Citrix environment & now I can get the Average Logon Duration in Director.

      The script solved lot of ongoing issues for the longer period of time.

      Really thankfull for the script & support.

      Thanks,
      Harsh Kumar

      Reply
    • George Spiers

      February 17, 2020

      Sent.

      Reply
  • Sundar

    February 5, 2020

    Hi George
    Can you send me the Excel list please?
    Thanks

    Reply
    • George Spiers

      May 10, 2020

      Sent. Sorry for the delay

      Reply
  • Ron

    February 14, 2020

    Hi George
    Can you send me the Excel list please?
    Thanks,
    Ron

    Reply
  • Anonymous

    February 17, 2020

    George,

    I have seen some mention of disabling DHCP with ipconfig /release in order to make sure it gets a new ip after boot up. Any thoughts on that? Obviously you would need to be consoled in for that to work.

    Reply
    • George Spiers

      May 10, 2020

      Have not thought about that! Personally I’ve not had any issues with not running a release during image creation/future version updates.

      Reply
  • Anonymous

    February 17, 2020

    George,

    I have another question, It was taking a long time to shut down an image with it saying “Windows is getting ready” I think is what it said. It would take around 7-8 mins to shut down and I traced it down to it trying to apply windows updates. I poked around and found out that if you use sconfigure and use option 5 and set it to manual and reboot it solves the issue which is it puts windows update in manual mode. This took several attempts as whenever I would run it it would try to stop the windows update service but would fail. I have to set the update service to disabled, reboot, then enable and run that command. Any thoughts on this?

    Reply
    • George Spiers

      May 10, 2020

      I will investigate including sconfig in the script.

      Reply
  • Michel

    February 21, 2020

    Would you please share the optimize sheets as well for windows server 2016?

    Reply
    • George Spiers

      May 19, 2020

      Sent.

      Reply
  • Jeff

    February 29, 2020

    Nice script, appreciate it

    Reply
  • Ark

    February 29, 2020

    Do you have a windows 2019 version? I am looking for one

    Reply
    • George Spiers

      May 19, 2020

      Not at the moment, sorry.

      Reply
  • Swan

    April 17, 2020

    Nice script!
    Can I get the excel or can you post it on google docs. thanks

    Reply
    • George Spiers

      September 7, 2020

      Sent. Sorry for the delay.

      Reply
  • sage pack

    April 19, 2020

    Can you send me the Excel list please?

    Stay Healthy and Safe.

    Thanks

    Reply
  • Tyson

    April 28, 2020

    Any chance I can get my hands on this excel sheet?

    Reply
    • idle

      May 18, 2020

      +1 😉

      Reply
    • George Spiers

      September 9, 2020

      Sent.

      Reply
  • Jack

    May 21, 2020

    Thanks for sharing the wonderful script. Could I get a copy of the Excel sheet.
    Seen lots of request for the Excel sheet, why not place a downloadable link within your website for others?

    Reply
    • Jack

      September 8, 2020

      Hi George,
      Thanks for sharing the wonderful script. Could I get a copy of the Excel sheet?

      Reply
  • Zulay Calero

    June 1, 2020

    Thank you. Can I get a copy of the Excel as well?

    Reply
  • Gary

    June 6, 2020

    Great script. Can I get a copy of the Excel as well.

    Reply
  • Ricardo Goud

    June 22, 2020

    Hi George,

    Great script! Very nice.
    Can i get also a copy of the Excel file?

    thank you in advance.

    Reply
  • BEN

    June 24, 2020

    Is it possible to include the Excel file in the Zip ? If not, can you also send me a copy of the excel file ? Thanks in advance

    Reply
  • Zdenek

    June 25, 2020

    Great script. Can I get a copy of the Excel as well.

    Reply
  • Mario Di Mauro

    July 6, 2020

    Hi, thank you for your great job but i am experiencing a lost performance in my ambient. Is there a script to revert all the actions?
    Ty in advance

    Reply
  • Shun

    July 11, 2020

    Hello.
    Thank you for sharing the wonderful content, could you give me an Excel file?

    Reply
  • Mo Najjar

    August 17, 2020

    Hi

    Great script can i have a copy of the excel sheet please

    Reply
  • Ann

    September 2, 2020

    Amazing job George! Do you know if I can use this script on a Server 2019?

    Reply
    • TomCatT

      September 2, 2020

      Hello,
      Will there be any support for Windows 10 Pro for Workstations?

      Reply
  • JohnQ

    October 2, 2020

    The script looks great. Can you kindly send me the spreadsheet too please? Thanks in advance.

    Reply
  • Ron

    October 14, 2020

    Script is awesome. Can I also get the excel? Thanks!

    Reply
  • Mbrayez

    October 18, 2020

    Can I get the excel? Thanks for the script

    Reply
  • Santi

    October 18, 2020

    Thanks for it!. Can I get the excel?

    Reply
  • francesco

    November 2, 2020

    Hi can be used also for Windows 2019 Server?

    Reply
  • LSmeets

    December 3, 2020

    Does this script disable any O365 settings? When connecting a mailbox the credentials wont be saved at next logon.

    Reply
  • Lori

    December 16, 2020

    Well done! LOVE the verbose commentary in the script! A+! Thanks, mate! Cheers!

    Reply
  • Carlos

    January 25, 2021

    Hello All,
    Is there a way to revert all changes that the script performs? I mean, is there a script to enable all those services which were disabled, or adds the deleted registry keys, etc, etc? I need this for an experiment in one of my servers and though it is doable, I thought I might ask first.
    Thanks guys!

    Reply
  • Vaibhav

    January 29, 2021

    Hi George,

    thanks a lot for the script. can you send me the excel sheet

    Reply
  • Christiaan

    February 4, 2021

    Hello George,

    thanks a lot for the script. can you send me the excel sheet?

    Reply
  • Adam

    March 8, 2021

    Hi George,

    I have used this several times and it work very well.

    Can you send me a copy of the Excel spreadsheet?
    Thank you

    Reply
  • Doug Waller

    March 16, 2021

    can you please send me the excel file?

    Reply
  • Niels van Leeuwen

    March 31, 2021

    Hi have you got the excel for me as well ?

    Reply
  • Daniel

    April 14, 2021

    Hi George,

    Thanks for this great script. Could you send me the excel sheet?

    Did you perhaps get further with Windows 2019 version?

    Reply
  • Niels

    May 26, 2021

    Does anyone has got the Excel FIle ? George is not responding anymore it looks like 🙂
    Br
    Niels

    Reply
  • dilo

    June 17, 2021

    Thanks for it!. Can I get the excel?

    Reply
  • Samer Tela

    July 7, 2021

    Thanks for the script! is it possible to get the excel file?

    Reply
  • Michael

    August 21, 2021

    is there an update for the script? I notice that many of the services that are disabled in the script are still active after a reboot. maybe there is an update?

    Reply
  • Oscar

    August 31, 2021

    Great script!Can I get the excel?

    Reply
  • nilab

    October 4, 2021

    Thanks for sharing the wonderful script. Do you have the script for server 2019 and 2022?

    Reply
    • Graham

      October 4, 2022

      interested in this as well. but as no ones responded, i dont think its in development yet

      Reply
  • Mike Russo

    October 14, 2021

    Do you think it is possible to disable the Runtime Broker service? The Store shouldn’t be included in Server or LTSC, yet I sometimes see the Runtime Broker service running and chewing CPU and I can’t figure out why. I was just wondering if you or anyone else had a similar experience disabling it.

    Reply
  • Raymond Gonzales

    December 21, 2021

    Hi,

    After running the script. I got an error with the FSLOGIX. i can login to the VDA1 not to VDA 2

    Reply
  • jurgen

    February 6, 2022

    Hi George,

    Are you still working on the Windows 2019 version with FSLogix in mind? (non-citrix)

    please also send me the excell file if you will

    Reply
  • Layman

    May 19, 2022

    Hi George,

    I’m planning to use your optimization script in our Citrix environment. Could you send me the Excel file with all the changes? I need to include this into my CCR request. Thanks…

    Reply
  • Ravikumar P

    September 14, 2022

    Hi George,
    Seems this script is useful for us to increase interactive login time & Citrix logon performance.
    Thank you and kindly send me an excel to cross check once before running the script in our VDAs.

    /Ravikumar P

    Reply
  • Vincenzo

    September 20, 2022

    Hi all, I run the script on my new vdisk version and applications are twice faster, but if I reboot the vdisk or if I close it, it seems that is the same as before, like the script is not run.
    do you have some idea?

    Reply
  • Pingback: Citrix Optimizer custom template for Windows Server 2016 - Dennis Span

  • brian

    November 29, 2023

    Hi George, any thoughts on doing something similar for server 2022, also can i get the spreadsheet with the details of the settings in this script?

    Reply
    • Graham Mason

      February 15, 2024

      would love to see a 2022 version.

      Reply
  • Tom

    April 18, 2024

    Hi,
    Can you sent me the excel file?
    Also any need on more recent versions of windows server 2022, 2019 or 2016

    Reply
    • Tom L'Ecluse

      April 27, 2024

      Anyone has the excel file?

      Reply
  • Hy

    April 20, 2024

    Hello George,
    Have you combined your script with BIS-F? I get errors when preparing the image during disabling the scheduled tasks:

    Disable-ScheduledTask : A parameter cannot be found that matches parameter name “TaskPath”

    Reply

Leave a Reply