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:
Für Hilfe wäre ich sehr dankbar
Freundliche Grüße
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 182342
Url: https://administrator.de/contentid/182342
Ausgedruckt am: 17.11.2024 um 02:11 Uhr
3 Kommentare
Neuester Kommentar
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é
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é
moin,
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.
Gruß
Code 800A0046 und die Info:
Fehler: Erlaubnis verweigert: 'GetObject'
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ß