niklas89
Goto Top

Error Code 800A0046 beim Ausführen eines VBScripts

Hallo zusammen, ich arbeite gerade an einem VBScript (Anfänger) , welches verschiedene Funktionen beinhaltet. Leider bekomme ich beim Ausführen immer eine Fehlermeldung

Hallo,

ich habe ein VBScript geschrieben, welches mir in folgender Reihenfolge helfen soll:

1. Windowsdienst beenden
2. IIS Applikationsdienst beenden
3.Backup Verzeichnisstruktur
4. Update Verzeichnisstruktur
5. IIS Applikationsdienst starten
6. Windowsdienst starten
7. Logfile speichern

Es erscheint mit jedem Schritt eine Pop-Up-Box und eine Zeile in der Logdatei wird geschrieben.


Ich führe das Script auf einem Windows Server 2008 R2 mit IIS 7 und Administratorrechten aus.

Leider bekomme ich immer eine Fehlermeldung wenn ich das Script starte:

Skript:
C:\User\Administrator\Desktop\NettroUpdate.vbs
Zeile: 40
Zeichen: 1
Fehler: Erlaubnis verweigert: 'GetObject'
Code: 800A0046
Quelle: Laufzeitfehler in Microsoft VBScript


Hier mein Script:

'''''''''''''''''''''''''''''''''''''''''''''''''''  
'Definitionen  
'''''''''''''''''''''''''''''''''''''''''''''''''''  
BackupfolderPath = "c:\"  
Logfilename = "log.txt"  
NetIGPPath = ""  
NewVersionPath = "X:\xxxx"  
Host = "."  
ServiceName = ""  
WebSiteID = "1"  



'Logfile  
Set filesys = CreateObject("Scripting.FileSystemObject")  
Set Logfile = filesys.CreateTextFile(Logfilename, True)

'Stop Service  
Set WMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & Host & "\root\cimv2")  
Set ServiceList = WMIService.ExecQuery( "Select * from Win32_Service Where Name = '" & ServiceName & "'")  

For each Service in ServiceList
    Service.StopService()
Next

Set ServiceList = WMIService.ExecQuery ("Select * from Win32_Service where Name='"& ServiceName &"'")  
For each Service in ServiceList
	If Service.State = "Stopped" Then   
        WScript.Echo "Applikationsdienst beendet"  
		Logfile.WriteLine("Applikationsdienst beendet")  
        Exit for   
    End If 
Next




'Stop AppPool  
Set WebSite = GetObject("IIS://localhost/W3SVC/" & WebSiteID)   
WebSite.Stop() 
Logfile.WriteLine("Webseite beendet")  

Set AppPool = GetObject("IIS://localhost/W3SVC/AppPools/" & WebSite.AppPoolID)   
AppPool.Stop()
WScript.Echo "AppPool beendet"   
Logfile.WriteLine("AppPool beendet")  


'BackupFolder erzeugen  
IGPVersion = filesys.GetFileVersion(NetIGPPath & "\Nettropolis.NetIGP2.Programmzentrale.Dialoge.exe")  
BackupFolder = BackupfolderPath & "NetIP3" & IGPVersion  

If filesys.FolderExists(BackupFolder) Then
	filesys.DeleteFolder BackupFolder
	
	filesys.CreateFolder(BackupFolder)
	Logfile.WriteLine("Backupverzeichnis erstellt")  
	
	filesys.CopyFolder NetIGPPath, BackupFolder
	Logfile.WriteLine("Dateien gesichert nach " & BackupFolder)  
End If

'Delete CurrentIGP  
RecursiveDeleteByExtension NetIGPPath


'Copy New Version  
filesys.CopyFolder NewVersionPath, NetIGPPath
WScript.Echo "Kopiervorgang erfolgreich"  


 
'Start AppPool  
AppPool.Start() 
WScript.Echo "AppPool gestartet"   

'Start Service  
For each Service in ServiceList
    Service.StartService()
Next
WScript.Echo "Applikationsdienst gestartet"   

Logfile.Close



'Delete recursively  
'Funktion löscht alle Dateien bis auf die mit der Endung .config   
sub RecursiveDeleteByExtension(byval Directory)
	set Folder = filesys.GetFolder(Directory)
	for each File in Folder.Files
		If filesys.GetExtensionName(File.Path) <> "config" Then  
			File.Delete
		End If	
	next		
	for each SubFolder in Folder.SubFolders
		RecursiveDeleteByExtension SubFolder.Path
	next
end sub


Für Hilfe wäre ich sehr dankbar


Freundliche Grüße

Content-ID: 182342

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

Ausgedruckt am: 17.11.2024 um 02:11 Uhr

Skyemugen
Skyemugen 21.03.2012 um 10:48:01 Uhr
Goto Top
Aloha,

ja für Hilfe wäre so manch einer dankbar und wir sind immer über sinnvolle ##blue|## Formatierungen dankbar (die man auch im Nachhinein noch reineditieren kann), worum ich dich auch bitten würde, denn Plaintext liest sich ein wenig ... suboptimal, zumal die Korrektur sich auf Zeilennummern beziehen wird, die momentan fehlen.

greetz André
Niklas89
Niklas89 21.03.2012 um 10:50:05 Uhr
Goto Top
Zitat von @Skyemugen:
Aloha,

ja für Hilfe wäre so manch einer dankbar und wir sind immer über sinnvolle ##blue|##
Formatierungen dankbar (die man auch im Nachhinein noch reineditieren kann), worum ich dich auch bitten würde, denn Plaintext
liest sich ein wenig ... suboptimal, zumal die Korektur sich auf Zeilennummern beziehen wird, die momentan fehlen.

greetz André

Hallo André , habs mal editiert, danke.
60730
60730 21.03.2012 um 20:28:17 Uhr
Goto Top
moin,

Code 800A0046 und die Info:
Fehler: Erlaubnis verweigert: 'GetObject'

das ist doch "einfach" (danke trotzdem für die Code block edition)

"Darfst" du ( irgendeiner im IIS scripte ausführen? -sehr wahrscheinlich nicht.
Denn das sagt dir ja das script.

Leider bekomme ich immer eine Fehlermeldung wenn ich das Script starte:
bedeutet das via rechtsklick als admin, oder als admin angemeldet via doppelklick?

Gruß