В итоге использую VBS скрипт с таким кодом:
Option Explicit
Dim oFSO, oDesk, oSINK, oWMI, FName, Pr
'——— Вводные ———————————————————————————————————
Const iPath = "G:\Мой диск\Печать", Ext = ".xls"
'———————————————————————————————————————————————
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oDesk = CreateObject("Shell.Application").NameSpace(0)
Set oSINK = WSH.CreateObject("WbemScripting.SWbemSink", "SINK_")
Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
oWMI.ExecNotificationQueryAsync oSINK, "SELECT TargetInstance.PartComponent FROM __InstanceCreationEvent" &_
" WITHIN 2 WHERE Targetinstance ISA 'CIM_DirectoryContainsFile' and TargetInstance.GroupComponent=" &_
"'Win32_Directory.Name=""" & Replace(iPath, "\", "\\\\") & """'"
Do: WSH.Sleep 8^10 :Loop
Sub SINK_OnObjectReady(oEvent, x)
FName = Replace(Split(oEvent.TargetInstance.PartComponent, """")(1), "\\", "\")
If LCase(Right(FName, 4)) = Ext Then
oDesk.ParseName(FName).InvokeVerb "print"
For Each Pr in oWMI.ExecQuery("SELECT JobCountSinceLastReset FROM Win32_Printer WHERE Default='True'")
While Pr.JobCountSinceLastReset: WSH.Sleep 200: Wend
Next
oFSO.DeleteFile FName, 1
End If
End Sub
Единственный минус - один-два раза в день скрипт прекращает работу и приходится его запускать заново.