Nutzung von WMI OHNE Administrationsrechte
Ich würde gerne WMI nutzen, um einem normalem Benutzer die Möglichkeiten zu geben folgende Dinge auf unserem Server zu ändern / einzurichten:
1. Änderung seines Passwortes
2. Anlegen von (Sub-) Webs im IIS
Für die Passwortänderung nutze ich:
Set objUser = GetObject("WinNT:" & sCN & "/" & sUN & "")
objUser.SetPassword sPW
objUser.SetInfo
Für die Erstellung eines Webs nutze ich (Teilauszug, weil Fehlermeldung vorher):
Set objwmi = CreateObject("WbemScripting.SWbemLocator")
Set contobj = objwmi.ConnectServer(sCN, "root\MicrosoftIISv2)
contobj.Security_.ImpersonationLevel = 3
contobj.Security_.AuthenticationLevel = 6
ODER
Set contobj = SetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\MicrosoftIISv2")
Set wservObj = contobj.Get("IIsWebService='W3SVC'")
Bindings = Array(0)
Set Bindings(0) = contobj.Get("ServerBinding").SpawnInstance_()
Bindings(0).ip = sIP
Bindings(0).Port = sSPort
Bindings(0).HostName = sWebhost
Dim strSiteObjPath
strSiteObjPath = wservObj.CreateNewSite(sWebname, Bindings, sWebpfad)
If Err Then
WebCreate = "Error: " & Err.Number & " : " & Err.Description
End If
Das alles funktioniert wunderbar, wenn der User Administrator ist. Ich möchte nun aber mit ASP eine Intranetseite erstellen, auf dem sich jeder Mitarbeiter einloggen kann (Datenbank gesteuert) und die beschriebenen Dinge erledigen kann.
Bei der Passwortänderung erhalte ich den Fehler:
Error: -2147024891 - Allgemeiner "Zugriff verweigert"-Fehler
Bei der Erstellung des Webs erhalte ich:
SWbemServicesEx Fehler "80041001'
Allgemeiner Fehler
/create.asp, line 25
Line 25 = Set wservObj = contobj.Get("IIsWebService='W3SVC'")
Ich bin dafür wir folgt vorgegangen:
1. Neuen Benutzer erstellt (Name = Dummy)
2. Ich habe „Dummy“ volle Rechte auf die WMI Komponenten gegeben (Computerverwaltung -> WMI -> Sicherheit -> vererbt auf alle Unterordner)
3. Ich habe Dummy als anonymen Benutzer in der Intranetseite hinzugefügt (IIS -> Web -> Verzeichnisrechte – IUSR wurde dadurch ersetzt)
4. Ich habe Dummy den vollen Zugriff auf das Verzeichnis gegeben in dem die Intranetseite liegt (Explorer -> Ordner -> Sicherheit)
5. Da auch auf die Metabase zugegriffen werden soll, habe ich Dummy die Rechte auch noch erteilt (cscript metaacl.vbs IIS:LOCALHOST/W3SVC Server\Dummy RWSUED)
6. Zu guter letzt hatte ich den User dann auch Zugriffsrechte in den DCOM Komponenten für WMI gegeben, allerdings wieder rausgenommen.
7. Da ich nicht weiterkam habe ich Dummy noch der Gruppe Hauptbenutzer und DCOM Anwender zugeordnet, aber auch das blieb ohne Erfolg.
Das komische ist, das ich mit Punkt 1-5 wunderbar über WMI auf Netzwerkeigenschaften und auf Protokolle, etc. zugreifen kann, nur nicht auf MicrosoftIISv2 und auf die PW Änderung.
Was übersehe ich hier? Gibt es vielleicht keine Möglichkeit PWs ohne Adminrechte ändern zu lassen? Warum kommt der „Allgemeine Fehler“ nur, wenn ich es als „Dummy“ mache?
Ich bin für jeden Tipp dankbar, denn ich such mir seit Tagen schon ein Wolf!
Grüße Matt
1. Änderung seines Passwortes
2. Anlegen von (Sub-) Webs im IIS
Für die Passwortänderung nutze ich:
Set objUser = GetObject("WinNT:" & sCN & "/" & sUN & "")
objUser.SetPassword sPW
objUser.SetInfo
Für die Erstellung eines Webs nutze ich (Teilauszug, weil Fehlermeldung vorher):
Set objwmi = CreateObject("WbemScripting.SWbemLocator")
Set contobj = objwmi.ConnectServer(sCN, "root\MicrosoftIISv2)
contobj.Security_.ImpersonationLevel = 3
contobj.Security_.AuthenticationLevel = 6
ODER
Set contobj = SetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\MicrosoftIISv2")
Set wservObj = contobj.Get("IIsWebService='W3SVC'")
Bindings = Array(0)
Set Bindings(0) = contobj.Get("ServerBinding").SpawnInstance_()
Bindings(0).ip = sIP
Bindings(0).Port = sSPort
Bindings(0).HostName = sWebhost
Dim strSiteObjPath
strSiteObjPath = wservObj.CreateNewSite(sWebname, Bindings, sWebpfad)
If Err Then
WebCreate = "Error: " & Err.Number & " : " & Err.Description
End If
Das alles funktioniert wunderbar, wenn der User Administrator ist. Ich möchte nun aber mit ASP eine Intranetseite erstellen, auf dem sich jeder Mitarbeiter einloggen kann (Datenbank gesteuert) und die beschriebenen Dinge erledigen kann.
Bei der Passwortänderung erhalte ich den Fehler:
Error: -2147024891 - Allgemeiner "Zugriff verweigert"-Fehler
Bei der Erstellung des Webs erhalte ich:
SWbemServicesEx Fehler "80041001'
Allgemeiner Fehler
/create.asp, line 25
Line 25 = Set wservObj = contobj.Get("IIsWebService='W3SVC'")
Ich bin dafür wir folgt vorgegangen:
1. Neuen Benutzer erstellt (Name = Dummy)
2. Ich habe „Dummy“ volle Rechte auf die WMI Komponenten gegeben (Computerverwaltung -> WMI -> Sicherheit -> vererbt auf alle Unterordner)
3. Ich habe Dummy als anonymen Benutzer in der Intranetseite hinzugefügt (IIS -> Web -> Verzeichnisrechte – IUSR wurde dadurch ersetzt)
4. Ich habe Dummy den vollen Zugriff auf das Verzeichnis gegeben in dem die Intranetseite liegt (Explorer -> Ordner -> Sicherheit)
5. Da auch auf die Metabase zugegriffen werden soll, habe ich Dummy die Rechte auch noch erteilt (cscript metaacl.vbs IIS:LOCALHOST/W3SVC Server\Dummy RWSUED)
6. Zu guter letzt hatte ich den User dann auch Zugriffsrechte in den DCOM Komponenten für WMI gegeben, allerdings wieder rausgenommen.
7. Da ich nicht weiterkam habe ich Dummy noch der Gruppe Hauptbenutzer und DCOM Anwender zugeordnet, aber auch das blieb ohne Erfolg.
Das komische ist, das ich mit Punkt 1-5 wunderbar über WMI auf Netzwerkeigenschaften und auf Protokolle, etc. zugreifen kann, nur nicht auf MicrosoftIISv2 und auf die PW Änderung.
Was übersehe ich hier? Gibt es vielleicht keine Möglichkeit PWs ohne Adminrechte ändern zu lassen? Warum kommt der „Allgemeine Fehler“ nur, wenn ich es als „Dummy“ mache?
Ich bin für jeden Tipp dankbar, denn ich such mir seit Tagen schon ein Wolf!
Grüße Matt
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 81733
Url: https://administrator.de/contentid/81733
Ausgedruckt am: 26.11.2024 um 01:11 Uhr