Användarna kan inte skriva ut när du har installerat ett service pack, samlad uppdatering eller skrivarkorrigering på en Windows-baserad server

Den här artikeln hjälper dig att lösa ett problem där du inte kan skriva ut när du har installerat ett Service Pack eller en snabbkorrigering för skrivare på en server.

Gäller för: Windows Server 2012 R2
Ursprungligt KB-nummer: 832219

Symptom

När du har installerat ett Service Pack, en samlad uppdatering eller en snabbkorrigering som uppdaterar Unidrvui.dll-filen på Windows Server kan användarna uppleva båda följande symptom:

  • När en klient eller server försöker skriva ut verkar utskriftshanteraren sluta svara (eller "hänga") och följande felmeddelande visas:

    Det gick inte att skapa utskriftsjobbet.

  • När du försöker skriva ut en testsida från serverkonsolen visas följande felmeddelande:

    Det gick inte att skriva ut testsidan.

  • Guiderna Lägg till drivrutin eller Lägg till skrivare slutar svara, antingen när du försöker installera drivrutinen med hjälp av Enheter och skrivare eller med hjälp av utskriftshanteringskonsolen.

Orsak

Det här beteendet kan inträffa om du installerar Service Pack eller snabbkorrigeringspaketet på en server som har många Unidrv-baserade skrivardrivrutiner (Printer Control Language).

När du installerar en Service Pack- eller snabbkorrigeringsfil som uppdaterar Unidrvui.dll på en server med många Unidrv-baserade PCL-skrivardrivrutiner kan servern ägna en lång tid (upp till 2 timmar) åt att återskapa de parsade beskrivningsfilerna för binär skrivare (.bud-filer) som används för att öka effektiviteten för spooler för dessa drivrutiner. Under den här tiden kan utskriftshanteraren inte ta emot inkommande utskriftsjobb och kan returnera meddelanden till klienter som anger att utskriftskön är full. Det här är en engångsparsningsåtgärd och inträffar inte när de parsade binära .bud-filerna har återskapats.

Binära .bud-filer som genereras från GPD-filer (Generic Printer Description) måste återskapas eftersom GPD-parsningsfilens version ändras. När alla Unidrv-baserade PCL-drivrutiner parsas kan speditören återigen ta emot utskriftsjobb. Därför rekommenderar Microsoft att du schemalägger service pack- och snabbkorrigeringsinstallationer på servrar med många Unidrv-baserade PCL-skrivardrivrutiner för att hantera den här upp till två timmars .bud-filkompilering.

Åtgärd

Lös problemet genom att schemalägga tillräckligt med tid för att servern ska slutföra parsningen av alla Unidrv-baserade skrivardrivrutiner för varje uppgraderad drivrutinsfil och sedan schemalägga tillräckligt med tid för varje skrivare som använder dessa filer.

Lösning

Viktigt

Det här avsnittet, metoden eller uppgiften innehåller steg som beskriver hur du ändrar registret. Det kan uppstå allvarliga problem om du gör detta felaktigt. Följ därför instruktionerna noga, och säkerhetskopiera registret innan du gör några ändringar i det. Då kan du återställa registret om det uppstår problem. Mer information om hur du säkerhetskopierar och återställer registret finns i Hur du säkerhetskopierar och återställer registret i Windows.

Om du inte kan vänta på att servern ska slutföra parsningen av alla Unidrv-baserade skrivardrivrutiner tar du manuellt bort alla cachelagrade beskrivningsfiler för binära skrivare (.bud-filer) och låter dem sedan återskapas automatiskt. Beroende på serverns hastighet kan den här automatiska återskapandet slutföras på kortare tid. Normalt slutförs den här åtgärden inom 30 minuter.

Obs!

När utskriftshanteraren startar installeras en nyare version av Unidrv.dll. Därför är .bud-filerna inaktuella. .bud-filerna är kompilerade versioner av .ppd-filer och kan återskapas helt från dessa .ppd-filer. Därför kan du ta bort .bud-filerna.

Gör så här:

  1. Stoppa utskriftshanteraren. Det gör du genom att köra följande kommando från en kommandotolk:

    net stop spooler
    
  2. Sök efter alla .bud-filer och se sedan till att de stämplas med aktuell tid och datum. Filerna visas med dagens datum.

  3. Ta bort alla .bud-filer som har en datum- och tidsstämpel som är före dagens datum. Dessa filer finns i följande mapp:

    %SYSTEMROOT%\System32\Spool\Drivers\w32x86\3

  4. Ta bort följande registernyckel om den finns:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\PostSPUpgrade

    Gör så här:

    1. Klicka på Start, klicka på Kör, skriv regedit i rutan Öppna och klicka sedan på OK.

    2. Leta upp och klicka sedan på följande registerundernyckel:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print

    3. Klicka på Exportera registerfilRegister-menyn.

    4. I rutan Filnamn skriver du printkey och klickar sedan på Spara.

      Obs!

      Om du senare måste återställa registernyckeln Skriv ut kan du göra det genom att dubbelklicka på den Printkey.reg fil som du sparade.

    5. Leta upp och klicka sedan på följande registerundernyckel om den finns:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\PostSPUpgrade

    6. redigera-menyn klickar du på Ta bort och sedan på Ja för att bekräfta borttagningen av registernyckeln PostSPUpgrade .

      Obs!

      PostSPUpgrade-registernyckeln kan visas igen när du har startat om datorn. Det här beteendet inträffar om det finns andra .bud-filer som ännu inte har parsats. När dessa filer har parsats tas registernyckeln bort automatiskt.

  5. Starta om servern.

När du har startat om servern är utskriftsfunktionen tillgänglig för användare efter cirka 30 minuter.

Mer information

I .NET Framework 3.0 ingår nu den unidrv.dll filen med XPS-utskrift. Den unidrv.dll filen kan också utlösa det här beteendet.