Чтение файла с использованием VBScript на терминальном сервере - PullRequest
0 голосов
/ 12 февраля 2019

Поднимается как новый пост в соответствии с запросом.

Этот скрипт выполняет именно то, что я хочу на локальном ПК: добавляет текстовый файл, помещает его в текстовое поле для подтверждения, после подтверждения добавляет текст втема письма.Но когда тот же скрипт запускается терминальным сервером, он не может найти файл.Любая идея, почему он не может увидеть файл и почему это не будет работать на терминальном сервере?

Как я уже говорил, все локальные установки Outlook работают нормально, он может найти файл email.txt, но на терминальном сервереЭто не.Я подтвердил, что файл находится в этом месте.

    Const ForReading = 1, ForWriting = 2
    Dim fso, f
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.OpenTextFile(Environ("USERPROFILE") & "\temp\email.txt")
    ReadAllTextFile = f.ReadAll
End Function

Public Sub UpdateSubject()
    Dim SaveCode As String
    Dim KeyWord As String
    Dim objItem As MailItem

    KeyWord = "ABD"

    SaveCode = InputBox("Please enter filecode in the format nnn/nnn", "VisualFiles Auto Save", ReadAllTextFile)
    MsgBox SaveCode
    Set objItem = GetCurrentItem()
    objItem.Subject = "[" + KeyWord + "=" + SaveCode + "] " + objItem.Subject
End Sub

Function GetCurrentItem() As Object
    Dim objApp As Outlook.Application

    Set objApp = Application
    On Error Resume Next
    Select Case TypeName(objApp.ActiveWindow)
        Case "Explorer"
            Set GetCurrentItem = objApp.ActiveExplorer.Selection.Item(1)
        Case "Inspector"
            Set GetCurrentItem = objApp.ActiveInspector.CurrentItem
    End Select
    Set objApp = Nothing
End Function

Если я сообщу о местоположении, как показано ниже, это даст мне правильное местоположение, например C:\users\bobby\temp\email.txt.

MsgBox (Environ("USERPROFILE") & "\temp\email.txt")

1 Ответ

0 голосов
/ 13 февраля 2019

Хорошо, новость для вас - причина того, что код VBA не будет работать на сервере терминалов, заключалась в том, что на терминале не была установлена ​​следующая DLL-библиотека

C: \ Program Files (x86) \ Microsoft Office \ Office14\ OUTLVBS.DLL

Исправить это было так же просто, как скопировать с рабочего компьютера в то же место на терминальном сервере.перезагрузите сервер.Так что скрипт отлично работает

...