WinFuture-Forum.de: Vbs Createobject In Abgemeldetem Zustand - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Windows XP
Seite 1 von 1

Vbs Createobject In Abgemeldetem Zustand


#1 Mitglied ist offline   schauan 

  • Gruppe: Mitglieder
  • Beiträge: 2
  • Beigetreten: 12. Juli 10
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 12. Juli 2010 - 06:17

Hallo,

ich muss in abgemeldetem Zustand nachts Excel-Berechnungen per Makro durchführen. Dazu habe ich einen Task erstellt. Da beim Aufruf von Excel per Task nicht direkt ein Makro gestartet werden kann, muss ich das mittels vbs - script tun. Leider funktioniert das nur mit einem Admin-Konto. Ich habe aber dafür maximal einen user mit Hauptbenutzerrechten.
Mittels eines Log-Files habe ich herausgefunden, dass der normale bzw. haupt-user in abgemeldetem Zustand das createobject nicht bekommt.
Wie kann man das mit einem user oder Hauptbenutzer lösen?

Hier ist der code. Den code in eine vbs, z.B. exceltest.vbs, und selbige in einem Task aufrufen, z.B. d:\test\exceltest.vbs. Die log - Ausgabe erfolgt in d:\test.

Dim LF_stamp, lF_Logfile
Const ERR_OK_ = 0

LF_stamp = Now
LF_Info "Start"

Set oExcel = CreateObject("Excel.Application")
myVers = oExcel.Version

LF_stamp = Now
LF_Info "Version: " & myVers

oexcel.quit

LF_stamp = Now
LF_Info "Ende"

'----------------------------------------------------------------------
Function LF_Info(text)
'--- schreibt eine Zeile in das logfile, dabei wird das File jeweils geöffnet und wieder
'   geschlossen
Dim err_code
  err_code = LF_Open()
  If err_code = ERR_OK_  Then
	'Falls öffnen erfolgreich war, Zeile schreiben und wieder schliessen
	LF_logfile.WriteLine LF_stamp & "+" & Chr(9) & text
	LF_logfile.Close
	Set LF_logfile = Nothing
  End If
  LF_Info = err_code
End Function

'----------------------------------------------------------------------
Function LF_Open()
'--- öffnet das logfile (vor jedem schreiben!), wird nur intern benutzt
Dim FileSystem
Dim err_code, err_count
  OpenFile = "d:\test\test.log"   
  Set FileSystem = CreateObject ("Scripting.FileSystemObject")
  Set LF_logfile = Nothing
	While (LF_logfile is nothing ) and err_count < 5
	' TextFile öffenen, Append , anlegen falls nicht vorhanden)
	Set LF_logfile = FileSystem.OpenTextFile (OpenFile, 8, true)
	If (LF_logfile is nothing ) Then
	  err_count=err_count+1
	Else
	  err_code = ERR_OK_
	End If
  Wend
  LF_Open = err_code
End Function

0

Anzeige



Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0