Пропускане към основното съдържание

Searching, Downloading, and Installing Updates for windows cmd cscript




The scripting sample in this topic shows you how to use Windows Update Agent (WUA) to scan, download, and install updates. The sample searches for all the applicable software updates and then lists those updates. Next, it creates a collection of updates to download and then downloads them. Finally, it creates a collection of updates to install and then installs them. If you want to search, download, and install a specific update that you identify by using the update title, see Searching, Downloading, and Installing Specific Updates. Before you attempt to run this sample, note the following: WUA must be installed on the computer. For more information about how to determine the version of WUA that is installed, see Determining the Current Version of WUA. The sample can download updates only by using WUA. It cannot download updates from a Software Update Services (SUS) 1.0 server. Running this sample requires Windows Script Host (WSH). For more information about WSH, see the WSH section of the Platform Software Development Kit (SDK). If the sample is copied to a file named WUA_SearchDownloadInstall.vbs, you can run the sample by opening a Command Prompt window and typing the following command at the command prompt.

cscript WUA_SearchDownloadInstall.vbs
 Set updateSession = CreateObject("Microsoft.Update.Session")  
 updateSession.ClientApplicationID = "MSDN Sample Script"  
 Set updateSearcher = updateSession.CreateUpdateSearcher()  
 WScript.Echo "Searching for updates..." & vbCRLF  
 Set searchResult = _  
 updateSearcher.Search("IsInstalled=0 and Type='Software' and IsHidden=0")  
 WScript.Echo "List of applicable items on the machine:"  
 For I = 0 To searchResult.Updates.Count-1  
   Set update = searchResult.Updates.Item(I)  
   WScript.Echo I + 1 & "> " & update.Title  
 Next  
 If searchResult.Updates.Count = 0 Then  
   WScript.Echo "There are no applicable updates."  
   WScript.Quit  
 End If  
 WScript.Echo vbCRLF & "Creating collection of updates to download:"  
 Set updatesToDownload = CreateObject("Microsoft.Update.UpdateColl")  
 For I = 0 to searchResult.Updates.Count-1  
   Set update = searchResult.Updates.Item(I)  
   addThisUpdate = false  
   If update.InstallationBehavior.CanRequestUserInput = true Then  
     WScript.Echo I + 1 & "> skipping: " & update.Title & _  
     " because it requires user input"  
   Else  
     If update.EulaAccepted = false Then  
       WScript.Echo I + 1 & "> note: " & update.Title & _  
       " has a license agreement that must be accepted:"  
       WScript.Echo update.EulaText  
       WScript.Echo "Do you accept this license agreement? (Y/N)"  
       strInput = WScript.StdIn.Readline  
       WScript.Echo   
       If (strInput = "Y" or strInput = "y") Then  
         update.AcceptEula()  
         addThisUpdate = true  
       Else  
         WScript.Echo I + 1 & "> skipping: " & update.Title & _  
         " because the license agreement was declined"  
       End If  
     Else  
       addThisUpdate = true  
     End If  
   End If  
   If addThisUpdate = true Then  
     WScript.Echo I + 1 & "> adding: " & update.Title   
     updatesToDownload.Add(update)  
   End If  
 Next  
 If updatesToDownload.Count = 0 Then  
   WScript.Echo "All applicable updates were skipped."  
   WScript.Quit  
 End If  
 WScript.Echo vbCRLF & "Downloading updates..."  
 Set downloader = updateSession.CreateUpdateDownloader()   
 downloader.Updates = updatesToDownload  
 downloader.Download()  
 Set updatesToInstall = CreateObject("Microsoft.Update.UpdateColl")  
 rebootMayBeRequired = false  
 WScript.Echo vbCRLF & "Successfully downloaded updates:"  
 For I = 0 To searchResult.Updates.Count-1  
   set update = searchResult.Updates.Item(I)  
   If update.IsDownloaded = true Then  
     WScript.Echo I + 1 & "> " & update.Title   
     updatesToInstall.Add(update)   
     If update.InstallationBehavior.RebootBehavior > 0 Then  
       rebootMayBeRequired = true  
     End If  
   End If  
 Next  
 If updatesToInstall.Count = 0 Then  
   WScript.Echo "No updates were successfully downloaded."  
   WScript.Quit  
 End If  
 If rebootMayBeRequired = true Then  
   WScript.Echo vbCRLF & "These updates may require a reboot."  
 End If  
 WScript.Echo vbCRLF & "Would you like to install updates now? (Y/N)"  
 strInput = WScript.StdIn.Readline  
 WScript.Echo   
 If (strInput = "Y" or strInput = "y") Then  
   WScript.Echo "Installing updates..."  
   Set installer = updateSession.CreateUpdateInstaller()  
   installer.Updates = updatesToInstall  
   Set installationResult = installer.Install()  
   'Output results of install  
   WScript.Echo "Installation Result: " & _  
   installationResult.ResultCode   
   WScript.Echo "Reboot Required: " & _   
   installationResult.RebootRequired & vbCRLF   
   WScript.Echo "Listing of updates installed " & _  
   "and individual installation results:"   
   For I = 0 to updatesToInstall.Count - 1  
     WScript.Echo I + 1 & "> " & _  
     updatesToInstall.Item(i).Title & _  
     ": " & installationResult.GetUpdateResult(i).ResultCode    
   Next  
 End If  

Коментари

Популярни публикации от този блог

DVWA - Brute Force (High Level) - Anti-CSRF Tokens

This is the final "how to" guide which brute focuses Damn Vulnerable Web Application (DVWA), this time on the high security level. It is an expansion from the "low" level (which is a straightforward HTTP GET form attack). The main login screen shares similar issues (brute force-able and with anti-CSRF tokens). The only other posting is the "medium" security level post (which deals with timing issues).


For the final time, let's pretend we do not know any credentials for DVWA.... Let's play dumb and brute force DVWA... once and for all!
TL;DR: Quick copy/paste
1: CSRF=$(curl -s -c dvwa.cookie "192.168.1.44/DVWA/login.php" | awk -F 'value=' '/user_token/ {print $2}' | cut -d "'" -f2) 2: SESSIONID=$(grep PHPSESSID dvwa.cookie | cut -d $'\t' -f7) 3: curl -s -b dvwa.cookie -d "username=admin&password=password&user_token=${CSRF}&Login=Login" "192.168.1.44/DVWA/login.php…

List of TCP and UDP port numbers

This is a list of Internet socket port numbers used by protocols of the transport layer of the Internet Protocol Suite for the establishment of host-to-host connectivity. Originally, port numbers were used by the Network Control Program (NCP) in the ARPANET for which two ports were required for half-duplex transmission. Later, the Transmission Control Protocol (TCP) and the User Datagram Protocol (UDP) needed only one port for full-duplex, bidirectional traffic. The even-numbered ports were not used, and this resulted in some even numbers in the well-known port number range being unassigned. The Stream Control Transmission Protocol (SCTP) and the Datagram Congestion Control Protocol (DCCP) also use port numbers. They usually use port numbers that match the services of the corresponding TCP or UDP implementation, if they exist. The Internet Assigned Numbers Authority (IANA) is responsible for maintaining the official assignments of port numbers for specific uses. However, many unoff…

Building_kernel_module_example