outcoldman
outcoldman Denis Gladkikh

История одного Upgrade с Vista x64 на Windows 7 x64, а так же Win7 vs WSUS и WPF vs NVIDIA

WPF, NVIDIA, Vista, Windows 7, x64, and WSUS

Данный пост включает в себя три истории: а) немного о том, как обновить Vista на Windows 7; б) о текущих проблемах Microsoft Windows Server Update Services и Windows 7; в) О новом баге драйверов NVIDIA, который проявляется в WPF приложениях.

UPGRADE

Я уже говорил в своем блоге, что Vista x64 Ultimate может обновляться на Windows 7 x64, и так как я в некоторой мере ленив и мне не хочется тратить время на отдельную установку Windows 7, установку ПО и настройку системы, а так же переноса параметров – то я решил воспользоваться данной возможностью (честно – первый раз, когда я пользуюсь возможностью обновления одной ОС на другую).

Реально – проблем, связанных именно с тем, что я обновлял операционную систему а не устанавливал отдельно – я не встретил, был только маленький пустяк, о котором ниже. Обновление заняло у меня около 2-х часов, точнее у меня оно заняло 5 минут, а у компьютера около 2-х часов. Первое с чем встречаешься – это проверка установленного ПО на вашей операционной системе и предупреждения инсталлятора о том, какие продукты нужно удалить, чтобы была возможность продолжить установку, а какие возможно не будут работать после обновления. В моем случае мне пришлось удалить Alcohol 120% (который и так не работал, потому что был в trial) и Virtual PC 2007 SP1 (потому что для Win7 выходит новый Virtual PC – пока что в стадии RC). Так же инсталлятор поругался на SQL Server 2008 (это уже известная проблема – ругается и при установке на Win7, но работает), что может быть не будет работать (чего не случилось), а так же написал о том, что всякие Vista Ultimate Extras так же не будут работать.

Во время обновления компьютер сам перезагружался пару раз вроде, зашел я на свой компьютер через пару часов уже через RDP. На следующий день я пришел и увидел еще окошко для ввода серийного номера, и все – вот и весь upgrade.

Во время обновления я заметил 5 пунктов по которым происходил апгрейт – одним из них копирование всего что есть в backup (файлы приложений, настройки и т.п.), а другой это копирование из бекапа всего по необходимым местам новой ОС. То есть реально Windows 7 ставиться пустой, а затем уже происходит копирование в него всех сохраненных настроек и программ.

Маленький пустяк, который я встретил после обновления, и в котором виновато именно то, что я обновлял систему – на дисках остались папки с именами $INPLACE.~TR и $WINDOWS.~Q. Их можно просто удалить.

Теперь о проблемах, которые я встретил после, и в которых уже нет вины того, что систему я именно обновлял а не устанавливал с нуля.

WSUS и Windows 7

Многие в своих компаниях, да и дома используют локальный Microsoft Windows Server Update Services. Так как Vista у меня была настроена получать обновления оттуда, то и WIndows 7 полез за ними туда же, и тут я начал видеть такие вот окна:

Untitled

Первый Code ошибки, который я получил был 0x8007000D. Вообще посмотреть подробный лог об ошибках можно в каталоге Windows в файле WindowsUpdate.log, а посмотреть, что значат коды ошибок тут: Windows Update Error Codes, как видите данный код ничего умного не говорил, в логах тоже было не много информации. Но все оказалось немного проще – помогло обновление текущего WSUS версии 2.0 SP1 до версии 3.0 SP1 (обновление WSUS было достаточно продолжительным). Windows 7 можно выбрать во WSUS даже версии 2.0 SP1, поэтому наш шаг был просто пробой, которая помогла.

Следом правда мы уже все, со всех компьютеров и любых операционных систем увидели ошибку с кодом 0x80244019, решение было найдено моментально, всего то при апдейте пропала виртуальная директория SelfUpdate на сайте WSUS, которая должна быть направлена на каталог C:\Program Files\Update Services\Selfupdate.

Последнюю ошибку которую я увидел – это 0x80072EE2, но тут мне уже помогла помощь самой Windows, нужно было добавить исключение в Firewall в Advanced Settings -> Outbound Rules. И вот почти что финиш я увидел картинку:

Untitled

В логах WSUS правда за мной значилась операционная система Windows Vista Ultimate Edition. Для того, чтобы поддерживался клиент Windows 7 – нужно ставить WSUS 3.0 SP2, который еще в статусе RC, либо обновляться с официального сайта Microsoft, мы пока не стали обновляться до SP2, пока он находится в состоянии RC, подождем.

WPF и NVIDIA

Другая проблема, которая возникла – это проблемы с WPF приложениями, как оказалось – проблема не только проявляется в Windows7. В Win7 я ее заметил, так как обновление мне поставило более свежие драйверы на мою встроенную видеокарту GeForce 7100.

Сначала о самой проблеме – она возникает во время использования всяческих Effects для отображения WPF приложений, в моем случае это был DropShadowEffect. Заметить данную проблему легко – у вас не отображаются контролы, на которые вы наложили эффекты, либо отображаются, но как-нибудь наполовину или моргают или еще что то вроде того.

Протестировать данный bug можно очень легко, создайте WPF приложение и поместите на него следующий набор контролов (данный тест я нашел на одном из форумов, пока искать суть проблемы):

<Window x:Class="WpfApplication1.Window1" 
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
   Title="Window1" Height="300" Width="300"> 
    <Canvas TextBlock.FontSize="14"> 
        <Border Margin="4" Background="White" BorderBrush="Black" BorderThickness="1"> 
            <Grid> 
                <TextBlock Text="Without Effect" Margin="0.5" Background="LightGoldenrodYellow"/> 
            </Grid> 
        </Border> 
 
        <Border Canvas.Top="30" Margin="4" Background="White" BorderBrush="Black" BorderThickness="1"> 
            <Border.Effect> 
                <DropShadowEffect Color="Black" ShadowDepth="4" BlurRadius="8" Opacity="0.5"/> 
            </Border.Effect> 
 
            <Grid> 
                <TextBlock Text="With Effect, Aligned" Margin="0.5" Background="LightGoldenrodYellow"/> 
            </Grid> 
        </Border> 
 
        <Border Canvas.Top="60.5" Margin="4" Background="White" BorderBrush="Black" BorderThickness="1"> 
            <Border.Effect> 
                <DropShadowEffect Color="Black" ShadowDepth="4" BlurRadius="8" Opacity="0.5"/> 
            </Border.Effect> 
 
            <Grid> 
                <TextBlock Text="With Effect, Misaligned" Margin="0.5" Background="LightGoldenrodYellow"/> 
            </Grid> 
        </Border> 
    </Canvas> 
</Window>

Попробуйте найти разницу между средним и последним Border и их содержимым (кроме Canvas.Top). Верно никаких, но результат потрясающий:

Untitled2

Слева вид в дизайнере, справа – запущенное приложение. Второго Border просто нет. На машинах, на которых данного бага не будет – увидят все три контрола. Данная ошибка уже присутствует на http://connect.microsoft.com, но виноваты в ней новые драйверы NVIDIA.

P.S.

Windows 7 мне определенно нравится. Дома все еще ленюсь обновить Windows 7 RC до RTM (Вроде и так хватает) :)

Have feedback or questions? Looking for consultation?

My expertise: MongoDB, ElasticSearch, Splunk, and other databases. Docker, Kubernetes. Logging, Metrics. Performance, memory leaks.

Send me an email to public@denis.gladkikh.email.

The content on this site represents my own personal opinions and thoughts at the time of posting.

Content licensed under the Creative Commons CC BY 4.0.