Udostępnij folder z pliku wsadowego bez pytania o uprawnienia administratora i UAC

2

Chciałbym uruchomić plik wsadowy na komputerze zdalnym, który udostępnia ten folder wszystkim użytkownikom. Musi to zrobić

  • bez pytania o prawa administratora w jakikolwiek sposób
  • bez wyskakującego okna dialogowego UAC
  • bez ponownego uruchamiania

Do tej pory mam ten skrypt, ale ciągle wyświetla mi okno dialogowe UAC.

SET __COMPAT_LAYER=WINXPSP3
if _%1_==_payload_  goto :payload

:getadmin
    echo %~nx0: elevating self
    set vbs=%temp%\getadmin.vbs
    echo Dim WshShell, WshEnv >> "%vbs%"
    echo Set WshShell = CreateObject^("WScript.Shell"^) >> "%vbs%"
    echo Set WshEnv = WshShell.Environment^("PROCESS"^) >> "%vbs%"
    echo WshEnv.Item^("__COMPAT_LAYER"^) = "WINXPSP3" >> "%vbs%"
    echo Set UAC = CreateObject^("Shell.Application"^)                >> "%vbs%"
    echo UAC.ShellExecute "%~s0", "payload %~sdp0 %*", "", "runas", 1 >> "%vbs%"
    "%temp%\getadmin.vbs"
    del "%temp%\getadmin.vbs"
goto :eof

:payload
    echo %~nx0: running payload with parameters:
    echo %*
    echo ---------------------------------------------------
    cd /d %2
    shift
    shift
    rem put your code here
    rem e.g.: perl myscript.pl %1 %2 %3 %4 %5 %6 %7 %8 %9
    SET __COMPAT_LAYER=WINXPSP3
    net share MyShare=c:\MyShare /grant:everyone,full
goto :eof
Ádám Bozzay
źródło
Adam - Zastanów się nad umieszczeniem logiki z :getadminsekcji VBS w rzeczywistym skrypcie VBS ze statycznymi wartościami i rozwiąż problemy, aby rozpocząć. Prawdopodobnie jest to problem ze skryptem VB, a nie tak naprawdę wsadowy, więc jeśli możesz utworzyć skrypt VB i ustawić wartości statyczne, aby potwierdzić, że ma takie samo zachowanie, możesz uzyskać lepszą pomoc, umieszczając logikę w VB w tym poście i oznacz to vbscript. Części partii mogą być nieistotne dla rzeczywistego problemu, co może rozpraszać ludzi i nie jest potrzebne do rozwiązania problemu. Tylko przyjazna wskazówka, która może pomóc !!
Pimp Juice IT