Share via

Auto Rotate after 24H2 update

Anonymous
2024-10-15T15:05:55+00:00

We have found that after the Windows 24H2 update, our laptops are now rotating by themselves without changing the position of the computer. Has this been noticed by others? Why would it change that on some of the computers and others not? I've heard that you can fix it by turning on the "lock rotation," and that fixes it, but I have also heard that it undoes that on others after you turn it on.

Windows for home | Windows 11 | Windows update

Locked Question. This question was migrated from the Microsoft Support Community. You can vote on whether it's helpful, but you can't add comments or replies or follow the question.

0 comments No comments

Answer accepted by question author

  1. Anonymous
    2024-11-07T15:05:30+00:00

    Hello,

    I ordered a Dell Latitude 5550 for a high up in our company. The laptop works fine except for this auto-rotate issue. I had time to do testing on the laptop and whenever the vp would dock the laptop, it would activate the two external screens and then rotate the internal laptop display 90 degrees into portrait mode. When they un-docked it would stay in portrait mode. I also noticed when I didn't dock it and it was in landscape, if I picked up the laptop and turned the laptop in my hand, the screen would auto flip to portrait mode and then if I turned it back to the normal laptop position it would still stay in portrait mode.

    As far as I know this is not a touch screen nor does it have a detachable keyboard or a way to flip the keyboard out of position.

    I tried turning off auto rotation and it would still flip. Also, the crtl+alt+arrow key would not flip the screen position. This made it very difficult to do the temp fixes.

    I finally did some registry edits to disable the sensor, force landscape, and disable auto rotate.

    Here are the steps I took to do this work around. Not sure if this is a Dell or Windows issue but it needs fixed. I did test this workaround. I restarted the laptop and did dock and un-docks and tried turning the laptop and the screen never rotated. I did this under the admin account and then had the vp login and confirm they wouldn't have any issues. So far it works fine, and I haven't had any complaints.

    1. Check Sensor Settings:
    • Open the Registry Editor (Windows + R, type regedit).
    • Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AutoRotation.
    • Ensure the Enable DWORD is set to 1.
    • Set the LastOrientation DWORD to 1 for portrait mode.
    • Set the SensorPresent DWORD to 1.
    1. Restart Display Policy Service:
    • Press Ctrl + Shift + Esc to open Task Manager.
    • Go to the Services tab and find DispBrokerDesktopSvc.
    • Right-click and select Restart.
    1. Disable Sensor Monitoring:
    • Open the Registry Editor and navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SensorService.
    • Set the Start DWORD to 4 to disable the sensor service.
    10+ people found this answer helpful.
    0 comments No comments

Answer accepted by question author

  1. Anonymous
    2024-11-12T10:28:40+00:00

    Thanks Christopher, this was really helpful.

    There's an even easier fix available, if you only require on a per device basis:

    • Open Device Manager
    • Sensors
    • Disable HID Sensor Collection V2
      • There are x2 sensors shown, you need to disable the top one - in my case (Latitude 5540) the GUID is "HID\VID_8087&PID_0AC2\6&24C9641&0&0000"

    If you need to push this out via Intune, the following scripts essentially automate the steps in above post (thanks again):

    Detection

    # Define the registry path and property

    $sensorServicePath = "HKLM:\SYSTEM\CurrentControlSet\Services\SensorService"

    $dwordName = "Start"

    # Check if the "Start" DWORD exists and is set to 4

    try {

    *$startValue = Get-ItemProperty -Path $sensorServicePath -Name $dwordName -ErrorAction Stop* 
    
    *if ($startValue.$dwordName -eq 4) {* 
    
        *# If "Start" is set to 4, exit with code 0 (no changes required)* 
    
        *Write-Output "No changes required. 'Start' is already set to 4."* 
    
        *exit 0* 
    
    *} else {* 
    
        *# If "Start" exists but is not set to 4, exit with code 1 (trigger remediation)* 
    
        *Write-Output "'Start' exists but is not set to 4. Proceeding to remediation."* 
    
        *exit 1* 
    
    *}* 
    

    } catch {

    *# If "Start" does not exist, exit with code 1 (trigger remediation)* 
    
    *Write-Output "'Start' does not exist. Proceeding to remediation."* 
    
    *exit 1* 
    

    }

    Remediation

    # Define registry paths

    $autoRotationPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AutoRotation"

    $sensorServicePath = "HKLM:\SYSTEM\CurrentControlSet\Services\SensorService"

    # Set registry values for AutoRotation

    Set-ItemProperty -Path $autoRotationPath -Name "Enable" -Value 1 -Type DWORD

    Set-ItemProperty -Path $autoRotationPath -Name "LastOrientation" -Value 1 -Type DWORD

    Set-ItemProperty -Path $autoRotationPath -Name "SensorPresent" -Value 1 -Type DWORD

    # Set registry value for SensorService

    Set-ItemProperty -Path $sensorServicePath -Name "Start" -Value 4 -Type DWORD

    Write-Output "Registry settings have been updated."

    # Exit PowerShell

    exit

    8 people found this answer helpful.
    0 comments No comments

13 additional answers

Sort by: Most helpful
  1. Anonymous
    2024-11-06T19:00:28+00:00

    We have had three or four computers do this. All Dell computers. One person said she closed the lid and then opened it up and it was rotated.

    We turn on Screen Lock, change the orientation back to normal and it seems to "stick" so far. I would love a way to push out a fix to force it via intune.

    3 people found this answer helpful.
    0 comments No comments
  2. Anonymous
    2024-10-16T05:16:59+00:00

    Hi, Ben Henker

    Welcome to the Microsoft Community.

    Thank you for your feedback. It sounds like you are experiencing an issue with your laptop automatically rotating after the Windows 24H2 update. This can indeed happen on some devices and is usually related to the sensors or settings of the device. Here are some of the possible causes:

    Possible causes

    Update impact: Windows updates may reset certain settings or affect the proper functioning of sensors.

    Hardware differences: devices of different models or brands may differ in hardware, causing some devices to be affected while others are not.

    If this issue is widespread, you can report the problem through Windows' Feedback Center or by pressing Win+F to help Microsoft identify and fix the bug.

    If the problem is very severe, rolling back to a pre-update version can also be considered, but this is only a temporary solution.

    I look forward to your feedback.

    Best Regards,

    Aaron| Microsoft Community Support Specialist

    3 people found this answer helpful.
    0 comments No comments
  3. Anonymous
    2025-01-13T11:14:55+00:00

    The device IDs are different depending on the model. Here are all the ones I've found:

    Detection:

    # Define the list of device IDs

    $deviceIds = @(

    *# Latitude 5420* 
    
    *"HID\VID\_8087&PID\_0AC2\6&23AA226A&0&0000", # Latitude 5420* 
    
    *# Latitude 5440* 
    
    *"HID\VID\_8087&PID\_0AC2\6&DEDACA2&0&0000", # Latitude 5440* 
    
    *"HID\VID\_8087&PID\_0AC2\6&24C9641&0&0000", # Latitude 5440* 
    
    *"HID\VID\_8087&PID\_0AC2\6&3334AEBF&0&0000", # Latitude 5440* 
    
    *"HID\VID\_8087&PID\_0AC2\6&280D181D&0&0000", # Latitude 5440* 
    
    *"HID\VID\_8087&PID\_0AC2\6&15536778&0&0000", # Latitude 5440* 
    
    *# Latitude 5520* 
    
    *"HID\VID\_8087&PID\_0AC2\6&313AFAFE&0&0000", # Latitude 5520* 
    
    *"HID\VID\_8087&PID\_0AC2\6&1E814A59&0&0000", # Latitude 5520* 
    
    *"HID\VID\_8087&PID\_0AC2\6&859E19C&0&0000", # Latitude 5520* 
    
    *# Latitude 5530* 
    
    *"HID\VID\_8087&PID\_0AC2\6&27E369EF&0&0000", # Latitude 5530* 
    
    *"HID\VID\_8087&PID\_0AC2\6&27008A5&0&0000", # Latitude 5530* 
    
    *"HID\VID\_8087&PID\_0AC2\6&1529B94A&0&0000", # Latitude 5530* 
    
    *# Latitude 5540* 
    
    *"HID\VID\_8087&PID\_0AC2\6&24C9641&0&0000", # Latitude 5540* 
    
    *"HID\VID\_8087&PID\_0AC2\6&150646E6&0&0000", # Latitude 5540* 
    
    *"HID\VID\_8087&PID\_0AC2\6&DEDACA2&0&0000"  # Latitude 5540* 
    
    *"HID\VID\_8087&PID\_0AC2\6&280D181D&0&0000"  # Latitude 5540* 
    
    *"HID\VID\_8087&PID\_0AC2\6&15536778&0&0000"  # Latitude 5540* 
    

    )

    # Flag to determine if we found any enabled device

    $foundEnabledDevice = $false

    # Iterate over each device ID and check its status

    foreach ($deviceId in $deviceIds) {

    *try {* 
    
        *$device = Get-PnpDevice -InstanceId $deviceId -ErrorAction Stop* 
    
        *if ($device) {* 
    
            *if ($device.Status -eq "OK") {* 
    
                *# Device is enabled, proceed to remediation* 
    
                *Write-Host "Device with ID $deviceId is enabled. Proceeding to remediation."* 
    
                *$foundEnabledDevice = $true* 
    
                *break  # Exit loop after first enabled device* 
    
            *} else {* 
    
                *Write-Host "Device with ID $deviceId is disabled. No action needed."* 
    
            *}* 
    
        *}* 
    
    *} catch {* 
    
        *# Handle the case where the device is not found or cannot be accessed* 
    
        *Write-Host "Device with ID $deviceId not found or could not be accessed."* 
    
    *}* 
    

    }

    # If an enabled device was found, exit with code 1 to indicate remediation

    if ($foundEnabledDevice) {

    *exit 1  # Indicate success for remediation* 
    

    }

    # If no enabled devices are found, exit with code 0

    Write-Host "No enabled devices found. Exiting."

    exit 0

    Remediation

    # Define the list of device IDs

    $deviceIds = @(

    *# Latitude 5420* 
    
    *"HID\VID\_8087&PID\_0AC2\6&23AA226A&0&0000", # Latitude 5420* 
    
    *# Latitude 5440* 
    
    *"HID\VID\_8087&PID\_0AC2\6&DEDACA2&0&0000", # Latitude 5440* 
    
    *"HID\VID\_8087&PID\_0AC2\6&24C9641&0&0000", # Latitude 5440* 
    
    *"HID\VID\_8087&PID\_0AC2\6&3334AEBF&0&0000", # Latitude 5440* 
    
    *# Latitude 5520* 
    
    *"HID\VID\_8087&PID\_0AC2\6&313AFAFE&0&0000", # Latitude 5520* 
    
    *"HID\VID\_8087&PID\_0AC2\6&1E814A59&0&0000", # Latitude 5520* 
    
    *"HID\VID\_8087&PID\_0AC2\6&859E19C&0&0000", # Latitude 5520* 
    
    *# Latitude 5530* 
    
    *"HID\VID\_8087&PID\_0AC2\6&27E369EF&0&0000", # Latitude 5530* 
    
    *"HID\VID\_8087&PID\_0AC2\6&27008A5&0&0000", # Latitude 5530* 
    
    *"HID\VID\_8087&PID\_0AC2\6&1529B94A&0&0000", # Latitude 5530* 
    
    *# Latitude 5540* 
    
    *"HID\VID\_8087&PID\_0AC2\6&24C9641&0&0000", # Latitude 5540* 
    
    *"HID\VID\_8087&PID\_0AC2\6&150646E6&0&0000", # Latitude 5540* 
    
    *"HID\VID\_8087&PID\_0AC2\6&DEDACA2&0&0000"  # Latitude 5540* 
    
    *"HID\VID\_8087&PID\_0AC2\6&280D181D&0&0000"  # Latitude 5540* 
    
    *"HID\VID\_8087&PID\_0AC2\6&15536778&0&0000"  # Latitude 5540* 
    

    )

    # Iterate over each device ID and disable it if it exists

    foreach ($deviceId in $deviceIds) {

    *# Get the device* 
    
    *$device = Get-PnpDevice -InstanceId $deviceId -ErrorAction SilentlyContinue* 
    
    *if ($device) {* 
    
        *# Disable the device* 
    
        *Write-Host "Disabling device with ID $deviceId."* 
    
        *Disable-PnpDevice -InstanceId $deviceId -Confirm:$false* 
    
    *} else {* 
    
        *Write-Host "Device with ID $deviceId not found. No action taken."* 
    
    *}* 
    

    }

    # Exit with code 0 indicating successful remediation

    exit 0

    1 person found this answer helpful.
    0 comments No comments