Windows 7: Arama dizine ekleme işlemi sıkıştı


13

Dizin Oluşturma Seçeneklerini açtığımda şöyle diyor:

4.317 öğe endeksli Endeksleme devam ediyor. Arama sonuçları bu süre içinde tamamlanmamış olabilir.

Yine de 4.317'de sıkışmış; başka öğe dizine eklenmedi. Hepsinden kötüsü, SearchIndexer.exe% 100 CPU alıyor (iyi,% 50, ancak çift çekirdekli bir CPU'm var; yapabileceği tüm işlem gücünü alıyor). Ancak sabit disk etkinliğine neden olmuyor.

Dizin Oluşturma Seçenekleri penceresinin altındaki "Arama ve dizine alma sorunlarını giderme" yi tıklamayı denedim, ancak herhangi bir sorun bulunamadı.

Ayrıca birkaç web sitesinin önerdiği onarım kayıt defteri anahtarını denedim; HKLM \ SOFTWARE \ Microsoft \ Windows Search SetupCompletedSuccessfully öğesini 0 olarak değiştirip bilgisayarı yeniden başlattım ve görünüşe göre 1'e döndüğü için onarıldı, ancak aynı sorun oluşmaya devam ediyor.

Dizüstü bilgisayarımın pil ömrünü kısaltır ve fanlarımın sürekli çalışması için gerçekten çok sıcak yapar. Windows Arama hizmetini devre dışı bırakmak zorunda kaldım. Bunu nasıl düzeltebilirim? Bilgisayarımı yeniden biçimlendirmem gerekiyor mu?


Güncelleme:
Birkaç kez yeniden inşa etmeyi denedim. Dizine eklemem gereken konumlarla ilgili olağandışı bir şey yok ve devam eden indirme veya benzeri bir şey yok. Neden durduğuna dair bir neden göremiyorum ve sistem geri yüklemesi için çok geç fark ettim. Bu noktada, birinin sorunu çözecek bazı gizli cevaplar sunmasını umuyorum, böylece ödül.


Başka bir güncelleme:
Sadece tekrar denemek için hizmeti tekrar başlatmayı denedim. İlk başta iyi görünüyordu (Dizin Oluşturma Seçenekleri, kullanıcı etkinliği nedeniyle düşük hızda çalıştığını ve dosya sayısının arttığını gösterdi). Bir süre sonra kontrol ettim ve servis durmuştu. Olay görüntüleyici böyle hatalar verdi:

Log Name:      Application
Source:        Application Error
Date:          2/1/2010 7:34:23 PM
Event ID:      1000
Task Category: (100)
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      ricky-win7
Description:
Faulting application name: SearchIndexer.exe, version: 7.0.7600.16385, time stamp: 0x4a5bcdd0
Faulting module name: NLSData0007.dll, version: 6.1.7600.16385, time stamp: 0x4a5bda88
Exception code: 0xc0000005
Fault offset: 0x002141ba
Faulting process id: 0x13a0
Faulting application start time: 0x01caa39f2a70ec02
Faulting application path: C:\Windows\system32\SearchIndexer.exe
Faulting module path: C:\Windows\System32\NLSData0007.dll
Report Id: b4f7a7ae-0f92-11df-87fc-e5d65d8794c2
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Application Error" />
    <EventID Qualifiers="0">1000</EventID>
    <Level>2</Level>
    <Task>100</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2010-02-02T00:34:23.000000000Z" />
    <EventRecordID>10689</EventRecordID>
    <Channel>Application</Channel>
    <Computer>ricky-win7</Computer>
    <Security />
  </System>
  <EventData>
    <Data>SearchIndexer.exe</Data>
    <Data>7.0.7600.16385</Data>
    <Data>4a5bcdd0</Data>
    <Data>NLSData0007.dll</Data>
    <Data>6.1.7600.16385</Data>
    <Data>4a5bda88</Data>
    <Data>c0000005</Data>
    <Data>002141ba</Data>
    <Data>13a0</Data>
    <Data>01caa39f2a70ec02</Data>
    <Data>C:\Windows\system32\SearchIndexer.exe</Data>
    <Data>C:\Windows\System32\NLSData0007.dll</Data>
    <Data>b4f7a7ae-0f92-11df-87fc-e5d65d8794c2</Data>
  </EventData>
</Event>

Aynı hatayı alıyorsanız ve bir Google aramasından buraya geldiyseniz, lütfen varsa, bu konudaki ilerlemenizi detaylandıran bir yorum ekleyin veya ekleyin:


4
Bu arada ... Herkes bu büyülü 4.317. maddenin ne olduğunu anlamanın bir yolunu biliyor mu? Tüm sistemi sıkıştıran tek bir hatalı biçimlendirilmiş dosya olup olmadığını bilmek isterim.
Ricket

Windows.edb dosyasını ESEDatabaseView adlı bir yeri kullanarak açabilirsiniz: nirsoft.net/utils/ese_database_view.html
user2924019

Yanıtlar:


8

Bence asılmasına neden olan bozuk bir dosya olduğunu söylediğinizde doğru olabilirsiniz. Dosyayı tanımlamaya çalışmanın kaba bir yolu, dosyalar sekmesine gitmek ve dosya türlerinin yarısının dizine alınmasını kapatmaktır. Bırakın koşsun. Ya tamamlar ya da durur. Durursa, yarısını tekrar kapatın. Tamamlanırsa, bozuk dosya türünün diğer yarısında olduğunu bilirsiniz. Bunu yapmak, kötü dosya türünü tanımlamanıza izin verecektir.

Ayrıca, dizine eklenmiş dosya listesine bakın. Dosya türlerinin HTML, düz metin ve benzeri farklı arama sağlayıcıları vardır. Bazı üçüncü taraf uygulamaları tarafından yüklenmiş olabilecek yersiz görünen herhangi bir var mı?

Başka bir fikir, aramanın 4.317. dosyada durmasına izin vermektir. Sonra bir komut istemi çalıştırın. tip

CD c:\
DIR /s /TA /O-D >c:\newt.txt

Bu, tüm dosyaları ve en son erişildikleri zamanı tutacak newt.txt adlı bir dosya oluşturur. Erişildi, yani okundu, değiştirilmedi. Bir dosya düzenleyicisiyle dosyada arama yapmanız gerekir, ancak değiştirilen son birkaç dosyayı arayın. Şansımız varsa, kötü dosyanız orada olacaktır. İyi şanslar!


Güzel ipucu (ikinci fikir). Dizin oluşturucu, bir yerlerde dizine alınmış bir tür günlük dosyası tutmuyor mu? Son dosyayı başarıyla dizine eklememize ve belki de bu şekilde bir ipucu almamıza izin verebilir.
mtone

@mtone - Bir kerede bir klasör dizine eklenebilir mi? Aramayı daraltır.
Nifle

@Nifle - evet, endekslenen klasör sayısını azaltmak da makul bir araştırma olacaktır. Başlat menüsünün altına "indeksleme" yazın ve indeksleme seçeneklerine tıklayın. Bu panel dizine eklediğiniz yerleri listeler.
Knox

İlk Fikir için @Knox +1. Bir eleme [ikili] araması öneriyorsunuz . Ve bunu hata olasılığı anlayışınızla değiştirirseniz ve endekslemeyi önce bunlarla sınırlarsanız, O (log2 N) hızlandırmasından çok daha iyi olabilirsiniz .
ElderDelp

4

Bu bilgiyi Technet forumlarında buldum

Bilinen bir hata gibi görünüyor:

  1. PC'de iki (veya birden çok) sürücü veya bölüm var

  2. Kullanıcı profilleri ve Windows ilk sürücüde veya bölümde bulunur (C sürücüsü harfini varsayalım :)

  3. İkinci sürücü veya bölüm, birincisinden daha fazla kullanılabilir boş disk alanına sahiptir (D harfi sürücüsünü varsayalım :)

  4. PC'de hardlinking ile USMT 4 kullanan bir ConfigMgr 2007 OSD Yenileme Görev Dizisi çalıştırılır Sonra Kullanıcı Dosyalarını ve Ayarlarını Yakala "/" Kullanıcı Durumunu Yakala "görevi başarılı olur, ancak" Kullanıcı Durumunu Geri Yükle "/" Kullanıcı Dosyalarını ve Ayarlarını Geri Yükle "görevi başarısız olur.

çözüm

Sorunu çözmek için OSDStateStorePath değişkeni varsayılan değerinden değiştirilmelidir. MDT 2010 / MDT 2010 Güncelleştirme 1 entegrasyonunu kullanırken, değişkenin "Yerel veya Uzak UserState'i Belirle" görevinde ztiuserstate.wsf komut dosyası tarafından ayarlandıktan sonra yeniden tanımlanması gerekir.

Durum Deposu'nun Windows'un yüklü olduğu ve kullanıcı profillerinin bulunduğu sürücüye / bölüme kaydedildiğinden emin olmak için, SystemDrive ortam değişkeni, OSDStateStorePath değişkenini tanımlayan yolun bir parçası olarak kullanılabilir.

MDT 2010 / MDT 2010 Güncelleştirme 1 entegrasyonu kullanılmıyorsa , OSDStateStorePath değişkenini ayarlayan "Görev Sırası Değişkenini Ayarla" görevinin değiştirilmesi gerekir:

  1. ConfigMgr 2007 Yönetici konsolunda Computer Management-> Operating System Deployment-> Task Sequencesdüğümüne gidin.

  2. Etkilenen Görev Dizisi'ne sağ tıklayın ve "Düzenle" yi seçin.

  3. Set Local State LocationGörevi tıklayın . Görevin, Set Task Sequence Variabledeğişkeni ayarlayan bir görev olduğundan emin olun OSDStateStorePath.

Sonraki Value:metin alanına, onu değiştirmek %_SMSTSUserStatePath% için%SystemDrive%\UserState

  1. Görev dizisini kaydetmek için "Tamam" veya "Uygula" düğmesini tıklayın. "Yerel Durum Konumunu Ayarla" görevi yoksa, OSDStateStorePath değişkenini ayarlayan "Görev Sırası Değişkenini Ayarla" görevini arayın ve sonra yukarıdaki değişiklikleri yapın. MDT 2010 / MDT 2010 Güncelleştirme 1 entegrasyonu kullanılıyorsa, OSDStateStorePath değişkenini yeniden tanımlayan "Yerel veya Uzak Kullanıcı Durumunu Belirle" görevinden sonra yeni bir "Görev Dizisi Değişkeni Ayarla" görevinin eklenmesi gerekir:

  2. ConfigMgr 2007 Yönetici konsolunda Computer Management-> Operating System Deployment-> Task Sequencesdüğümüne gidin.

  3. Etkilenen Görev Dizisi'ne sağ tıklayın ve "Düzenle" yi seçin.

  4. "Yerel veya Uzak Kullanıcı Durumunu Belirle" görevini tıklatın ve sonra "Ekle" -> "Genel" -> "Görev Sırası Değişkenini Ayarla" ya gidin. Bu, "Yerel veya Uzak UserState'i Belirle" görevinden sonra ancak "Durum Deposu İste" görevinden önce bir "Görev Dizisi Değişkeni Ayarla" görevi oluşturmalıdır.

  5. Yeni oluşturulan "Görev Sırası Değişken Görevini Ayarla":

    • Name:Metin kutusunun yanına şunu girin:Set Local State Location
    • Task Sequence Variable:Metin kutusunun yanına girin OSDStateStorePath
    • Value:Metin kutusunun yanına şunu girin:%SystemDrive%\StateStore
  6. Görev dizisini kaydetmek için "Tamam" veya "Uygula" düğmesini tıklayın.

3. Adımda "Yerel veya Uzak UserState'i Belirle" görevi yoksa veya yeniden adlandırılmışsa, ztiuserstate.wsf komut dosyasını çalıştıran "Komut Satırını Çalıştır" görevini arayın ve sonra yukarıdaki adımları izleyin.


4

İlk olarak, dizininizi yeniden oluşturmayı deneyin. Ayrıca, geçici / tamamlanmamış indirmeleri olan klasörleri dizine eklemekten hariç tutun. Bitmemiş dosyalar tanım gereği bozuktur ve işlemi asabilir. Video / ses codec bileşenleri, dizine ekleme meta veriler içeriyorsa da kilitlenebilir.

alternatif metin


Meta veri yorumu hakkında ayrıntılı bilgi verebilir misiniz? Bir şey, bir yerlerde bu şey sıkışıyorsa, belki de düşünmeme yardımcı olacaktır.
Ricket

Dizin oluşturma, dosyalara bakarak meta veriler elde etmeye çalışır. AVI film dosyaları gibi bazı dosya türleri, bu dosyaları açmak ve çözünürlük, uzunluk vb. Almak için codec bileşenlerini (veya genellikle codec bileşeni olarak da adlandırılan konteyner yükleyicileri) gerektirir. Bir dosya bozuksa bu codec bileşeni askıda kalabilir. Bununla birlikte, Windows 7'de şu ana kadar sorunla karşılaşmadım, ancak XP'de yaygın bir sorun vardı.
mtone

4

Aramam bozuk bir Outlook.pst dosyası nedeniyle sıkıştı. SCANPST.EXEOutlook 2007 yürütülebilir dosyasıyla aynı dizinde bulunan pst onarım yardımcı programını çalıştırdım ( C:\Program Files (x86)\Microsoft Office\Office12Windows 7 x64 makinemde.)

resim açıklamasını buraya girin


1
Dosya adı: SCANPST.EXE
M. Dudley

2

Sabit diskinizin ölmediğini doğruladınız mı?

Sürücüye sağ tıklayın, Özellikler iletişim kutusunu açın, Araçlar sekmesine gidin ve bir hata kontrolü gerçekleştirin (bozuk sektör taraması ile).


Evet, temel bilgilerin doğru çalıştığından emin olmak için çok iyi bir fikir. Ayrıca olay günlüğünde sistem hataları olup olmadığını kontrol edin.
Knox

2

Burada sorulan sorulardan biri, SearchIndexer.exe dosyasının engellenip engellenmediğini, hataya neden olup olmadığını veya asılı olup olmadığını veya hala ilerleme olup olmadığını görmekti. Ayrıca, şu anda hangi dosyanın dizine eklendiğini görmek güzel olurdu.

İşte bulmanın bir yolu.

Microsoft, MSS.log (daha sonra diğer adlarda kopyalanır ve değiştirilir ve daha sonra silinir) gibi arama sırasında oluşturulan günlük dosyaları ikili dosyalardır ve özel araçlarla okunmadıkça okunamaz.

Başka bir alternatif, tek bir dosyada asılı olup olmadığını bulmaya çalıştım SysInternal'ın İşlem Monitörü'nü beslemekti . Filtreyi aşağıdaki gibi ayarladım:

  • süreci dahil et SearchProtocolHost.exe(not: değil SearchIndexer.exe ),
  • etkinlik türünü dahil et File System,
  • C:\Windowsve C:\ProgramDatadizinlerindeki herhangi bir şeyi hariç tutma ,
  • ve / veya gerçekte dizine eklediğiniz dizinleri ekleyin,
  • isteğe bağlı olarak Çalışma olarak ayarlayın ReadFile.
  • Uygula'yı veya Tamam'ı tıklayın ve ardından sol üstteki Yakala düğmesini tıklayın.

Sonuçta ortaya çıkan olay görünümü ReadFile, şu anda Microsoft Arama Dizini hizmeti tarafından okunmakta olan tüm işlemleri (ve bazılarını) sağlar.

Uzun bir ReadFileişlem listesi olmalı ve şu anda dizinlenmekte olan dosyalar Yol sütunundadır. Sonuç sütununda SUCCESS(yoksa, sorununuz var) ve Ayrıntı sütununda sürekli olarak farklı bir ofset gösterilmelidir (eğer değilse, döngü oluşturuyor ve bu yine de sorunun nedeni için olası bir ipucu).


1
+1 @Able Sys | nternals için bağlantı hala çalışıyor! Bu SysInternals Suite
ElderDelp
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.