2013-07-16 14 views
6

Mam skrypt, który działa w 2 częściach. Pierwsza część wymaga dostępu administratora (aktualizuje plik HOSTS i wykonuje pewne kopiowanie/nadpisywanie). Po zakończeniu tej części należy zmapować dysk za pomocą nazwy hosta, aby zaktualizować pierwszą część skryptu.Uruchom wsadę jako administrator (automatycznie podnieś), a następnie usuń desant

Wymyśliłem, jak uzyskać podwyższone przywileje za pomocą tego SO Question. Ale mapowanie dysku (podczas gdy w admin) mapuje dysk do sesji administratora. Muszę "de-elevate" wrócić do trybu użytkownika, aby uruchomić mój drugi skrypt.

To jest skrypt, który uruchamiam co najmniej raz dziennie, a nawet kilka razy dziennie. Próbuję utworzyć rozwiązanie, które jest tylko 1 .bat pliku, jeśli to możliwe. Z powodów, skrypty są napisane w perlu.

Czego próbowałem:

  1. Korzystanie z runas/user: komenda regular_user (to robi nie pracy)
  2. plików 1 bat Korzystanie z funkcji dla plików wsadowych 2 (Owa „prace "ale z jakiegoś powodu oba działają w tym samym czasie)
  3. Uruchamianie 2 plików nietoperzy osobno i ręcznie.
  4. wyszukiwania SO, ale nie mogłem znaleźć Admin-> user zamiast tylko przez użytkownika> admin

TLDR:Jak mogę de podnieść do trybu użytkownika z trybu administratora w pliku wsadowym?

Odpowiedz

2

Najlepiej jest użyć najlepszego zewnętrznego narzędzia zdalnego/lokalnego do wykonywania: Windows Sysinternals PSEXEC. Możesz dostarczyć referencje i osiągnąć to, czego potrzebujesz, używając PSEXEC! Możesz umieścić polecenia PSEXEC w pliku wsadowym lub vbs i uruchomić je bez problemu. Możesz także wywołać jedno polecenie z uprawnieniami podniesionymi PSEXEC, a kolejne bez żadnych elewacji, podczas mieszania poświadczeń w pojedynczym unikatowym pliku wsadowym.

http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

+0

Fajnie, brzmi to obiecująco. Dzięki. – Ishikawa91

0

Czy najpierw zakaz podwyższoną część, a następnie podnieść i kontynuować.

+0

Nie jestem pewien, czy jest to możliwe w scenariuszu PO. OP mówi, że najpierw musi zaktualizować plik HOSTS, a następnie użyć nowych aliasów do wykonania drugiej części. – user1071777

2

Jeśli używasz 2 pliki wsadowe, zadzwoń partię ElevatedBatch.cmd z uniesieniem za pomocą Main.cmd (który nadal robi unelevated rzeczy):

@ECHO OFF 
START /WAIT ElevatedBatch.cmd %1 %2 %3 %4 %5 %6 %7 %8 %9 
REM here you can do unelevated stuff: 
ECHO Running unelevated now 

parametru /WAIT zapewnia, że ​​skrypt będzie czekać aż ElevatedBatch.cmd zakończyła . Dla ElevatedBatch.cmd możesz użyć szablonu takiego jak this, aby go podnieść.

Powiązane problemy