Während des Imports von Patches lädt der Patch Management Dienst die Patches herunter und entpackt diese in den temporärer Ordner "SPDTemp". Dieses Verzeichnis liegt standardmäßig im Verzeichnis "%CommonProgramFiles%\enteo", welches über die Infrastruktureinstellung "Directory on the computer for runtime data" (Site Einstellung) konfigurierbar ist.

Gerade in der initialen Phase des Patch Managements werden viele Patches heruntergeladen. Bei sogenannten "Bundled Updates" überprüft der Patch Management Dienst, ob alle Patches heruntergeladen wurden. Fehlen Patches, werden diese erst heruntergeladen und entpackt bis alle Patches zur Verfügung stehen. Dabei wird im Verzeichnis "SPDTemp" ggf. wieder ein temporäres Verzeichnis angelegt und dort die abhängigen Patches entpackt. Ich habe hier schon vier Verschachtelungsebenen gesehen. Erst wenn alle Patches zur Verfügung stehen werden diese importiert und alle rekursiven Verzeichnisse geleert und gelöscht.

Bei einem Kunden kam der Wunsch auf, das "SPDTemp" Verzeichnis auf ein anderes Laufwerk zu verlegen. Schaut man sich die Protokolldatei "PMSync_SYSTEM_#.log" an, findet man dort diese Zeilen:

SiVarSup.dll: Can't resolve variable NiWSUSImportTempDir
PmSync: Created temp directory "C:\Program Files (x86)\Common Files\enteo\SPDTemp\SPDF824.tmp"... 
PmSync: Created temp folder: C:\Program Files (x86)\Common Files\enteo\SPDTemp\SPDF824.tmp 
PmSync: Waiting for the location information

Legt man nun eine Windows Umgebungsvariable (System) oder in der Infrastrukturdatenbank eine benutzerdefinierte Variable mit Namen "NiWSUSImportTempDir" an und setzt diese z.B. auf "D:\SPDTemp", so werden die Patches in diesem Verzeichnis entpackt. In der oben genannten Protokolldatei kann man dieses kontrollieren:

PmSync: Starting 'Patch synchronization'
PmSync: WorkingSetSize: 10.773 MB (Starting task)
PmAdminLib: Created temp directory "D:\SPDTemp\SPD1C60.tmp\SPD1D1C.tmp"...
PmAdminLib: Created temp directory "D:\SPDTemp\SPD1C60.tmp\SPD1D1C.tmp\SPD1D1D.tmp"...
PmAdminLib: Creating new temp folder in parent "D:\SPDTemp\SPD1C60.tmp\SPD1D1C.tmp\SPD1D1D.tmp"...
PmAdminLib: Created temp directory "D:\SPDTemp\SPD1C60.tmp\SPD1D1C.tmp\SPD1D1D.tmp\SPD1D1E.tmp"...
PmAdminLib: Created temp directory "D:\SPDTemp\SPD1C60.tmp\SPD1D1C.tmp\SPD1D2F.tmp"...
PmAdminLib: Caching ScanCab packages
PmAdminLib: Getting the Prerequisites folder

Mit dieser Lösung läßt sich auf einfachem Weg das temporäre Verzeichnis für den Patch Management Dienst verlegen.