m-jelinski
Goto Top

VBS Skript für Signaturverteilung zeigt Fehlermeldung wenn kein Word installiert ist

Hallo zusammen,

ich habe ein VBS Skript, welches eine HTML Signatur für unsere Benutzer erstellt und dafür Variablen aus dem Active Directory nutzt. Das Skript wird per GPO beim Systemstart ausgeführt und funktioniert auf den Rechner super, auf denen MS Office installiert ist. Auf den Rechnern, welche kein Office haben, bringt es allerdings eine hässliche Fehlermeldung, die der Benutzer weg klicken muss. Kann ich diese Meldung unterbinden?

Hier der Part, welcher die Fehlermeldung hervorruft:

if not DevMode then
        'Set the signature as default for new and reply  
	Set objWord = CreateObject("Word.Application")  
	Set objSignatureObjects = objWord.EmailOptions.EmailSignature
	objSignatureObjects.NewMessageSignature = sUserName
	objSignatureObjects.ReplyMessageSignature = sUserName
	objWord.Quit
End If

Vielen Dank im Voraus!

Content-ID: 940649186

Url: https://administrator.de/contentid/940649186

Ausgedruckt am: 05.11.2024 um 21:11 Uhr

MrCount
MrCount 08.07.2021 um 09:43:03 Uhr
Goto Top
Servus,

wie wäre es mit einem

try
...
catch
...
?
emeriks
emeriks 08.07.2021 aktualisiert um 09:48:00 Uhr
Goto Top
Zitat von @MrCount:
try
> ...
> catch
> ...

VBscript kennt kein Try-Catch
emeriks
Lösung emeriks 08.07.2021 aktualisiert um 09:48:31 Uhr
Goto Top
Hi,
@m-jelinski
In Zeile 1 ein
On Error Resume Next

E.
MrCount
MrCount 08.07.2021 um 10:57:06 Uhr
Goto Top
Zitat von @emeriks:

VBscript kennt kein Try-Catch

Oh, hatte VBA gelesen. Mein Fehler... ^^
emeriks
emeriks 08.07.2021 um 11:07:23 Uhr
Goto Top
Zitat von @MrCount:
Oh, hatte VBA gelesen. Mein Fehler... ^^
Auch VBA kann kein Try-Catch. face-wink
MrCount
MrCount 08.07.2021 um 11:41:28 Uhr
Goto Top
Ist schon Freitag? face-big-smile
VB.... ohne S und ohne A ^^

Das kommt dabei raus, wenn man dauernd zwischen VB, VBA, Powershell und evtl. noch C++ switchen muss face-confused
em-pie
em-pie 08.07.2021 um 21:01:42 Uhr
Goto Top
Moin,

Zitat von @emeriks:

Hi,
@m-jelinski
In Zeile 1 ein
> On Error Resume Next
> 

E.

Oder im Vorfeld einfach mit
 if not exists "c:\Programme\Office\blabliblubb" exit   
prüfen, ob eine bestimmte Office vorhanden ist

Alternativ, mit einer VBS-Funktion arbeiten:
' Enforce variable declaration  
Option Explicit 

' Declare objects  
Dim oShell
Dim sOSVersion
Dim lOfficeVersion

Set oShell = CreateObject("WScript.Shell")  

On Error Resume Next
' Read the registry for the operating system version  
sOSVersion = oShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName")  
lOfficeVersion = GetOfficeVersionNumber() ' Read the office version from the function  
'MsgBox "sOSVersion = " & sOSVersion & vbCrLf & "lOfficeVersion = " & lOfficeVersion  

    Function GetOfficeVersionNumber()
        GetOfficeVersionNumber = ""  ' or you could use "Office not installed"  
        Dim sTempValue
        ' Read the Classes Root registry hive (it is a memory-only instance amalgamation of HKCU\Software\Classes and HKLM\Software\Classes registry keys) as it contains a source of information for the currently active Microsoft Office Excel application major version - it's quicker and easier to read the registry than the file version information after a location lookup). The trailing backslash on the line denotes that the @ or default registry key value is being queried.  
        sTempValue = oShell.RegRead("HKCR\Excel.Application\CurVer\")  

        ' Check the length of the value found and if greater than 2 digits then read the last two digits for the major Office version value  
        If Len(sTempValue) > 2 Then GetOfficeVersionNumber = Replace(Right(sTempValue, 2), ".", "")   
     ' GetOfficeVersionNumber  
    End Function   
Quelle: https://stackoverflow.com/questions/13693490/vbs-or-bat-determine-os-and ...

Gruß
em-pie
m-jelinski
m-jelinski 09.07.2021 um 09:27:53 Uhr
Goto Top
Hat funktioniert. Vielen Dank!
m-jelinski
m-jelinski 09.07.2021 um 09:28:19 Uhr
Goto Top
Danke face-smile