Stiskněte "Enter" pro přeskočení obsahu

Když Microsoft posere MSMQ: problém s prosincovým update pro Windows Server

ToŠ 0

Prosincový update Windows Serverů 2016 a 2019 pro rok 2025 způsobil problém, který potrápil mnoho systémů využívajících MSMQ (Microsoft Message Queuing). Tento problém se projevil zejména u aplikací závislých na frontě zpráv, například u tiskových terminálů EPU/Epson.

Co se stalo

  • Windows Server 2019 + KB5071544
  • Windows Server 2016 + KB5071543

Po instalaci updatu aplikace běžící pod IIS_IUSRS, LocalService nebo NetworkService již nemohly zapisovat do složky C:\Windows\System32\msmq. Následkem toho:

  • Diagnostika MSMQ hlásila, že vše funguje
  • Čtečky karet fungovaly správně
  • Server byl online
  • Ale po přiložení karty EPU nereagovalo

Jednoduše řečeno: hardware i software fungoval, ale MSMQ přestalo zpracovávat zprávy.

Proč k tomu došlo

Update změnil NTFS ACL (security descriptor) složky MSMQ a přidal AI flag (Auto-Inherited), čímž služby ztratily práva, která dříve měly. V grafickém rozhraní Windows tato změna není patrná, ale funkčně znamená, že služby nemají přístup.

Řešení

1. Odinstalace problematického updatu

Nejjednodušší způsob, jak problém vyřešit, je odinstalace updatu:

wusa /uninstall /kb:5071543   (Windows Server 2016)
wusa /uninstall /kb:5071544   (Windows Server 2019)

Po odinstalaci restartujte server. MSMQ by mělo být opět funkční a aplikace budou správně zpracovávat zprávy z čteček karet.

2. Ruční oprava ACL

Pokud není možné update odinstalovat, lze opravit oprávnění složky ručně:

takeown /F C:\Windows\System32\msmq /R /D Y

icacls C:\Windows\System32\msmq /grant IIS_IUSRS:(OI)(CI)F
icacls C:\Windows\System32\msmq /grant "LOCAL SERVICE":(OI)(CI)F
icacls C:\Windows\System32\msmq /grant "NETWORK SERVICE":(OI)(CI)F

Následně restartujte MSMQ službu a služby aplikace EPU. Pozor, příští aktualizace může ACL opět přepsat, proto je vhodné využít scheduled task, který ACL obnoví při startu systému.

3. Použití LocalSystem

Jako nouzové řešení lze spustit službu pod účtem LocalSystem, což obejde problém s ACL. Toto řešení je však méně bezpečné a mělo by být použito pouze dočasně.

4. Bonus: záloha a obnova uživatelských práv

Pro jistotu lze před úpravami ACL provést zálohu a později obnovit původní oprávnění:

:: Záloha ACL
icacls C:\Windows\System32\msmq /save msmq_acl_backup.txt /t

:: Obnova ACL ze zálohy
icacls C:\Windows\System32\msmq /restore msmq_acl_backup.txt

Tento postup umožňuje rychle vrátit předchozí stav práv bez nutnosti ručně nastavovat všechna oprávnění.

Shrnutí

  • Problém nebyl na straně EPU ani čtečky karet.
  • Příčinou je změna ACL složky MSMQ po prosincovém updatu.
  • Odinstalace updatu nebo oprava ACL obnovuje plnou funkčnost.

Pro administrátory, kteří čelí podobnému problému, je toto nejrychlejší a nejefektivnější řešení. Sledujte oficiální aktualizace Microsoftu, protože opravný patch je očekáván až v budoucích verzích.

Napsat komentář