2009-08-12 9 views
8

Mamy aplikację, która programowo mapuje dyski sieciowe. W systemie Vista z włączonym UAC pojawiają się dziwne problemy.Vista UAC - dyski sieciowe odwzorowujące problemy

Nasza aplikacja mapuje dysk nie podniesiony, więc jeśli użytkownik przegląda eksplorator i kliknie dwukrotnie, aby uruchomić plik exe, wyświetli monit o potwierdzenie kontroli konta użytkownika. Kiedy go zatwierdzą, prosi o podanie nazwy użytkownika/hasła do udziału ... Dziwne odkąd dane zostały zapisane.

Okazuje się, że zaawansowany proces nie może uzyskać dostępu do zamapowanego dysku, który został zmapowany z procesu nieudanego.

Aby zobaczyć ten problem w działaniu, wykonaj następujące kroki:

  • Uruchom cmd.exe bez UAC
  • Run „net use w: \ yourHostname \ yourShare/user: yourUser Yourpassword/persistent: tak „
  • uruchom cmd.exe jako administrator
  • typu«w», a pojawi się komunikat o błędzie

w tym momencie można uruchomić zwykły” siatkę użyj "i zobacz, że połączenie na podniesionym cmd jest niedostępne, ale inne nie podniesione cmd widzi to jako OK.

Czy ktoś zna sposób rozwiązania tego problemu? a może sposób na mapowanie dysku sieciowego na "Wszyscy użytkownicy"?

+0

To pytanie może należeć do błędu serwera. –

+0

Nie, to jest pytanie o programowanie - muszą dziedziczyć uprawnienia dla wszystkich poziomów. Nie znam odpowiedzi :) – bdonlan

+0

Jest to zdecydowanie pytanie programistyczne, korzystamy z WNetAddConnection2 i WNetCancelConnection2 z naszej aplikacji, ale jest to analogiczne do polecenia "net use". – jonathanpeppers

Odpowiedz

2

Sprawdź ten link: Regedit Link

Opisują one klucz rejestru, który umożliwia użytkownikom dostęp podwyższone zmapowanych dysków i vice versa. To rozwiązuje wszystkie moje problemy i jest dokładnie tym, czego szukałem.

EDIT:

Oryginalny link jest martwy, ale tutaj jest tekst jak skopiowane z 24 stycznia 2009 migawka na www.archive.org:


Jeśli stwierdzenie, że nie masz dostępu aby zmapować dyski z tokena administratora spróbuj wykonać następujące czynności. Działając jako administrator chroniony masz dwa tokeny, a ten klucz będzie utrzymywał połączenie dla obu tokerów (to i tak rozumiem). Może także pomóc w usunięciu problemów związanych ze skryptami logowania.

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System EnableLinkedConnections = (DWORD) 1

także stosowania jest "'Skrypty zasad grupy może nie z powodu Kontrola konta użytkownika" części niniejszego dokumentu .

http://technet2.microsoft.com/WindowsVista/en/library/5ae8da2a-878e-48db-a3c1-4be6ac7cf7631033.mspx?mfr=true

I będzie delegowania więcej informacji na ten temat wkrótce.

+0

To powinno być domyślne ustawienie w rejestrze. O ile nie zapewnia to użytkownikom o niskich przywilejach dostępu do udziałów uprzywilejowanych, które powinny być oddzielnie obsługiwane. – Mordachai

+0

To rozwiązanie jest oznaczone przez firmę Microsoft jako nieobsługiwane obejście, które powoduje, że system jest niebezpieczny. Użyj go na własne ryzyko ... – Robert

+0

Nie jestem pewien, czy zezwolenie na podniesiony proces uzyskiwania dostępu do udziału sieciowego utworzonego przez nie podniesiony proces jest niebezpieczne. Czy w drzwiach nie ma już wzniosłego procesu? Nadal jest to dziwny problem, wolałbym użyć nieobsługiwanego rozwiązania, aby naprawić to dla większości ludzi. – jonathanpeppers

2

Jest to zgodne z projektem.

Mimo że konto użytkownika jest takie samo, z wersją podwyższoną z tokenem z przynależnością do grupy administratorów i przywilejami dodawania, tokeny są tworzone niezależnie, a zatem mają różne LUID i pojawiają się w kernelu, aby pochodzić od innego użytkownika logowania. Ponieważ pochodzą one z różnych logowań, zmapowane dyski nie są współdzielone między nimi.

http://blogs.msdn.com/cjacks/archive/2007/02/19/mapped-network-drives-with-uac-on-windows-vista.aspx omawia to w dodatkowych szczegółach.

+0

Więc jeśli użytkownik systemu Vista mapuje dysk sieciowy, to zasadniczo nie może uruchomić żadnego exe z zamapowanego dysku? Czy działałoby to tylko wtedy, gdyby nazwa konta/hasło do okna odpowiadała nazwie zmapowanego dysku? Wydaje się, że jest to sytuacja uboga "według projektu". – jonathanpeppers

+1

Mimo że mają tę samą nazwę użytkownika, podwyższone i inne niż podniesione są nadal odrębnymi użytkownikami. Czy normalny użytkownik powinien mieć możliwość mapowania dysków na konto administratora? Czy to może spowodować DOS, jeśli normalny użytkownik skacze na mapowaniu dysku, niż potrzebuje administrator? Czy może spowodować EOP, jeśli zwykły użytkownik kieruje mapowanie dysku w miejsce, którego administrator się nie spodziewa i powoduje, że uruchamia inny plik binarny? – Michael

+0

Mówię, że Microsoft źle to zaimplementował. Podniesiony nie powinien być innym użytkownikiem w żadnej formie ani formie, wydaje się, że w moim przekonaniu skorzystali ze skrótu. Czy nie ma obejścia dla takiej sytuacji? – jonathanpeppers