it-swarm-tr.com

Windows Güncelleştirmelerini komut satırından yükleme

Windows güncellemelerini komut satırından yüklemek mümkün müdür? Grafik güncelleme aracı Windows 7'de çok iyi çalışmıyor gibi görünüyor. Bazen çalışıyor, bazen çalışmıyor ... Sorunum, ayrıntılar listesini görmek için tıkladığımda herhangi bir güncelleme göremiyorum. Bu nedenle, varsayılan olarak işaretlenmemiş güncellemeler olduğunda, bunları yükleyemiyorum ...

Bunları kurmanın başka bir yolu var mı?

17
Svish

Windows 7'den emin değilsiniz, ancak XP/Vista ile, güncellemeleri algılamak ve indirmek için aşağıdaki komutu çalıştırabilirsiniz:

wuauclt /detectnow /reportnow

Çalıştırırken sorun yaşıyorsanız WSUS Wiki adresine bakın.

Aksi takdirde, istediğiniz belirli bir güncelleştirmeniz varsa, Microsoft web sitesinden indirmeniz yeterlidir. Yüklemenizi engelleyen bir sorun varsa, Windows Update günlüklerinin üstesinden gelmek zor olduğundan, bunu öğrenmenin en iyi yolu budur.

12
duffbeer703

Güncellemeleri eşzamanlı olarak kontrol etmek, indirmek ve yüklemek için bir komut dosyası kullanabilirsiniz. Sık sık Windows Core sunucuları el ile yama için bu vbscript değiştirilmiş bir sürümünü kullanın.

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

Bunun için bir cazibe gibi görünüyor ama tabii ki Windows 7 altında test etmedim. Gerekirse belirli bir güncellemeyi hedeflemek için başka bir makaleye de bağlantı vardır.

Benzer bir deneyimi ortaya koyan bir Powershell modülü vardır.

Hızlı bir bakıştan sonra güncelleme API'sını da kullanan bu üçüncü taraf uygulaması buldum, ancak bazı daha fazla seçenekle (üçüncü taraf koduna güvenmenizi gerektiriyor olsa da).

4
Oskar Duveborn

Komut Satırından Windows Update:

www.sysadminsoftware.com/udc.html

Araç (Güncelleştirme Dağıtım Komutanı) tam olarak istediğinizi yapabilir. Ayrıca belirli yamalardan kaçınmak, belirli güncellemeleri hedeflemek, tamamladıktan N dakika sonra yeniden başlatmak, CSV'de raporlar oluşturmak vb. İçin parametreler de iletebilirsiniz. Birkaç GUI yardımcı programı ile birlikte gelir.

2
sysadmin

Windows işletim sistemlerini, özellikle yeni yüklemelerden sonra düzeltmeniz gerekiyorsa, Offline Updater konusuna ciddi bir göz atın.

Önerdiğiniz tüm yamaları indirmek için komut dosyaları kullanır (böylece Win2000, Win XP, Win 2003, Vista, Win2008, Win2012 32 ve 64 bit uygunsa), çoklu dil, hizmet paketleri, .NET çerçeveleri ve Office yamaları (XP, 2000 , 2003, 2007).

Hepsini indirdikten sonra, her yamayı Salı güncellendi ve sadece değişiklikleri aldın. Kataloğu alır ve her gün daha uzun sürüyor olsa da (şimdi OS/Office devir başına birçok mega).

Yerel makinenizdeki dosyaları indirdikten sonra, bunların CD/DVD görüntülerini yapmak için bir komut dosyası vardır (isterseniz bunu otomatik olarak işletim sistemi başına DVD görüntüleri için yapacak).

Benim yaptığım, yazmaya karşı koruma sekmesini onurlandıran bir SD kart okuyucusunda 4GB SD bellek kartı kullanmak. Eskiden 2GB kartlar kullanıyordum, ancak Win XP ve Office'in çoğu şu anda bu kartın üzerine sığabiliyor, bu yüzden 4GB kartlara geçtim.

Bu nedenle, bir makinede sorun giderirken, cihazımın yazmaya karşı korumalı olduğunu bilerek, daha önce yazılabilir bu cihazı güvenilmeyen, muhtemelen virüs bulaşmış bir makineye yerleştirmeye güveniyorum (bu konuda hiçbir şey bilmediğim için, virüslü olduğunu varsayıyorum).

Böylece ilk adım olarak bugüne kadar yama yapabilirim.

Otomatik çalıştırma özelliğini kullanır veya yürütülebilir dosyayı aygıtta başlatırsanız (anahtar, harici HD, CD, DVD, yazdığınız her yerde), tüm güncelleştirmeleri uygulamak için yerel makinedeki Windows Update hizmetini kullanan bir komut dosyası başlatır, ancak bunun yerine onları indirmek için tel üzerinden gitmek sadece yerel kopyasını kullanır.

Bu nedenle, bir WinXP makinesini en son SP ve yamalara güncellemek 1 saatten fazla sürebilir, ancak yol boyunca sıfır ağ trafiği vardır ve bunu tamamen takılı olmayan Ethernet kablosuyla yapabilirsiniz .

İnanılmaz kullanışlı bir araç!

Önceden bir yama CD'si oluşturmuş olan AutoUpdate adamları CD görüntüsünü dağıtan Microsoft gibi bir afoul çalışmamalıdır. Bu araç komut dosyalarını günceller ve lisanslı Windows iş istasyonunuzdaki tüm düzeltme eklerini almanız gerekir.

2
geoffc

Şu anda ayrı bir cevap olarak answer by duffbeer7 için bir yorum ekleyemiyorum:

İnternet Arşivinde arşivlendiği şekliyle WSUSwiki'ye bağlantının son "iyi" sürümü this . Orijinal cevapta verilen seçenekler bu SSS girişi bölümünde açıklanmıştır.

1
Olaf Mandel