Jump to content

MrAnderson

Member
  • Posts

    1
  • Joined

  • Last visited

  • Donations

    0.00 USD 
  • Country

    Turkey

About MrAnderson

Profile Information

  • OS
    Vista Home Premium x86

MrAnderson's Achievements

1

Reputation

  1. @ECHO OFF :: Check for permissions >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" :: If error flag set, we do not have admin. if '%errorlevel%' NEQ '0' ( Echo Requesting administrative privileges... goto UACPrompt ) else ( goto gotAdmin ) :UACPrompt Echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" Echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs" "%temp%\getadmin.vbs" Exit /B :gotAdmin if exist "%temp%\getadmin.vbs" ( Del "%temp%\getadmin.vbs" ) Pushd "%CD%" CD /D "%~dp0" :-------------------------------------- SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION SET ERRORLEVEL= SET ERRNUM= FOR /R "%~dp0" %%A IN (*-KB*.MSU) DO ( CALL :SUB %%~nA ECHO= Installing KB!KB_NUM! >NUL TIMEOUT /t 3 SET ERRORLEVEL= WUSA "%%A" /quiet /norestart SET ERRNUM=!ERRORLEVEL! IF !ERRNUM! EQU 3010 ( ECHO= == SUCCESS ^(RebootRequired^) ^[!ERRNUM!^] == ) ELSE ( IF ERRORLEVEL 1 ( ECHO= == FAILED ^[!ERRNUM!^] == ) ELSE ( ECHO= == SUCCESS ^[!ERRNUM!^] == ) ) ) CHOICE /C YN /M "Close all programs and press Y to restart or N to continue." IF ERRORLEVEL 2 GOTO continue IF ERRORLEVEL 1 GOTO restart GOTO end :continue GOTO end :restart ECHO= == Press any key to restart == >NUL PAUSE SHUTDOWN.EXE /r /t 0 :end GOTO :EOF :SUB SET "KB_NUM=%*" FOR /F "DELIMS=-" %%B IN ("%KB_NUM:*-KB=%") DO SET "KB_NUM=%%B" REM http://www.msfn.org/board/topic/152020-batch-script-for-windows-software-updates-installation/page__view__findpost__p__964942 REM http://www.windows-commandline.com/2011/10/choice-command.html REM http://blogs.msdn.com/b/oldnewthing/archive/2008/09/26/8965755.aspx REM http://ss64.com/nt/delayedexpansion.html REM http://ss64.com/nt/runas.html +++++++ + VBScript Alternative +++++++ 'http://ccmexec.com/2012/02/installing-multiple-windows-7-hotfixes-msu-with-sccm/ 'http://www.insidethe.com/blog/2009/12/how-to-launch-a-wsh-vbscript-as-administrator-in-windows-7-and-vista/ mytitle="MSU Installer" mybuttons=65 ' vbOKCancel + vbInformation If WScript.Arguments.Named.Exists("elevated") = False Then 'Launch the script again as administrator CreateObject("Shell.Application").ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ /elevated", "", "runas", 1 WScript.Quit Else 'Change the working directory from the system32 folder back to the script's folder. Set oShell = CreateObject("WScript.Shell") oShell.CurrentDirectory = CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName) MsgBox "Now running with elevated permissions",0,mytitle End If Dim objfso, objShell Dim folder, files, sFolder, folderidx, Iretval, return Set objfso = CreateObject("Scripting.FileSystemObject") Set objShell = CreateObject("Wscript.Shell") sFolder = left(WScript.ScriptFullName,(Len(WScript.ScriptFullName))-(len(WScript.ScriptName))) Set folder = objfso.GetFolder(sFolder) Set files = folder.Files something=0 ' there is nothing to do For each folderIdx In files If Ucase(Right(folderIdx.name,3)) = "MSU" then something=1 ' there is something to do. wscript.echo "wusa.exe " & sfolder & folderidx.name & " /quiet /norestart" 'wscript.echo "wusa.exe " & sfolder & folderidx.name iretval=objShell.Run ("wusa.exe " & sfolder & folderidx.name & " /quiet /norestart", 1, True) 'iretval=objShell.Run ("wusa.exe " & sfolder & folderidx.name, 1, True) If (iRetVal = 0) or (iRetVal = 3010) then 'wscript.echo folderidx.name & " Success" myprompt=folderidx.name & " Success " & "[" & iRetVal & "]" Else 'wscript.echo folderidx.name & " Failed" myprompt=folderidx.name & " Failed " & "[" & iRetVal & "]" End If devam=MsgBox(myprompt,mybuttons,mytitle) If (devam = 2) or (devam = 3) or (devam = 7) Then 'Cancel/Abort/No was clicked wscript.quit(1) End If End If Next If (something = 0) Then MsgBox "Nothing to do.",64,mytitle Else MsgBox "Done.",64,mytitle restartla=MsgBox("Close all programs and press Yes to restart or No to continue.",36,mytitle) If (restartla = 6) Then Set WSHShell = WScript.CreateObject("WScript.Shell") WshShell.Run "%SYSTEMROOT%\system32\shutdown.exe /r /t 0" End If End If InstallMSU.zip
×
×
  • Create New...