Base Image Script Framework (BIS-F) 6.1

System Optimizations

445 views January 28, 2019 January 28, 2019 Matthias Schlimm 2

BIS-F has own system optimizations (97_PrepBISF_PRE_BaseImage.ps1) for the Operating System, as describes here. In addition you can also trigger VMware OS Optimization Tool (vmOSOT) or Citrix Optimizer (CTXO) from BIS-F, configured in the BIS-F ADMX.

Note:If vmOSOT and/or CTXO is configured, some BIS-F system optimization will not be executed.

Global Optimizations:

  • Delete Citrix Cache C:\Program Files (x86)\Citrix\System32\Cache*
  • Delete Software Distribution C:\Windows\SoftwareDistribution\Download*
  • Delete Windows Update Log C:\Windows\WindowsUpdate.log
  • Purge DNS resolver Cache > ipconfig /flushdns
  • Purge IP-to-Physical address translation tables Cache (ARP Table) > arp -d *
  • Clear all event logs
  • Disable Receive Side Scaling (RSS) > netsh.exe int tcp set global rss=disable
  • Disable Data Execution Prevention > bcdedit.exe /set nx AlwaysOff
  • Disable Startup Repair option > bcdedit.exe /set {default} bootstatuspolicy ignoreallfailures
  • Disable New Network dialog
  • Set-ItemProperty -Name NewNetworkWindowOff -Path
    • ‘HKLM:\SYSTEM\CurrentControlSet\Control\Network’ -Type String -Value 0
  • Set Power Saving Scheme to High Performance > powercfg.exe -s 8c5e7fdae8bf-4a96-9a85-a6e23a8c635c
  • Reset Microsoft Distributed Transaction Service > msdtc.exe -reset
  • Hide Vmware Tools icon in systray (If installed)
    • Set-ItemProperty -Path ‘HKLM:\SOFTWARE\VMware, Inc.\VMware Tools’ -Name ‘ShowTray’ -Value ‘0’ -Type DWORD
  • Disable VMware debug driver (If installed)
    • Set-ItemProperty -Path ‘HKLM:\SYSTEM\CurrentControlSet\services\vmdebug’ -Name ‘Start’ -Value ‘4’ -Type DWORD
  • Hide PVS Status icon in systray (If installed)
    • New-Item -Path ‘HKLM:\SOFTWARE\CITRIX\ProvisioningServices\Status’ -Force | out-null; SetItemProperty -Path ‘HKLM:\SOFTWARE\CITRIX\ProvisioningServices\Status’ -Name ‘ShowIcon’ -Value ‘0’ -Type DWORD
  • Delete WSUS – SusClientId (IF WSUS TargetGroup is enabled)
    • Remove-ItemProperty -Path ‘HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate’ -Name ‘SusClientId’
  • Delete WSUS – SusClientIdValidation (IF WSUS TargetGroup is enabled)
    • Remove-ItemProperty -Path ‘HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate’ -Name ‘SusClientIdValidation’
  • Set Windows Update Service to Disabled
    • Set-Service -Name wuauserv -StartupType Disabled
  • Cleaning directory $env:windirTemp and $env:temp


Controlled with BIS-F ADMX:

  • Delete AllUsers Start Menu C:\ProgramData\Microsoft\Windows\Start Menu\*
  • Run Delprof2 to deletes inactive user profiles (If installed)
  • Run CCleaner to clean temp files (If installed) > CCleaner.exe /Auto
  • Reset Performance Counters during preparation and also on personliaztaion > lodctr.exe /r
  • Disable IPv6 in registry
    • Set-ItemProperty -Path ‘HKLM:\SYSTEM\CurrentControlSet\Services\TcpIp6\Parameters’ -Name ‘DisabledComponents’ -Value ‘0x000000FF’ -Type DWORD”
  • Executing all queued .NET compilation jobs > ngen.exe ExecuteQueuedItems
  • Running sdelete (If installed, version 1.6.1 supported only) on PVS WriteCacheDisk or on local Disk (if Image is in shared Mode only)
    • PVS: sdelete.exe -accepteula -z <WriteCacheDrive>
    • MCS/VMware/ Microsoft: sdelete.exe -accepteula -z %SystemDrive%
  • Disable IPv6 on AdapterGUID > nvspbind.exe /d “<AdapterGUID>” ms_tcpip6

Executed only, if 3rd Party Optimizer (vmOSOT and/or CTXO) are not enabled in BIS-F ADMX:

  • Disabling TCP/IP task offloading
    • Set-ItemProperty -Path ‘HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters’ -Name ‘DisableTaskOffload’ -Value ‘1’ -Type DWORD”
  • Increases the UDP packet size to 1500 bytes for FastSend
    • Set-ItemProperty -Path ‘HKLM:\SYSTEM\CurrentControlSet\Services\afd\Parameters’ -Name ‘FastSendDatagramThreshold’ -Value ‘1500’  -Type DWORD”
  • Set multiplication factor to the default UDP scavenge value (MaxEndpointCountMult)
    • Set-ItemProperty -Path ‘HKLM:\SYSTEM\CurrentControlSet\Services\BFE\Parameters’ -Name ‘MaxEndpointCountMult’ -Value ‘0x10’ -Type DWORD”
  • ARP Cache Changes Adapter > netsh interface ipv4 set interface <AdapterName> basereachable=600000
  • Stop DHCP Client Service > Stop-Service -Name dhcp
  • Clear NameServer in Registry TCPIP Parameters
    • Set-ItemProperty -Path ‘HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters’ -Name ‘NameServer’ -value “”
    • Set-ItemProperty -Path ‘HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<AdapterGUID>’ -Name ‘NameServer’ -value “”
  • Clear Domain in Registry TCPIP\Parameters
    • Set-ItemProperty -Path ‘HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<AdapterGUID>’ -Name ‘Domain’ -value “”
  • Clear DhcpIPAddress in Registry TCPIP\Parameters
    • Set-ItemProperty -Path ‘HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<AdapterGUID>’ -Name ‘DhcpIPAddress’ -value “”
  • Clear DhcpSubnetmask in Registry TCPIP\Parameters
    • Set-ItemProperty -Path ‘HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces<AdapterGUID>’ -Name ‘DhcpSubnetmask’ -value “”
  • Clear DhcpServer in Registry TCPIP\Parameters
    • Set-ItemProperty -Path ‘HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<AdapterGUID>’ -Name ‘DhcpServer’ -value “”
  • Clear DhcpNameServer in Registry TCPIPParameters
    • Set-ItemProperty -Path ‘HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<AdapterGUID>’ -Name ‘DhcpNameServer’ -value “”
  • Clear DhcpDefaultGateway in Registry TCPIP\Parameters
    • Set-ItemProperty -Path ‘HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<AdapterGUID>’ -Name ‘DhcpDefaultGateway’ -value “”
  • Disable IPv6 on AdapterGUID > nvspbind.exe /d “<AdapterGUID>” ms_tcpip6
  • Disable Scheduled Tasks
    ProcessMemoryDiagnosticEvents”,”RunFullMemoryDiagnostic”,”MNO Metadata Parser”,”Analyz
  • Disable Cortana
    • New-ItemProperty -Path ‘HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search’ -Name ‘AllowCortana’ -PropertyType DWORD -Value ‘0’

Was this helpful?

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.