Całkiem prosta, na którą nie mogę znaleźć odpowiedzi.
serverfault poprzednio pomógł mi znaleźć sposób na zautomatyzowanie aktualizacji Windows bez użycia WSUS. Działa fantastycznie, ale aby uruchomić go w sieci, musisz najpierw zamontować dysk udostępniony. To dość proste XP, ponieważ po prostu montujesz dysk i uruchamiasz aktualizator.
Jednak w systemach Vista i W7 wszystko to musi być wykonane z podwyższonymi uprawnieniami do poprawnego działania. Konto UAC nie widzi dysków sieciowych montowanych przez zwykłego użytkownika, więc aby wszystko działało, muszę zamontować udział net use
z eskalowanej powłoki. Chciałbym zautomatyzować montowanie tego udziału i uruchamianie programu aktualizującego za pomocą prostego pliku .bat.
Prawdopodobnie mógłbym po prostu poinstruować wszystkich, aby kliknęli prawym przyciskiem myszy „Uruchom jako administrator” w pliku .bat, ale chciałbym, aby wszystko było tak proste, jak to możliwe, i pozwolić, aby .bat automatycznie monitował użytkownika o zwiększenie uprawnień.
Ponieważ te komputery nie należą do nas, nie mogę liczyć na zainstalowanie Powershell, więc rządzi to wszystkimi rozwiązaniami zgodnymi z tymi zasadami i w zasadzie muszą polegać na rzeczach, które byłyby zawarte w instalacji RTM Vista. Mam nadzieję, że przeoczyłem tutaj coś oczywistego. :)
źródło
elevate.cmd
ielevate.vbs
Jeśli jesteś przygotowany na konwersję do PowerShell, jest to o wiele łatwiejsze do zrobienia. To jest mój
Elevate-Process.ps1
skrypt „ ” (zsu
aliasem w moim profilu):Wykrywanie podniesienia może być również wykonane w PSH (dzięki czemu można sprawdzić podniesienie, a następnie podwyższyć, jeśli to konieczne):
źródło
Oto przykładowy skrypt, który wymyśliłem, mam nadzieję, że pomoże innym. Jest to plik nietoperza, który monituje użytkownika o zgodę, a następnie sam się eskaluje. Odpowiada za vbscript, który wyzwala monit UAC, a następnie ponownie uruchamia podniesiony plik nietoperza ... http://jagaroth.livejournal.com/63875.html
źródło
Oto, czego potrzebujesz: http://sites.google.com/site/eneerge/home/BatchGotAdmin
źródło
FusionInventory.org to rozwiązanie typu open source, z którego najczęściej korzystają małe warsztaty naprawcze. Może to być twój osobisty, zdalnie sterowany aktualizator systemu Windows.
źródło
Żadne z tych rozwiązań nie działa w przypadku pliku .cmd, który musi znać parametry wiersza polecenia. Umieść to na samym początku pliku .cmd, a wszystkie twoje problemy zostaną rozwiązane. (To jest dla przyszłych osób przeglądających ten wątek [Przetestowałem to na Windows XP, 7 Vista i 8; x86 + x64]):
źródło
Jak powiedział @emilio, ten skrypt jest w porządku, ale nie przyjmuje żadnych argumentów. Tutaj zmodyfikowany skrypt jest zgodny z argumentami:
źródło
Jeśli nie możesz polegać na zainstalowanym programie Powershell, możesz skorzystać z tego rozwiązania na StackOverflow:
auto-Elevate z UAC przy użyciu pliku wsadowego
Nie wymaga niczego do zainstalowania i kończy się po wyjęciu z pudełka. Jeśli chcesz zachować argumenty wiersza polecenia, rozważ tę aktualizację.
źródło
Czy wypróbowałeś
runas
polecenie?źródło