Марк Русинович на Руски
Случаят се отнася до моята любима категория на случаи, в които съм бил със свои сили и средства за решаване на проблема, който ми повлия най-много. Този случай е основно може да засегне всеки, особено на тези, които пътуват много, и демонстрира използването на някои функции на монитора програма Process, което мнозина не осъзнават, което го прави идеален за описанието и разпространението.
Историята се развива през последната седмица, когато отидох в Орландо да се говори по време на конференцията, Microsoft TechEd Северна Америка. Когато бях там, аз се блъсна в пет минути закъснение, когато влезете във вашия Windows 7 система, следвани от черен екран:
Използвах да приписват отделни закъснения, като например тази, за сметка на проблем с мрежата, често конференции с тяхната WiFi мрежа, осигурени от хотела. Но аз постоянно тече до този проблем, като превключването между Windows 8, инсталирана на лаптопа си система за тестване и представяне, както и Windows 7, където има инструменти за разработка. Се заключен в това време на компютъра - не е достатъчно да се каже, ще е малко по-раздразнен.
За първи път, когато имаше черен екран, аз насилствено рестартира след няколко минути чакане, защото мисълта, че тя бе затворено. Когато Забавянето е възникнало за втори път, бях принуден да чакам и да се изправи пред разочароващ факта, че моята система е извън строя. Когато отново излизаше и влизаше в без да се налага да се рестартира, забавянето не е извършено. Това се случва само след рестартиране, което и направих, като превключите между Windows 7 и Windows 8. Какво е най-тъжно, когато ми се рестартира, побързах да следващото ми представяне, така че бях принуден да изтърпи неудобството за няколко дни, докато не намери възможност да проучи въпроса.
След като имаше свободен момент, аз стартира програмата Sysinternals Autoruns. Разширени програми контролна среда за стартиране за предотвратяване на всички изображения, намиращи се на споделени мрежови ресурси. Въз основа на миналия опит, започнете Autoruns на моя лаптоп бях наясно, че услугата Microsoft IT конфигурира броя на планирани задачи да тече партида файлове, разположен на дела на корпоративната мрежа, и подозираше, че времето за изтичане са свързани с опит да ги изпълните:
Излязох и се върна, стискайте палци, но закъсненията са все още на мястото си. Следващата стъпка, аз се опитах да влезе в местния акаунт, за да видите дали проблемът е в цялата система, или само свързан с моя профил. Не забавяне. Това е положителен знак, защото това означава, че проблемът не е нито е свързано с това, което може да е сравнително лесно да се определи след откриването.
Сега целта ми е да се установи, че се съхранява на преминаване към работния плот. Имах нужда от начин да се види какво ще се случи по време на регистрацията в системата веднага след изтеглянето. Методът, веднага ми идва на ум - да се използват Sysinternals Process Monitor да записва събитията от процеса по стартиране. Process Monitor - инструмент, който записва операции за цялата система с файловата система, регистър, процеси, DLL, и мрежата - е в състояние да записва действията от най-ранните етапи на багажника, докато системата се изключва, или докато тече Монитор потребителски интерфейс процес. Аз избрах да изтеглите запис от менюто с опции и отвори диалогов прозорец за влизане зареждане:
Този диалогов прозорец ви позволява да персонализирате програмата за събиране на следи от събития, докато мониторинг изтегляне, които са периодични стекове конци снимки. Избрах една втора следа, надявайки се, че дори и да не би забелязал операции, като обясни закъснението, не мога да се намери решение на стаковете на резбата които са били активни, точно преди закъснение или когато се състояха.
За съжаление, филтърът изчиства прозореца на продукцията и разби надеждите на моите бързо да намерят следа.
Което предполага, че може би последователността на процесите, протичащи при влизане в системата може да доведе до нещо такова, аз отворих процеса на дървена диалог от менюто Tools. Този диалогов прозорец показва връзката родител-дете за всички активни процеси с регистрационните записи на този случай натоварването означава всички процеси, работещи по време на зареждане и за влизане. Фокусирайки се върху winlogon.exe, интерактивна управителя на влизане, аз забелязах, че процесът е започнал Atbroker.exe около когато влязох пълномощията си, а след това Userinit.exe извършва, когато най-накрая, на десктопа се появява:
Ключът към решаването на загадката е в дълга пауза между двете събития. Знаех Logonui.exe просто показва интерфейс за вход от потребителя, и Atbroker.exe - механизъм подкрепа за прехода от входния интерфейс за сесията на потребителя, премахване на паузата, поне в началото. Черен екран изчезва, когато Userinit.exe стартиране, така че си родителски процес winlogon.exe остава под подозрение. Аз настроите филтър за включване само на събития от winlogon.exe и добави колона относителна време, за да се контролират лесно, когато събитието настъпили в сравнение с началото на изтеглянето. Когато погледнах към резултатите, веднага видя, че закъснение от около шест минути, но в този период от време, през който няма активност, който да показва своята причина:
Трейс събития са изключени по подразбиране, така че аз кликнали върху бутона за събитие филтър трасиращ в лентата с инструменти, за да ги включи в списанието, надявайки се, че ще се хвърли светлина върху проблема:
За да се намали размера на лог файл, Монитор трасиращ процес улавя конец стековете само ако конецът се изпълнява в последния момент, че е записано в дневника. Така че бих искал да погледнете следа поток събитие в началото на забавянето, но очите ми паднаха на всеки втори повтаря последователност от същите четири потоци по време на целия период на съществуването на черен екран:
Бях сигурен, че всеки поток ще спре да прави някакво действие в началото на интервала, и спеше върху останалата част от неговата дължина, така скептичен, че някой от тези потоци е свързано с проблема, но все пак си струва Отделете няколко секунди, за да ги погледне. Отворих Прозорецът в случай на една от тези групи чрез двукратно щракване върху събитието и включва стек сраници, почти надявайки се, че имената на функцията обаждане в стека бърз отговор.
Когато за първи път стартира система за наблюдение на процеса аз го конфигуриран да получава символа за Windows изображения от сървъра обществен символ на Microsoft, използвайки DLL грешки механизъм на инструментите за отстраняване на грешки за Windows. да се види в рамка стека смислени имена Windows изпълними модули функция, а не само за промяна в файловете.
Стек първия поток поток я определя като "държавна машина» ядро Winlogon очаква някакъв неизвестен предупреждение, и не съдържа нищо интересно:
Stack следващата нишка също не обяснява нищо не показва, че потокът е една обща нишка на изпълнение:
Stack трети поток е много по-интересно. Той е на няколко нива, включително функция призовава Множествена UNC Provider (МУП) и водачите на клиент DFS отговорен за достъп до сървъра на файл:
Тичах през списъка, за да видите по-нататък рамките лежат над комина, както и името на една от функциите, WLGeneric_ActivationAndNotifyStartShell_Execute. Той потвърди, че този поток и е отговорен за проблема, тъй като тя работи десктопа на обвивката:
Следваща рамка функция, WNetRestoreAllConnectionsW. с последващи разговори с функциите на файлов сървър, тя ме накара да се заключи, че Winlogon се опита да възстанови спазването на букви на файлов сървър дискове, преди да продължите стартирането на черупка и да даде достъп до работния плот. Отворих Explorer, помня, че имаше две устройства, които се показват на споделени мрежови устройства, разположени на компютрите в мрежата на Microsoft, един за моята система за развитие, а другата за вътрешен ресурс на Sysinternals, където публикува предварителните версии на комунални услуги. Докато по време на конференцията, аз не са имали достъп до интранет, така Winlogon не може да ги свърже по време на процедурата за влизане, и в крайна сметка, след много минути, даде:
Разбира се, че е намерил otgadku, кликнах върху десния бутон на мишката върху всеки ресурс, и да го изключите. Аз рестартира лаптопа, за да проверите корекция (или по-скоро, временно решение), както и за едно голямо удовлетворение е убеден, че по време на процедурите за вход, отне само няколко секунди, преди появата на работния плот. Делото е затворен! Разглеждане защо тези забавяния са достатъчно дълго, имах нито време, нито необходимостта. Поуката от тази история не е самия проблем, а по-скоро как да се използват инструментите на Sysinternals и техники за отстраняване на неизправности за решаване на проблемите.
А също така можете да гледате записи на всички изказвания и в двете събития на съответните Интернет сайтове:
Надявам се ползва този бизнес!