Welcome Forums General PowerShell Q&A How to Change DelayedAckFrequency's Value

Viewing 7 reply threads
  • Author
    Posts
    • #10905
      Participant
      Topics: 1
      Replies: 3
      Points: 0
      Rank: Member

      Hi I’m trying to change value of DelayedAckFrequency property from Set-NetTCPSetting function. But it gives an error saying the property is Read-Only. how can I change the property’s attributes? Is there a way around it? How can I Fix This problem?

    • #10908
      Member
      Topics: 9
      Replies: 2322
      Points: 0
      Rank: Member

      There’s no DelayedAckFrequency property in the MSFT_NetTCPSetting class that I can see. There is a DelayedAckTimeout property, which you set with the -DelayedAckTimeoutMs parameter to the Set-NetTCPSetting cmdlet:

      Set-NetTCPSetting -DelayedAckTimeoutMs 10 -SettingName Custom
      

      There is a per-interface registry value called “TcpAckFrequency”; see http://support.microsoft.com/kb/328890 . Is that what you are trying to modify?

    • #10926
      Participant
      Topics: 1
      Replies: 3
      Points: 0
      Rank: Member

      Actually I’m using windows 8.1 RTM. I should have mentioned that but I forgot. in this version TcpAckFrequency doesn’t seem to work anymore but instead it’s been added to MSFT_NetTCPSetting class. but the problem is that both DelayedAckTimeoutMs and DelayedAckFrequency are read-only and their values can’t be changed.
      this is what I get with Get-NetTCPSetting :

      `
      SettingName                   : Automatic
      MinRto(ms)                    : 
      InitialCongestionWindow(MSS)  : 
      CongestionProvider            : 
      CwndRestart                   : 
      DelayedAckTimeout(ms)         : 
      DelayedAckFrequency           : 
      MemoryPressureProtection      : 
      AutoTuningLevelLocal          : 
      AutoTuningLevelGroupPolicy    : 
      AutoTuningLevelEffective      : 
      EcnCapability                 : 
      Timestamps                    : 
      InitialRto(ms)                : 
      ScalingHeuristics             : 
      DynamicPortRangeStartPort     : 
      DynamicPortRangeNumberOfPorts : 
      AutomaticUseCustom            : 
      NonSackRttResiliency          : 
      ForceWS                       : 
      MaxSynRetransmissions         : 
      
      SettingName                   : InternetCustom
      MinRto(ms)                    : 300
      InitialCongestionWindow(MSS)  : 4
      CongestionProvider            : CTCP
      CwndRestart                   : False
      DelayedAckTimeout(ms)         : 50
      DelayedAckFrequency           : 2
      MemoryPressureProtection      : Disabled
      AutoTuningLevelLocal          : HighlyRestricted
      AutoTuningLevelGroupPolicy    : NotConfigured
      AutoTuningLevelEffective      : Local
      EcnCapability                 : Enabled
      Timestamps                    : Disabled
      InitialRto(ms)                : 3000
      ScalingHeuristics             : Disabled
      DynamicPortRangeStartPort     : 49152
      DynamicPortRangeNumberOfPorts : 16384
      AutomaticUseCustom            : Disabled
      NonSackRttResiliency          : Enabled
      ForceWS                       : Enabled
      MaxSynRetransmissions         : 2
      
      SettingName                   : DatacenterCustom
      MinRto(ms)                    : 20
      InitialCongestionWindow(MSS)  : 4
      CongestionProvider            : DCTCP
      CwndRestart                   : True
      DelayedAckTimeout(ms)         : 10
      DelayedAckFrequency           : 2
      MemoryPressureProtection      : Disabled
      AutoTuningLevelLocal          : HighlyRestricted
      AutoTuningLevelGroupPolicy    : NotConfigured
      AutoTuningLevelEffective      : Local
      EcnCapability                 : Enabled
      Timestamps                    : Disabled
      InitialRto(ms)                : 3000
      ScalingHeuristics             : Disabled
      DynamicPortRangeStartPort     : 49152
      DynamicPortRangeNumberOfPorts : 16384
      AutomaticUseCustom            : Disabled
      NonSackRttResiliency          : Enabled
      ForceWS                       : Enabled
      MaxSynRetransmissions         : 2
      
      SettingName                   : Compat
      MinRto(ms)                    : 300
      InitialCongestionWindow(MSS)  : 2
      CongestionProvider            : Default
      CwndRestart                   : False
      DelayedAckTimeout(ms)         : 200
      DelayedAckFrequency           : 2
      MemoryPressureProtection      : Disabled
      AutoTuningLevelLocal          : HighlyRestricted
      AutoTuningLevelGroupPolicy    : NotConfigured
      AutoTuningLevelEffective      : Local
      EcnCapability                 : Enabled
      Timestamps                    : Disabled
      InitialRto(ms)                : 3000
      ScalingHeuristics             : Disabled
      DynamicPortRangeStartPort     : 49152
      DynamicPortRangeNumberOfPorts : 16384
      AutomaticUseCustom            : Disabled
      NonSackRttResiliency          : Enabled
      ForceWS                       : Enabled
      MaxSynRetransmissions         : 2
      
      SettingName                   : Datacenter
      MinRto(ms)                    : 20
      InitialCongestionWindow(MSS)  : 4
      CongestionProvider            : DCTCP
      CwndRestart                   : True
      DelayedAckTimeout(ms)         : 10
      DelayedAckFrequency           : 2
      MemoryPressureProtection      : Disabled
      AutoTuningLevelLocal          : HighlyRestricted
      AutoTuningLevelGroupPolicy    : NotConfigured
      AutoTuningLevelEffective      : Local
      EcnCapability                 : Enabled
      Timestamps                    : Disabled
      InitialRto(ms)                : 3000
      ScalingHeuristics             : Disabled
      DynamicPortRangeStartPort     : 49152
      DynamicPortRangeNumberOfPorts : 16384
      AutomaticUseCustom            : Disabled
      NonSackRttResiliency          : Enabled
      ForceWS                       : Enabled
      MaxSynRetransmissions         : 2
      
      SettingName                   : Internet
      MinRto(ms)                    : 300
      InitialCongestionWindow(MSS)  : 4
      CongestionProvider            : CTCP
      CwndRestart                   : False
      DelayedAckTimeout(ms)         : 50
      DelayedAckFrequency           : 2
      MemoryPressureProtection      : Disabled
      AutoTuningLevelLocal          : HighlyRestricted
      AutoTuningLevelGroupPolicy    : NotConfigured
      AutoTuningLevelEffective      : Local
      EcnCapability                 : Enabled
      Timestamps                    : Disabled
      InitialRto(ms)                : 3000
      ScalingHeuristics             : Disabled
      DynamicPortRangeStartPort     : 49152
      DynamicPortRangeNumberOfPorts : 16384
      AutomaticUseCustom            : Disabled
      NonSackRttResiliency          : Enabled
      ForceWS                       : Enabled
      MaxSynRetransmissions         : 2
      `</pre>
      and this is the cmdlet that I should use to change the values:<pre>`

      Set-NetTCPSetting -DelayedAckFrequency 1 -DelayedAckTimeoutMs 10 -SettingName internetcustom`

      Internet and Database Settings are Read-only and I should use InternetCustom Instead. But even in InternetCustom Setting it still doesn’t let me change some properties.


      Set-NetTCPSetting : Property DelayedAckTimeout is read-only
      At line:1 char:1
      + Set-NetTCPSetting -DelayedAckFrequency 1 -DelayedAckTimeoutMs 10 -SettingName in ...
      + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      + CategoryInfo : InvalidArgument: (MSFT_NetTCPSett...ystemName = ""):ROOT/StandardCimv2/MSFT_NetTCPSetting) [Set-NetTCPSetting], CimException
      + FullyQualifiedErrorId : Windows System Error 87,Set-NetTCPSetting

    • #10927
      Member
      Topics: 9
      Replies: 2322
      Points: 0
      Rank: Member

      Ah, I haven’t started using Windows 8.1 yet. In Windows 8 / Server 2012, Set-NetTCPSetting only allows you to change the “Custom” setting; all others are read-only. This may be what you’re running into in Windows 8.1 when you attempt to modify the “InternetCustom” setting, unless they’ve changed that limitation.

    • #10930
      Participant
      Topics: 1
      Replies: 3
      Points: 0
      Rank: Member

      well MSFT_NetTCPSetting is still the same thing. all they’ve done are mostly modifications and limitations. they’ve increased the number of setting names for more scenarios. for example instead of custom we now have internetcustom and Datacentercustom and DatacenterCustom can’t be modified unless windows is installed on a server. but what bugs me is they’ve almost made every property in InternetCustom read-only

      AutomaticUseCustom, CongestionProvider, CwndRestart, InitialCongestionWindow, MemoryPressureProtection, InitialRto, MinRto, DelayedAckTimeout and DelayedAckFrequency are all read-only. what’s funny is people who use Set-NetTCPSetting usually want to change these properties only.

      Is there a way I can modify MSFT_NetTCPSetting Class entirely or add another SettingName and force windows to use it or change a specific property’s read-only attribute?

    • #10950
      Member
      Topics: 9
      Replies: 2322
      Points: 0
      Rank: Member

      Hopefully someone who’s got Windows Server 2012 R2 or Windows 8.1 handy can help out with this. Until I get around to building VMs with those operating systems, I’m really just making guesses.

    • #20614
      Participant
      Topics: 1
      Replies: 3
      Points: 0
      Rank: Member

      hi I’m bringing this topic up again.
      recently I tried to change those properties with Set-wmiInstance and set-CimInstance with no luck. it still doesn’t let you change those values.
      when I used Set-wmiInstance to modify DelayedAckFrequency in MSFT_NetTCPSetting it gave me something like this:

      error: cannot convert property from system.string to system.collections.hashtable

      it gave me the same thing for set-cimInstance with the difference that instead of saying cannot convert from property from system.string to system.collections.hashtable it says:

      cannot convert property from system.string to system.collections.IDictionary

      what does that mean?? I’m not trying to convert anything. I’m just trying to change the value of the property that’s all.
      am I using the wrong commands? if I wanted to change a property that’s written in system.string (whatever that means) what commands should I use?
      has Microsoft written their whole windows in read-only? why aren’t I allowed to change this damn property?? this is so frustrating. I’ve been stuck at this point forever… since windows 7 to 8 to 8.1 and windows 10 is definitely going to be the same a gauntlet of read-only properties.

    • #20615
      Member
      Topics: 9
      Replies: 2322
      Points: 0
      Rank: Member

      You didn’t post the commands that you entered when you got those errors, but best guess is that you’re passing a string value to either the -Arguments parameter (for Set-WmiInstance) or the -Property parameter (for Set-CimInstance). Those parameters take hashtable and IDictionary types, respectively.

Viewing 7 reply threads
  • The topic ‘How to Change DelayedAckFrequency's Value’ is closed to new replies.