Şu anda çevrimdışısınız; İnternet'in yeniden bağlanması bekleniyor

Uzak ana bilgisayarlara 824146 (MS03-039) veya 823980 (MS03-026) yüklemek için Visual Basic komut dosyası nasıl kullanılır

Windows XP desteği sona erdi

Microsoft, Windows XP desteğini 8 Nisan 2014'te sona erdirdi. Bu değişiklik yazılım güncelleştirmelerinizi ve güvenlik seçeneklerinizi etkiledi. Bunun sizin için ne anlama geldiğini ve korunmaya nasıl devam edebileceğinizi öğrenin.

Windows Server 2003 desteği 14 Temmuz 2015'te sona erdi

Microsoft, Windows Server 2003 desteğini 14 Temmuz 2015'te sona erdirdi. Bu değişiklik yazılım güncelleştirmelerinizi ve güvenlik seçeneklerinizi etkiledi. Bunun sizin için ne anlama geldiğini ve korunmaya nasıl devam edebileceğinizi öğrenin.

™zet
Bu makale, Patchinstall.vbs adlı bir Microsoft Visual Basic Scripting Edition komut dosyası örneği içerir. Bu komut dosyası, güvenlik düzeltme eki yüklenmemiş Microsoft Windows NT, Windows 2000 veya Windows Server 2003 etki alanı ortamındaki uzak ana bilgisayarlara ağ yöneticisinin Windows Yönetim Araçları (WMI) komut dosyasını kullanarak 824146 (MS03-039) veya 823980 (MS03-026) güvenlik düzeltme ekini nasıl yükleyeceklerine bir örnektir. Patchinstall.vbs komut dosyası, girdi olarak IP adreslerini içeren ve uzak ana bilgisayardaki bilinmeyen bir konumdan (C:\Patchinst.exe) 824146 (MS03-039) veya 823980 (MS03-026) güvenlik düzeltme ekini yükleyen bir dosyayı (Ipdosyası.txt) alır. 824146 (MS03-039) güvenlik düzeltme eki hakkında ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
824146 MS03-039: RPCSS'de Önbellek Taşması Bir Saldırganın Zararlı Programlar Çalıştırmasına İzin Verebilir
823980 güvenlik düzeltme eki hakkında ek bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere şu makale numarasını tıklatın:
823980 MS03-026: RPC'de Arabellek Taşması Kod Yürütülmesine İzin Verebilir
Ağ yöneticilerinin güvenlik düzeltme ekleri yüklenmemiş bilgisayarların varlığı konusunda ağı taramak için kullanabileceği bir araç hakkında ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
827363 823980 (MS03-026) ve 824146 (MS03-039) Güvenlik Düzeltme Ekleri Yüklenmemiş Ana Bilgisayarları Tanımlamak İçin KB 824146 Tarama Aracı Nasıl Kullanılır

Notlar

  • 824146 veya 823980 güvenlik düzeltme ekini başarıyla yüklemek için, uzak hedef bilgisayarda yönetici izinleriniz olmalıdır.
  • Patchinstall.vbs komut dosyasının başarıyla kullanılabilmesi için Microsoft Windows XP tabanlı hedef bilgisayarlar Windows NT, Windows 2000 veya Windows Server 2003 etki alanına katılmış olmalıdır.
  • Patchinstall.vbs komut dosyası, Windows Yönetim Araçları'nı (WMI) kullanır. WMI, Dağıtılmış Bileşen Nesnesi Modeli'ne (Distributed Component Object Model, DCOM) bağımlıdır. Bu nedenle, Patchinstall.vbs dosyası Microsoft Güvenlik Bültenleri MS03-039 veya MS03-026'da belirtilen açığa geçici çözümler üretmek amacıyla DCOM'un devre dışı bırakıldığı hedef bilgisayarlarda çalışmaz.
  • 824146 veya 823980 güvenlik düzeltme eki paketleri, Patchinstall.vbs komut dosyasını çalıştırdığınız bilgisayardaki bir yerel klasörde bulunmalı ve paketler Patch_XP.exe (Windows XP için), Patch_W2K.exe (Windows 2000 için) ve Patch_W2K3.exe (Windows Server 2003 için) olarak yeniden adlandırılmalıdır.
  • Patchinstall.vbs komut dosyasını, diğer düzeltme eklerini de yükleyecek biçimde değiştirebilirsiniz.
Daha fazla bilgi
Patchinstall.vbs komut dosyası, şu görevleri gerçekleştirir:
  • Komut dosyası, 824146 veya 823980 güvenlik düzeltme ekini yüklemek istediğiniz uzak ana bilgisayarların IP adresleri listesini okur. Komut dosyası, bu listeyi IP adreslerinin bir listesini (her satırda bir IP adresi) içeren bir ASCII metin dosyasından (Ipdosyası.txt) alır. Örneğin, KB824146 tarama aracındaki Vulnerable.txt günlük dosyasını Ipdosyası.txt dosyası için kullanabilirsiniz.
  • Komut dosyası, ilk IP adresini listeden alır.
  • Komut dosyası, hedef bilgisayardaki Windows sürümünü belirler.
  • Komut dosyası, komut dosyası bilgisayarındaki Z sürücüsünü hedef bilgisayardaki C$ ile eşleştirir.
  • Komut dosyası, doğru düzeltme eki sürümünü (Windows XP, Windows 2000 veya Windows Server 2003 için) hedef bilgisayardaki C:\Patchinst.exe dosyasına (Z eşleştirmesini kullanarak) kopyalar.
  • Komut dosyası, düzeltme ekinin yüklenmesini sağlar ve sonra da kullanıcı girdisi veya iletişim kutuları olmadan, -q -f anahtarlarını kullanarak (Katılımsız yükleme modu) hedef bilgisayarların otomatik olarak yeniden başlatılmasını sağlar.
  • Komut dosyası, yükleme işleminin tamamlanmasını bekler.
  • Komut dosyası, hedef bilgisayarda C:\Patchinst.exe dosyasını silmeye çalışır.
  • Komut dosyası, Z sürücü eşleştirmesini kaldırır.
  • Komut dosyası, listedeki sonraki IP adresini işler.
Önemli Microsoft, bu örnek komut dosyasını kendi ağ ortamınız için değiştirdiğinizde, üretim ortamından önce bir sınama ortamında sınamanızı önerir.

Patchinstall.vbs komut dosyasını kullanmak için, aşağıdaki komut dosyasını Patchinstall.vbs adlı bir metin dosyasına yapıştırın. Ardından, aşağıdaki komut satırını kullanarak Patchinstall.vbs komut dosyasını çalıştırın:
cscript patchinstall.vbs Ipdosyası.txt DüzeltmelerinYerelYolu
Bu komutta, Ipdosyası.txt, 824146 veya 823980 güvenlik düzeltme ekini yüklemek istediğiniz uzak ana bilgisayarların IP adresleri listesini içeren bir metin dosyasıdır. DüzeltmelerinYerelYolu, 824146 veya 823980 düzeltme eki paketlerini (Windows XP için Patch_XP.exe, Windows 2000 için Patch_W2k.exe ve Windows Server 2003 için Patch_W2k3.exe olarak yeniden adlandırılmış) içeren klasörün tam yoludur.

Patchinstall.vbs Komut Dosyası

Microsoft, programlama örneklerini yalnızca gösterim amacıyla sağlar; örtülü veya açık garanti vermez. Örtük garantiler, satılabilirlik veya belirli bir amaca uygunluk da buna dahil olup, ancak bununla sınırlı değildir. Bu makale, gösterilen programlama dilini ve yordamları oluşturmak ve hata ayıklamak amacıyla kullanılan araçları kullanmayı bildiğinizi varsayar. Microsoft destek mühendisleri, belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilir, ancak gereksinimlerinizi karşılamaya yönelik olarak ek işlevsellik sağlamak veya yordamlar geliştirmek amacıyla bu örnekleri değiştirmezler.
' Patchinstall.vbs' MS03-026 ve MS03-039 için düzeltme eki yüklemesi' (c) Microsoft 2003' v1.03 clon error resume nextconst XP_Patch = "Patch_XP.exe"const W2k_Patch = "Patch_W2k.exe"const W2k3_Patch = "Patch_W2k3.exe"If right(ucase(wscript.FullName),11)="WSCRIPT.EXE" then     wscript.echo "HATA: Bu komut dosyasını cscript kullanarak çalıştırmalısınız, örneğin 'cscript " & wscript.scriptname & "'."     wscript.quit 0end if' KULLANIM if wscript.arguments.count <> 2 then      wscript.echo "Kullanım: cscript " & wscript.scriptname & " <Ipdosyası.txt> <DüzeltmelerinYerelYolu>" & vbCrLf & vbCrLf & _     "  <DüzeltmelerinYerelYolu>, bu dosyaların tümünün bulunduğu tam bir yol olmalıdır:" & vbCrLf & _     "      " & XP_Patch & vbCrLf & _     "      " & W2k_Patch & vbCrLf & _     "      " & W2k3_Patch      wscript.quit end ifipFile = wscript.arguments(0)localPathToPatches = wscript.arguments(1)set onet = createobject("wscript.network") set ofs = createobject("scripting.filesystemobject")' ipfile dosyasının erişilebilir olduğunu doğrulayın.set oipFile = ofs.opentextfile(ipFile, 1, false)if (Err.Number <> 0) then     wscript.echo ipFile & " açılamadı"     wscript.quit end if' Bir \ karakteri ile bitirdiğinizden emin olun.if right(localPathToPatches, 1) <> "\" then     localPathToPatches = localPathToPatches & "\"end if'cim_datafile'ın UNC yolları desteklemediğini unutmayın'bu nedenle tüm işlemler sürücü eşlemeleri ile yapılmalıdır.if left(localPathToPatches, 2) = "\\" then     wscript.echo "<pathToExecutable> bir UNC yolu olamaz, lütfen bir sürücüyü yerel olarak eşleyin"     wscript.quit end ifexeWinXP = ofs.getfile(localPathToPatches + XP_Patch).nameexeW2k = ofs.getfile(localPathToPatches + W2k_Patch).nameexeW2k3 = ofs.getfile(localPathToPatches + W2k3_Patch).name' Düzeltme eklerine erişilebildiğini doğrulayın.if ((len(exeWinXP) = 0) OR (len(exeW2k) = 0) OR (len(exeW2k3) = 0)) then     wscript.echo "Düzeltme eki dosyaları bulunamıyor."     wscript.echo "<DüzeltmelerinYerelYolu> klasörünün tüm bu dosyaları içerdiğiden emin olun:" & vbCrLf & _     "      " & XP_Patch & vbCrLf & _     "      " & W2k_Patch & vbCrLf & _     "      " & W2k3_Patch      wscript.quit end ifset osvcLocal = getobject("winmgmts:root\cimv2")'Hata işleme kodu hata verebilecek işlevin altındadır - çalıştır.on error resume nextwhile not oipFile.atEndOfStream     ip = oipFile.ReadLine()     wscript.echo vbCrLf & "Bağlanıyor " & ip & "..."     Err.Clear     set osvcRemote = GetObject("winmgmts:\\" & ip & "\root\cimv2")     if (Err.Number <> 0) then          wscript.echo "Bağlantı kurulamadı " & ip & "."     else          exeCorrectPatch = detectOSPatch(osvcRemote)          if (exeCorrectPatch <> "") then               ' Parçaları uzak bilgisayara yerleştir.               wscript.echo "Düzeltme eki yükleniyor " & exeCorrectPatch & "..."               onet.mapnetworkdrive "z:", "\\" & ip & "\C$"               set osourceFile = osvcLocal.get("cim_datafile=""" & replace(localPathToPatches, "\", "\\") & exeCorrectPatch & """")               ret = osourceFile.Copy("z:\\Patchinst.exe")               if (ret <> 0 and ret <> 10) then                    ' Hata algılandı ve bu hata "dosya zaten var" hatası değil                    wscript.echo "Kopyalanamadı: " & ip & " - error: " & ret               else                    set oprocess = osvcRemote.Get("win32_process")                         ' Yüklemeyi kullanıcı etkileşimi olmadan başlat ve bitince bilgisayarı yeniden başlatmayı zorla.                    ret = oprocess.create("c:\\Patchinst.exe -q -f")                    if (ret <> 0) then                         wscript.echo "İşlemin başlatılamadığı adres: " & ip & ": " & ret                    else                         ' Kopyalanan dosyalara bir başvuru al.                         set odestFile = osvcLocal.get("cim_datafile=""z:\\Patchinst.exe""")                         ' Yüklemenin tamamlanmasını bekle.                         for waitTime = 0 to 120     ' Bekle--yüklemenin tamamlanması için, en çok iki dakika.                              wscript.Sleep 1000     ' Bir saniye uyu.                              ' Geçiçi dosyayı serbest kaldığında hemen sil.                              if (odestFile.Delete() = 0) then                                   exit for                              end if                         next ' Aksi halde dön ve beklemeye devam et...                         wscript.echo "Kaldırma başarılı."                    end if     'İşlem başarıyla oluşturuldu.               end if     'Kopyalama başarılı.               onet.removenetworkdrive "z:", true          end if      ' Komut hangi düzeltme ekinin yükleneceğini biliyor.     end if ' Sonraki IP adresini yap ve sonra sonraki IP adresini yap... wendoipFile.close()'Temizle, sürücü eşlemesini kaldır (bu defa denetle, çünkü eşlenmemiş olabilir).if ofs.folderexists("z:\") then     onet.removenetworkdrive "z:", trueend ifwscript.echo vbCrLf & "Düzeltme ekini uygulama tamamlandı. Çıkılıyor."function detectOSPatch(osvcRemote)     set oOSInfo = osvcRemote.InstancesOf("Win32_OperatingSystem")     'Aşağıdaki bir foreach olsa da yalnızca bir örnek döndürülür (şu anda etkin olan işletim sistemi).     for each objOperatingSystem in oOSInfo          if (objOperatingSystem.OSType <> 18) then               ' Bu bilgisayarın Windows NT tabanlı olduğundan emin olun.               wscript.echo ip & " Windows XP, Windows 2000 veya Windows 2003 Server bilgisayarı değil."          else               if (objOperatingSystem.Version = "5.0.2195") then                    ' Windows 2000 SP2, SP3, SP4.                    if (objOperatingSystem.ServicePackMajorVersion = 2) or (objOperatingSystem.ServicePackMajorVersion = 3) or _			(objOperatingSystem.ServicePackMajorVersion = 4) then                         systemType = exeW2k                    end if               elseif (objOperatingSystem.Version = "5.1.2600") then                    ' Windows XP RTM, SP1.                    if (objOperatingSystem.ServicePackMajorVersion = 0) or (objOperatingSystem.ServicePackMajorVersion = 1) then                         systemType = exeWinXP                    end if               elseif (objOperatingSystem.Version = "5.2.3790") then                    ' Windows Server 2003 RTM                    if (objOperatingSystem.ServicePackMajorVersion = 0) then                         systemType = exeW2k3                    end if               end if               if (systemType = "") then                     'Bu Windows NT tabanlı bir bilgisayardı, geçerli bir hizmet paketi yoktu.                    wscript.echo "Düzeltme uygulanamadı " & ip & " - işlenmeyen işletim sistemi sürümü: " & objOperatingSystem.Caption & " SP" & _				objOperatingSystem.ServicePackMajorVersion & "("& objOperatingSystem.Version & ")"               end if          end if     next     detectOSPatch = systemTypeend function
Özellikler

Makale No: 827227 - Son İnceleme: 08/08/2005 18:10:51 - Düzeltme: 5.4

Microsoft Windows Server 2003 Datacenter Edition, Microsoft Windows Server 2003 Enterprise Edition, Microsoft Windows Server 2003 Standard Edition, Microsoft Windows Server 2003 Web Edition, Microsoft Windows XP Professional Edition, Microsoft Windows XP Tablet PC Edition, Microsoft Windows 2000 Advanced Server, Microsoft Windows 2000 Professional Edition, Microsoft Windows 2000 Server

  • kbinfo KB827227
Geri bildirim
dy>