Средство просмотра фотографий в Windows Server 2019/2016
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов в рунете Pyatilistnik.org. В прошлый раз мы с вами разобрали, как изменить формат файла в Windows системах. Движемся дальше и сегодня я вас научу возвращать в видимый состав Windows Server 2016 или Windows Server 2019, такого компонента Photo Viewer ( средство просмотра фотографий Windows). Он как выяснилось отсутствует в системе есть, но воспользоваться вы им не можете пока не произведете некоторые манипуляции, в очередной раз удивляюсь для чело Microsoft опять все усложнило.
Возможности рабочего стола в Windows Server 2019
Ранее мы с вами устанавливали Windows Server 2012 R2, это хорошая операционная система, которая после инсталляции имеет минимальный функционал, который можно расширять за счет ролей и компонентов. Когда вы установите роль удаленных рабочих cтолов и запустите пользователей на ваш RDS сервер, то первое на что они пожалуются, это будет отсутствие компонента средства просмотра фотографий, к которому они привыкли на клиентских версиях. И это нормально, кому удобно открывать файлы формата jpeg, png, bmp и другие через встроенный, классический paint.
Для решения данной проблемы мы устанавливали компонент "Возможности рабочего стола (Desktop Experience)". Возможности рабочего стола возвращал в систему:
- Photo Viewer ( средство просмотра фотографий Windows)
- Средство очистки диска (Disk Cleanup)
- Проигрыватель Media Player
- Темы оформления
Все это великолепно, до тех пор когда вы не установите службу удаленных рабочих столов на Windows Server 2019, посмотрев список компонентов, вы не обнаружите "Возможности рабочего стола (Desktop Experience)", по простой причине, что он якобы уже устанавливается во время установки Windows с графическим режимом. Но вы же понимаете, что пользователям по барабану на вашу ситуацию, им нужна комфортная работа на хостах RDSH, и тут у вас два выхода, либо поставить сторонний софт, что не очень хорошо, дополнительная сущность для обновления, и второй вариант раскопать внутренности Windows Server 2019 и попытаться найти там встроенный, но спрятанный PhotoViewer. Я пошел по второму варианту.
Как вернуть Photo Viewer в Windows Server 2019/2016
По умолчанию в Windows Server 2019 не зарегистрирована специальная библиотека отвечающая за работу компонента "Средство просмотра фотографий Windows". Перейдите в:
Тут есть библиотека PhotoViewer.dll, которая и отвечает за "Средство просмотра фотографий Windows". Чтобы ее зарегистрировать, вам нужно открыть командную строку от имени администратора и ввести:
Теперь, когда мы зарегистрировали необходимую .dll, нам нужно импортировать ключи реестра, которые добавят Windows Photo Viewer в меню "Открыть с помощью" и установить ассоциации файлов по умолчанию для .jpg, .jpeg и .jpe файлы. Кстати так же отдельно зарегистрировать библиотеку PhotoViewer.dll вы можете и с помощью моего ключа реестра, который будет в составе пакета, описанного ниже. Вот его содержимое:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Applications\photoviewer.dll]
[HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell]
[HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\open]
"MuiVerb"="@photoviewer.dll,-3043"
[HKEY_CLASSES_ROOT\Applications \photoviewer.dll\shell\open\command]
@=hex(2):25,00,53,00,79,00,73, 00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
00,5c,00,53,00,79,00,73,00,74,00, 65,00,6d,00,33,00,32,00,5c,00,72,00,75,00,\
6e,00,64,00,6c,00,6c,00,33,00,32, 00,2e,00,65,00,78,00,65,00,20,00,22,00,25,\
00,50,00,72,00,6f,00,67,00,72,00, 61,00,6d,00,46,00,69,00,6c,00,65,00,73,00,\
25,00,5c,00,57,00,69,00,6e,00,64, 00,6f,00,77,00,73,00,20,00,50,00,68,00,6f,\
00,74,00,6f,00,20,00,56,00,69,00, 65,00,77,00,65,00,72,00,5c,00,50,00,68,00,\
6f,00,74,00,6f,00,56,00,69,00,65, 00,77,00,65,00,72,00,2e,00,64,00,6c,00,6c,\
00,22,00,2c,00,20,00,49,00,6d,00, 61,00,67,00,65,00,56,00,69,00,65,00,77,00,\
5f,00,46,00,75,00,6c,00,6c,00,73, 00,63,00,72,00,65,00,65,00,6e,00,20,00,25,\
00,31,00,00,00
[HKEY_CLASSES_ROOT\Applications \photoviewer.dll\shell\open\DropTarget]
"Clsid"="{FFE2A43C-56B9-4bf5-9A79-CC6D4285608A}"
[HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\print]
[HKEY_CLASSES_ROOT\Applications \photoviewer.dll\shell\print\command]
@=hex(2):25,00,53,00,79,00,73,00, 74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
00,5c,00,53,00,79,00,73,00,74,00, 65,00,6d,00,33,00,32,00,5c,00,72,00,75,00,\
6e,00,64,00,6c,00,6c,00,33,00,32, 00,2e,00,65,00,78,00,65,00,20,00,22,00,25,\
00,50,00,72,00,6f,00,67,00,72,00, 61,00,6d,00,46,00,69,00,6c,00,65,00,73,00,\
25,00,5c,00,57,00,69,00,6e,00,64, 00,6f,00,77,00,73,00,20,00,50,00,68,00,6f,\
00,74,00,6f,00,20,00,56,00,69,00, 65,00,77,00,65,00,72,00,5c,00,50,00,68,00,\
6f,00,74,00,6f,00,56,00,69,00,65, 00,77,00,65,00,72,00,2e,00,64,00,6c,00,6c,\
00,22,00,2c,00,20,00,49,00,6d,00, 61,00,67,00,65,00,56,00,69,00,65,00,77,00,\
5f,00,46,00,75,00,6c,00,6c,00,73, 00,63,00,72,00,65,00,65,00,6e,00,20,00,25,\
00,31,00,00,00
[HKEY_CLASSES_ROOT\Applications \photoviewer.dll\shell\print\DropTarget]
"Clsid"="{60fd46de-f830-4894-a628-6fa81bc0190d}"
Чуть не забыл для любителей PowerShell, есть возможность подключить библиотеки и с его помощью. Создайте скрипт с таким содержимым, только не забудьте отключить защиту запуска неподписанных скриптов или же откройте PowerShell ISE в режиме администратора и введите:
If ( -Not ( Test-Path "Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell")){New-Item -Path "Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell" -ItemType RegistryKey -Force}
If ( -Not ( Test-Path "Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\open")){New-Item -Path "Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\open" -ItemType RegistryKey -Force}
Set-ItemProperty -path "Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\open" -Name "MuiVerb" -Type "String" -Value "@photoviewer.dll,-3043"
If ( -Not ( Test-Path "Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\open\command")){New-Item -Path "Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\open\command" -ItemType RegistryKey -Force}
Set-ItemProperty -path "Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\open\command" -Name "(Default)" -Type "ExpandString" -Value "%SystemRoot%\System32\rundll32.exe `"%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll`", ImageView_Fullscreen %1"
If ( -Not ( Test-Path "Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\open\DropTarget")){New-Item -Path "Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\open\DropTarget" -ItemType RegistryKey -Force}
Set-ItemProperty -path "Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\open\DropTarget" -Name "Clsid" -Type "String" -Value "{FFE2A43C-56B9-4bf5-9A79-CC6D4285608A}"
If ( -Not ( Test-Path "Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\print")){New-Item -Path "Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\print" -ItemType RegistryKey -Force}
If ( -Not ( Test-Path "Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\print\command")){New-Item -Path "Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\print\command" -ItemType RegistryKey -Force}
Set-ItemProperty -path "Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\print\command" -Name "(Default)" -Type "ExpandString" -Value "%SystemRoot%\System32\rundll32.exe `"%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll`", ImageView_Fullscreen %1"
If ( -Not ( Test-Path "Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\print\DropTarget")){New-Item -Path "Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\print\DropTarget" -ItemType RegistryKey -Force}
Set-ItemProperty -path "Registry::HKEY_CLASSES_ROOT\Applications\photoviewer.dll\shell\print\DropTarget" -Name "Clsid" -Type "String" -Value "{60fd46de-f830-4894-a628-6fa81bc0190d}"
Теперь в контекстном меню у вас уже будет доступен пункт "Открыть с помощью - Просмотр фотографий Windows"
После скачивания вам нужно распаковать архив, в итоге у вас будет вот такой состав.
- ON_Windows_2016_2019_Photo_Viewer.reg - Добавляет нужные ключи реестра для ассоциации, запускается первым.
- PhotoViewer.all.reg - сопоставляет ассоциации для bmp, jpe, jpeg, jpg, png, tif, tiff со средством просмотра фотографий Windows (Применяется сразу и не требует перезагрузку сервера, применяется для всех пользователей)
- PhotoViewer.bmp.reg - сопоставляет ассоциации для bmp (Применяется сразу и не требует перезагрузку сервера, применяется для всех пользователей)
- PhotoViewer.jpe.reg - сопоставляет ассоциации для jpe (Применяется сразу и не требует перезагрузку сервера, применяется для всех пользователей)
- PhotoViewer.jpeg.reg - сопоставляет ассоциации для jpeg (Применяется сразу и не требует перезагрузку сервера, применяется для всех пользователей)
- PhotoViewer.jpg.reg - сопоставляет ассоциации для jpg (Применяется сразу и не требует перезагрузку сервера, применяется для всех пользователей)
- PhotoViewer.png.reg - сопоставляет ассоциации для png (Применяется сразу и не требует перезагрузку сервера, применяется для всех пользователей)
- PhotoViewer.tif.reg - сопоставляет ассоциации для tif (Применяется сразу и не требует перезагрузку сервера, применяется для всех пользователей)
- PhotoViewer.tiff.reg - сопоставляет ассоциации для tiff (Применяется сразу и не требует перезагрузку сервера, применяется для всех пользователей)
- Register_Only_PhotoViewer.dll.reg - регистрирует библиотеку PhotoViewer.dll
Для того, чтобы ваша Windows Server 2019 могла правильно использовать средство просмотра фотографий в Windows, вам нужно добавить ключи реестра отвечающие за эти ассоциации. Сама ветка реестра находится по пути:
По умолчанию, там есть два ключа отвечающие за tif и tiff.
По их аналогии я создаю ключи для:
- ".jpg"="PhotoViewer.FileAssoc.Jpeg"
- ".wdp"="PhotoViewer.FileAssoc.Wdp"
- ".jfif"="PhotoViewer.FileAssoc.JFIF"
- ".dib"="PhotoViewer.FileAssoc.Bitmap"
- ".png"="PhotoViewer.FileAssoc.Png"
- ".tiff"="PhotoViewer.FileAssoc.Tiff"
- ".jxr"="PhotoViewer.FileAssoc.Wdp"
- ".bmp"="PhotoViewer.FileAssoc.Bitmap"
- ".jpe"="PhotoViewer.FileAssoc.Jpeg"
- ".jpeg"="PhotoViewer.FileAssoc.Jpeg"
- ".gif"="PhotoViewer.FileAssoc.Gif"
- ".tif"="PhotoViewer.FileAssoc.Tiff"
Запустите файл "ON_Windows_2016_2019_Photo_Viewer.reg". Подтвердите добавление ключа реестра.
В результате чего у вас прибавится ключей реестра.
Далее вы можете уже запускать файлы под свои форматы, или же запустить PhotoViewer.all.reg, который сопоставит ассоциации для bmp, jpe, jpeg, jpg, png, tif, tiff со средством просмотра фотографий Windows (Применяется сразу и не требует перезагрузку сервера, применяется для всех пользователей). В результате файлы данных форматов будут открываться для пользователей в привычном режиме.
Как сделать Photo Viewer программой по умолчанию через групповую политику
Еще можно сделать отдельную политику, которая будет делать ассоциацию файлов jpeg, jpg, png, bmp, tif, tiff со средством просмотра фотографий через GPO.
Суть метода в использовании XML файла (DefAppAssoc.xml) в котором будут прописаны все ассоциации. Данный файл будет импортироваться пользователю при входе в систему. Сам метод я подробно описывал, вот пример такого файла.
Как дополнительный вариант, вы можете через PowerShell или ту же групповую политику импортировать мои reg файлы, которые так же установят ассоциации графических файлов со средством просмотра фотографий. На этом у меня все, с вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.
Добавить комментарий