Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Nur wenn Office installiert Autosignatur ausführen

Frage Entwicklung VB for Applications

Mitglied: fluluk

fluluk (Level 1) - Jetzt verbinden

09.07.2013 um 21:16 Uhr, 1324 Aufrufe, 4 Kommentare

Hallo,

ich versuche habe in VBS ein Programm, welches mir eine Autosignatur für Outlook erstellt. Das ganze funktioniert gut, allerdings würde ich dieses gerne in die Gruppenrichtlinien aufnehmen. Da es in unserem Unternehmen jedoch einige PCs gibt, die kein Office installiert haben, liefert mir das Skript einen Fehler.

Das ganze möchte ich gerne für 32 und 64 Bit Clients umgehen.

Nur für 32 Bit habe ich etwas im Internet gefunden:
01.
dim bExists 
02.
ssig="Unable to open registry key" 
03.
 
04.
set wshShell= Wscript.CreateObject("WScript.Shell") 
05.
strKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office" 
06.
on error resume next 
07.
present = WshShell.RegRead(strKey) 
08.
if err.number<>0 then 
09.
    if right(strKey,1)="\" then 
10.
        if instr(1,err.description,ssig,1)<>0 then 
11.
            bExists=true 
12.
        else 
13.
            bExists=false 
14.
        end if 
15.
    else 
16.
        bExists=false 
17.
    end if 
18.
    err.clear 
19.
else 
20.
    bExists=true 
21.
end if 
22.
on error goto 0 
23.
if bExists=vbFalse then 
24.
 
25.
else 
26.
----SIGNATUR---- 
27.
end if
da die Einträge unter 64Bit in der Registry noch unter Wow6432Node stehen, funktioniert das so nicht.
was muss ich einfügen, dass es auch unter 64-Bit Systemen erkannt wird?
ich habe mich schon mit OR daran gewagt aber so ganz funktioniert das nicht wie ich das will.

Es kann auch gerne ein komplett anderer Code sein der funktioniert.

Danke.
Mitglied: 76109
10.07.2013 um 08:04 Uhr
Hallo fluluk!

Versuchs mal damit:
01.
Option Explicit 
02.
 
03.
'Backslash am Ende beachten 
04.
Const sReg32Key = "HKLM\Software\Microsoft\Office\" 
05.
Const sReg64Key = "HKLM\Software\Wow6432Node\Microsoft\Office\" 
06.
 
07.
Dim sOffice32, sOffice64 
08.
     
09.
On Error Resume Next 
10.
With CreateObject("WScript.Shell") 
11.
    sOffice32 = .RegRead(sReg32Key) 
12.
    sOffice64 = .RegRead(sReg64Key) 
13.
     
14.
    If IsEmpty(sOffice32) And IsEmpty(sOffice64) Then 
15.
        MsgBox "Office nicht installiert" 
16.
    Else 
17.
        MsgBox "Office installiert" 
18.
    End If 
19.
End With 
20.
On error Goto 0
Gruß Dieter
Bitte warten ..
Mitglied: fluluk
10.07.2013 um 10:07 Uhr
ja, so wird Office schonmal erkannt, wenn ich nun allerdings die MsgBox durch mein Skript ersetze, wird es nicht ausgeführt

01.
Option Explicit 
02.
 
03.
'Backslash am Ende beachten 
04.
Const sReg32Key = "HKLM\Software\Microsoft\Office\" 
05.
Const sReg64Key = "HKLM\Software\Wow6432Node\Microsoft\Office\" 
06.
 
07.
Dim sOffice32, sOffice64 
08.
     
09.
On Error Resume Next 
10.
With CreateObject("WScript.Shell") 
11.
    sOffice32 = .RegRead(sReg32Key) 
12.
    sOffice64 = .RegRead(sReg64Key) 
13.
     
14.
    If IsEmpty(sOffice32) And IsEmpty(sOffice64) Then 
15.
        MsgBox "Office nicht installiert" 
16.
    Else 
17.
		On Error Resume Next 
18.
		Set objSysInfo = CreateObject("ADSystemInfo") 
19.
 
20.
		Set WshShell = CreateObject("WScript.Shell") 
21.
 
22.
		strUser = objSysInfo.UserName 
23.
		Set objUser = GetObject("LDAP://" & strUser) 
24.
 
25.
		strName = objUser.FirstName & " " & objUser.LastName 
26.
		strTitle = objUser.Title 
27.
		strDepa = objUser.Department 
28.
		strCred = objUser.info 
29.
		strCompany = objUser.Company 
30.
		strStreet = objUser.StreetAddress 
31.
		strLocation = objUser.l 
32.
		strPostCode = objUser.PostalCode 
33.
		strPhone = objUser.TelephoneNumber 
34.
		strMobile = objUser.Mobile 
35.
		strFax = objUser.FacsimileTelephoneNumber 
36.
		strEmail = "mailto:" & objUser.mail 
37.
		strEmail2 = objUser.mail 
38.
		strHP = objUser.HomePage 
39.
		  
40.
 
41.
 
42.
 
43.
 
44.
		Set objWord = CreateObject("Word.Application") 
45.
 
46.
		Set objDoc = objWord.Documents.Add() 
47.
		Set objSelection = objWord.Selection 
48.
 
49.
		Set objEmailOptions = objWord.EmailOptions 
50.
		Set objSignatureObject = objEmailOptions.EmailSignature 
51.
 
52.
		Set objSignatureEntries = objSignatureObject.EmailSignatureEntries 
53.
	  
54.
55.
56.
57.
 
58.
 
59.
		Set objSelection = objDoc.Range() 
60.
 
61.
		objSignatureEntries.Add "complete Signature", objSelection 
62.
		objSignatureObject.NewMessageSignature = "complete Signature" 
63.
 
64.
		objDoc.Saved = True 
65.
		objWord.Quit 
66.
 
67.
		Set objWord = CreateObject("Word.Application") 
68.
 
69.
		Set objDoc = objWord.Documents.Add() 
70.
		Set objSelection = objWord.Selection 
71.
 
72.
		Set objEmailOptions = objWord.EmailOptions 
73.
		Set objSignatureObject = objEmailOptions.EmailSignature 
74.
 
75.
		Set objSignatureEntries = objSignatureObject.EmailSignatureEntries 
76.
 
77.
78.
79.
80.
 
81.
 
82.
		Set objSelection = objDoc.Range() 
83.
 
84.
		objSignatureEntries.Add "Reply Signature", objSelection 
85.
		objSignatureObject.ReplyMessageSignature = "Reply Signature" 
86.
 
87.
		objDoc.Saved = True 
88.
		objWord.Quit 
89.
 
90.
    End If 
91.
End With 
92.
On error Goto 0
Bitte warten ..
Mitglied: 76109
10.07.2013 um 13:36 Uhr
Hallo fluluk!

Der Fehler liegt wohl in erster Linie daran, dass am Code-Anfang 'Option Explicit' steht und Du keine Variablen per Dim deklariert hast. Also entweder die erste Codezeile entfernen oder die Variablen deklarieren...

Ansonsten würde ich es eher so machen:
01.
Option Explicit 
02.
 
03.
'Backslash am Ende beachten 
04.
Const sReg32Key = "HKLM\Software\Microsoft\Office\" 
05.
Const sReg64Key = "HKLM\Software\Wow6432Node\Microsoft\Office\" 
06.
 
07.
Dim objShell, strOffice32, strOffice64 
08.
     
09.
On Error Resume Next 
10.
 
11.
Set objShell = CreateObject("WScript.Shell") 
12.
 
13.
With objShell 
14.
    strOffice32 = .RegRead(sReg32Key) 
15.
    strOffice64 = .RegRead(sReg64Key) 
16.
End With 
17.
     
18.
If IsEmpty(strOffice32) And IsEmpty(strOffice64) Then 
19.
    MsgBox "Office nicht installiert":  WScript.Quit 1 
20.
End If 
21.
         
22.
Err.Clear 
23.
 
24.
Set objSysInfo = CreateObject("ADSystemInfo") 
25.
 
26.
strUser = objSysInfo.UserName 
27.
Set objUser = GetObject("LDAP://" & strUser) 
28.
 
29.
strName = objUser.FirstName & " " & objUser.LastName 
30.
strTitle = objUser.Title 
31.
strDepa = objUser.Department 
32.
strCred = objUser.info 
33.
strCompany = objUser.Company 
34.
strStreet = objUser.StreetAddress 
35.
strLocation = objUser.l 
36.
strPostCode = objUser.PostalCode 
37.
strPhone = objUser.TelephoneNumber 
38.
strMobile = objUser.Mobile 
39.
strFax = objUser.FacsimileTelephoneNumber 
40.
strEmail = "mailto:" & objUser.mail 
41.
strEmail2 = objUser.mail 
42.
strHP = objUser.HomePage 
43.
          
44.
Set objWord = CreateObject("Word.Application") 
45.
Set objDoc = objWord.Documents.Add() 
46.
         
47.
Set objSelection = objWord.Selection 
48.
 
49.
Set objEmailOptions = objWord.EmailOptions 
50.
Set objSignatureObject = objEmailOptions.EmailSignature 
51.
 
52.
Set objSignatureEntries = objSignatureObject.EmailSignatureEntries 
53.
54.
55.
56.
Set objSelection = objDoc.Range() 
57.
 
58.
objSignatureEntries.Add "complete Signature", objSelection 
59.
objSignatureObject.NewMessageSignature = "complete Signature" 
60.
 
61.
objDoc.Saved = True 
62.
objWord.Quit 
63.
 
64.
Set objWord = CreateObject("Word.Application") 
65.
 
66.
Set objDoc = objWord.Documents.Add() 
67.
Set objSelection = objWord.Selection 
68.
 
69.
Set objEmailOptions = objWord.EmailOptions 
70.
Set objSignatureObject = objEmailOptions.EmailSignature 
71.
 
72.
Set objSignatureEntries = objSignatureObject.EmailSignatureEntries 
73.
74.
75.
76.
Set objSelection = objDoc.Range() 
77.
 
78.
objSignatureEntries.Add "Reply Signature", objSelection 
79.
objSignatureObject.ReplyMessageSignature = "Reply Signature" 
80.
 
81.
objDoc.Saved = True 
82.
objWord.Quit 
83.
 
84.
If Err.Number Then 
85.
    MsgBox "Fehler beim Erstellen der Email-Signaturen ":  WScript.Quit 1 
86.
End If 
87.
 
88.
WScript.Quit 0
Gruß Dieter
Bitte warten ..
Mitglied: fluluk
10.07.2013 um 14:37 Uhr
ach, vielen Dank, so funktionierts.

Gruß Lukas
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst Office Deployment Tool mit einer Batchdatei per GPO Shutdown Skript ausführen (3)

Frage von McBainHH zum Thema Batch & Shell ...

Windows Server
gelöst Gruppenrichtlinien-Vorlage Office 2013 auf einem DC 2003 (5)

Frage von bluepython zum Thema Windows Server ...

Microsoft Office
Vorlagenpfad wird nicht übernommen Office 2013 (3)

Frage von Leo-le zum Thema Microsoft Office ...

Microsoft Office
gelöst Office 365 Visio 2016 bzw. Project 2016 Deinstallieren (3)

Frage von Bommi1961 zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...