Предоставить общий доступ к папке из пакетного файла, не спрашивая прав администратора и UAC

321
Ádám Bozzay

Я хотел бы запустить командный файл на удаленном компьютере, который разделяет данную папку со всеми. Это должно сделать это

  • без запроса прав администратора в любом случае
  • без всплывающего диалогового окна UAC
  • без перезагрузки

Пока у меня есть этот сценарий, но он продолжает давать мне диалог 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 
2
Адам. Подумайте о том, чтобы поместить логику из раздела VBS `: getadmin` в реальный сценарий VBS со статическими значениями и устранить неполадки, с которых следует начать. Вероятно, это проблема с VB Script, а не пакетная, так что если вы можете создать VB Script и сделать значения статическими, чтобы подтвердить, что он имеет такое же поведение, то вы можете получить лучшую помощь, разместив логику в VB в этом посте. и пометить его `vbscript`. Части пакета могут не иметь отношения к реальной проблеме, поэтому могут отвлекать людей и не нужны для устранения проблемы. Просто дружеский совет, который ** может ** помочь! Pimp Juice IT 6 лет назад 0

0 ответов на вопрос