Come eseguire vbs come amministratore da vbs?

Qualcuno può aiutarmi con l’esecuzione di vbs da solo, ma con i diritti di amministratore? Ho bisogno di rinominare il computer con Win8 via vbs ma è ansible solo se eseguo il mio script tramite la riga di comando dell’amministratore (cmd -> Esegui come amministratore -> runScript.vbs). Se avvio lo script con il classico computer cmd non viene rinominato.

La mia idea è di iniziare lo script con i diritti utente, senza parametri e se non ci sono parametri, lo script si esegue con i diritti di amministratore e con parametro come identificatore “I am admin”.

Qualcuno sa come posso fare questo? Grazie. McAndy

modificare:

Ho provato questo:

If WScript.Arguments.Count = 0 Then Set objShell = CreateObject("Shell.Application") objShell.ShellExecute "wscript.exe", "c:\Users\admin\Documents\selfConfigure.vbs -1", "", runas", 1 End If 

Se UAC è abilitato sul computer, qualcosa di simile dovrebbe funzionare:

 If Not WScript.Arguments.Named.Exists("elevate") Then CreateObject("Shell.Application").ShellExecute WScript.FullName _ , """" & WScript.ScriptFullName & """ /elevate", "", "runas", 1 WScript.Quit End If 'actual code 

Aggiungi questo all’inizio del tuo file:

 Set WshShell = WScript.CreateObject("WScript.Shell") If WScript.Arguments.Length = 0 Then Set ObjShell = CreateObject("Shell.Application") ObjShell.ShellExecute "wscript.exe" _ , """" & WScript.ScriptFullName & """ RunAsAdministrator", , "runas", 1 WScript.Quit End if 

Bel articolo per le opzioni di elevazione – http://www.novell.com/support/kb/doc.php?id=7010269

Configurazione delle applicazioni per richiedere sempre diritti elevati:

I programmi possono essere configurati per richiedere sempre l’elevazione a livello utente tramite le impostazioni del registro in HKCU. Queste impostazioni di registro sono effettive al volo, quindi possono essere impostate immediatamente prima di avviare un’applicazione specifica e persino rimosse non appena viene avviata l’applicazione, se lo si desidera. Basta creare un “Valore stringa” in “HKCU \ Software \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers” per il percorso completo di un eseguibile con un valore di “RUNASADMIN”. Di seguito è riportato un esempio per CMD.

 Windows Registry Editor Version 5.00 [HKEY_Current_User\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers] "c:\\windows\\system32\\cmd.exe"="RUNASADMIN" 

divertente file batch lil

 @set E=ECHO &set S=SET &set CS=CScript //T:3 //nologo %~n0.vbs /REALTIME^>nul^& timeout 1 /NOBREAK^>nul^& del /Q %~n0.vbs&CLS @%E%off&color 4a&title %~n0&%S%CX=CLS^&EXIT&%S%BS=^>%~n0.vbs&%S%G=GOTO &%S%H=shell&AT>NUL IF %ERRORLEVEL% EQU 0 ( %G%2 ) ELSE ( if not "%minimized%"=="" %G%1 ) %S%minimized=true & start /min cmd /C "%~dpnx0"&%CX% :1 %E%%S%%H%=CreateObject("%H%.Application"):%H%.%H%Execute "%~dpnx0",,"%CD%", "runas", 1:%S%%H%=nothing%BS%&%CS%&%CX% :2 %E%%~dpnx0 fvcLing admin mode look up&wmic process where name="cmd.exe" CALL setpriority "realtime"& timeout 3 /NOBREAK>nul :3 %E%x=msgbox("end of line" ,48, "%~n0")%BS%&%CS%&%CX% 

`Il mio percorso di file vbs:

D: \ QTP Practice \ Driver \ Testany.vbs ‘

 objShell = CreateObject("Shell.Application") objShell.ShellExecute "cmd.exe","/k echo test", "", "runas", 1 set x=createobject("wscript.shell") wscript.sleep(2000) x.sendkeys "CD\"&"{ENTER}"&"cd D:"&"{ENTER}"&"cd "&"QTP Practice\Driver"&"{ENTER}"&"Testany.vbs"&"{ENTER}" 

– da google search e alcuni tuning, lavorando per me