Задать вопрос

Слишком быстрая загрузка Windows 7 на SSD (Вход в профиль происходит до инициализации сети)[Не домен, Домашний ПК]

Добрый день! Дома столкнулся с такой проблемой: Windows 7, свежеустановленная на SSD, прогружается настолько быстро, что профиль с приложениями из «автозагрузки» прогружается еще до включения сети (отсюда при старте куча ошибок стиля «Could not connect»). Подскажите, как можно данную проблему решить штатными-нештатными средствами?

В идеале хотелось бы, конечно, добавить условие наличия сети перед автозагрузкой.
Но в крайнем случае подойдет и классическое
ping -n 20 127.0.0.1 > nul


Напоминаю, что Windows не в домене, посему параметры GPO
* Always wait for the network at computer startup and logon
* Startup policy processing wait time
Не пашут.
Приоритет загрузки службы dhcp и драйвера e1express тоже не помогает

UPD: Сам решил до приемлемого для себя уровня Link, далее ковырять не буду
  • Вопрос задан
  • 12918 просмотров
Подписаться 12 Оценить 6 комментариев
Решения вопроса 1
FilimoniC
@FilimoniC Автор вопроса
Переписал на VBScript. Решение более красивое, проверяет внутренний ConnectionState винды на всех соединениях Ethernet (Ждет Connected или 120 секунд)

Запускается аналогично, через групповую политику
(GPEDIT.MSC -> Конфигурация компьютера -> Конфигурация Windows -> Сценарии -> Автозагрузка), а именно, через CScript (WScript не подойдет, так как возвращает выполнение родителю после запуска, CScript — после выполнения)


Дополнительно включено
(GPEDIT.MSC -> Конфигурация компьютера -> Административные шаблоны -> Система -> Сценарии -> Выполнять сценарии входа в систему синхронно: Включено)

strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
'Получить список адаптеров, где AdapterType = 0 (что значит 802.3 (Ethernet))
Set colAdapters = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter WHERE AdapterTypeID = 0")

adapter_number = 0
For Each objAdapter in colAdapters
	adapter_number = adapter_number + 1
Next
flag_stoploop = False
cnt_timeout = 120 'Seconds
time_start = Now()

'Проверить количество адаптеров
If adapter_number <= 0 Then
		'WScript.Echo "No adapters found!"
		WScript.Quit
End If

while not flag_stoploop

	If DateDiff("s",time_start,Now()) > cnt_timeout Then
		flag_stoploop = True
		'WScript.Echo "Stopping because of timeout"
		WScript.Quit
	End If

	Set colAdapters = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter WHERE AdapterTypeID = 0")	

	For Each objAdapter in colAdapters
	WScript.Sleep 500 
	If (objAdapter.NetConnectionStatus = 2) Then
		flag_stoploop = True
		'WScript.Echo "Stopping because of connected"
		Wscript.Quit
	End If
 
	Next


Также определил, что проблема в том, что адаптер слишком долго уведомляет систему о наличии подключенного кабеля Ethernet, буду копать, в чем проблема — роутер или же сетевуха компьютера.
Ответ написан
Пригласить эксперта
Ответы на вопрос 9
hack2root
@hack2root
Возьмите в руки утилиту, с помощью которой поменяйте порядок загрузки драйверов Windows 7.(How To Control Device Driver Load Order)
Ответ написан
vadymg
@vadymg
>Напоминаю, что Windows не в домене, посему параметры GPO не пашут
Почему не пашут? А как же локальные групповые политики?
Ответ написан
alternativshik
@alternativshik
Поставьте руками параметры сети, а не через DHCP, возможно, просто не успевает настроиться интерфейс…
Ответ написан
foxmuldercp
@foxmuldercp
Системный администратор, программист, фотограф
Странно, у меня SSD, была win7, сейчас w2008r2, (обе со всеми обновлениями, не домен) в автозагрузке скайп, аська, gtalk и куча другого зависимого от сети хлама, таких проблем нет, хотя у меня везде стоит пароль.обычно когда ввожу пароль и вхожу в систему, всё уже запущено и в сети. Какое из п/о у Вас ругается?
GPO… Вообще-то на локальных машинах без домена прекрасно работают локальные политики безопасности начиная с w2k, с доменом да, добавляется GPO.
Ответ написан
@Tramvai
Ответ написан
Комментировать
ngreduce
@ngreduce
Можно попробовать утилиты, которые выполняют автозагрузку позже. Или написать такую.
Ответ написан
FilimoniC
@FilimoniC Автор вопроса
Решил проблему так:
1. Почему не пашут, я не понимаю. Не пашут политики эти и все.
2. Скрипт в автозагрузку через те же GPO
3. Отключение асинхронного процессинга стартап-скриптов ( ?: RunStartupScriptSync )

@echo off
c:
cd c:\windows\system32
SET STARTUP_NETTEST_COUNT=0
:label0
IF %STARTUP_NETTEST_COUNT% GEQ 60 GOTO end_timeout
SET /A STARTUP_NETTEST_COUNT=%STARTUP_NETTEST_COUNT% + 1
ping -n 3 127.0.0.1 1> NUL 2>&1
ping -4 8.8.8.8 -n 1 -w 500 1> NUL 2>&1
IF %ERRORLEVEL% == 0 GOTO end_networkready
GOTO label0
:end_timeout
echo "%DATE% %TIME% Network ready timeout after %STARTUP_NETTEST_COUNT% tries!" 
goto end
:end_networkready
echo "%DATE% %TIME% Network is ready now after %STARTUP_NETTEST_COUNT% tries!" 
goto end
:end

Ответ написан
izmalk
@izmalk
ёёёкарный бабай! Я теперь понял, почему на домашнем компе часто стим и еще пара прог теряет сеть сразу при включении (для стима это заканчивается заметным диалоговым окном о том что он не подключился и отказывается стартовать).
Ответ написан
Комментировать
@Sansei
Почти такая же проблема. Токо в домене.
2-ва компа (из 33-х) подключены по Wi-Fi.
Групповая политика не отрабатывается.
Что посоветуете?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы