2017-12-22 20 views
-1

보안 업데이트를 확인, 다운로드 및 설치하는 데 도움이되는 스크립트를 찾으려고합니다.Windows 업데이트 확인, 다운로드 및 설치 (보안 및 중요 업데이트 만)

이 스크립트는 모든 업데이트를 검사합니다. https://gallery.technet.microsoft.com/scriptcenter/VB-Script-to-Check-and-620579cd#content

우리는 또한이 문서를 발견하지만 C# https://msdn.microsoft.com/en-us/library/windows/desktop/ms744616(v=vs.85).aspx

위한 첫 번째 문서는 정확하게 우리는 보안 업데이트를 원하는의 우리는 예외 원하는 것을.

다른 누군가가 우리와 함께 결혼 할 수 있습니까? 좋은 것

//Subscribe to receive critical updates. 

모든 모든 도움 : 우리가 얻을하고자하는 곳에 우리가 우리를 얻을 것이라고 생각하는 두 번째 링크의 코드는 라인으로 시작됩니다.

여기에 우리가 작업 한 스크립트 사본이 있습니다.

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 

답변

0

그렇지 않은 경우 모두 WSUS Offline Updater을 사용해보세요. 자동화가 가능하며 PC 기술자가 높은 평가를받습니다. video tutorial/review도 있습니다. Microsoft가 의도적으로 새 하드웨어에서 Win7 사용자를위한 업데이트 메커니즘을 위반 한 이후로 Windows 7을 계속 유지하기 위해이 도구를 사용합니다.