Vra

Ek is in die proses van die skryf van 'n klein web artikels wat jou sal toelaat om my te verskeie IIS installasies te bestuur op verskillende bedieners op ons netwerk. Ons het geen domein kontroleerder.

Ek het 'n klein nabootsing kontroleerder dat die win32 api en sy LogonUser metode gebruik geskrewe. Ek gebruik dan System.DirectoryServices en die IIS ADSI verskaffer om 'n nuwe tuiste te skep.

Ek het die volgende roetine (verruil sommige waardes met 'n duidelike teks snare vir 'n beter leesbaarheid):

            if (impersonationSvc.ImpersonateValidUser("Administrator@SRV6", String.Empty, "PASSWORD))
            {


            string metabasePath = "IIS://" + server.ComputerName + "/W3SVC";
            DirectoryEntry w3svc = new DirectoryEntry(metabasePath, "Administrator", "PASSWORD");

            string serverBindings = ":80:" + site.HostName;
            string homeDirectory = server.WWWRootNetworkPath + "\\" + site.FolderName;


            object[] newsite = new object[] { site.Name, new object[] { serverBindings }, homeDirectory };

            object websiteId = (object)w3svc.Invoke("CreateNewSite", newsite);
            int id = (int)websiteId;

            impersonationSvc.UndoImpersonation();
        }

Hierdie roetine werk wanneer ek gebruik die bediener die web app is op (SRV6) aangebied. 'N Nuwe webwerf is geskep.

As ek SRV5 gebruik byvoorbeeld 'n ander bediener op ons netwerk (met geen domein), ImpersonateValidUser werk, die DirectoryEntry is geskep, maar w3svc.Invoke versuim met die volgende fout:

[COMException (0x80070005): ontken Toegang]

System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail) +377678
System.DirectoryServices.DirectoryEntry.Bind() +36
System.DirectoryServices.DirectoryEntry.get_NativeObject() +31
System.DirectoryServices.DirectoryEntry.Invoke(String methodName, Object[] args) +53

...

Enigiemand weet hoe ek dit kan oplos?

Was dit nuttig?

Oplossing

Jy kan nie gebruik nabootsing in hierdie situasie. Die rekening wat jy hom voordoen behoeftes aanteken priveleges op die plaaslike masjien.

As jou webservers is nie deel van 'n domein, ek dink Tant102 se idee van web dienste is jou enigste manier om te gaan.

Ander wenke

Ek sou kyk na die eventlog van SRV5 om te kyk watter voorregte word gebruik wanneer jy in verbinding bly om daardie bediener. Dit mag nodig wees om jou groep beleid verander om mislukkings te meld in die sekuriteit log.

Dit klink makliker om te installeer webservices op jou bedieners, verkieslik beskerm deur logins en / of IP beperkings, dat hierdie soort operasies doen.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top