Поиск по сайту:

Обновить/изменить макет меню «Пуск» в Windows 10 Pro для существующих пользователей.


Существует множество статей о том, как изменить меню «Пуск» в Windows 10 для всех пользователей, у всех них есть одна общая черта: они, похоже, работают только для новых пользователей, которые входят в систему. Мне нужно было найти способ изменить его для пользователей, у которых уже есть профиль, и у меня нет Windows 10 Enterprise.

Меню «Пуск» в Windows 10 хранится в файле базы данных, поэтому вы не можете действительно изменить макет меню. Однако есть способ его заменить, только имейте в виду, что вы замените всё меню «Пуск», включая недавно открытые элементы. Еще одно предварительное требование заключается в том, что пользователи должны выйти из системы, и вам понадобятся права администратора (но это не должно быть проблемой).

  1. Создайте макет меню «Пуск», убедитесь, что вы не используете никаких приложений в макете. Приложения должны быть установлены под учетной записью пользователя, чтобы они работали. Только обычные приложения, такие как Adobe Reader, и системные приложения, такие как Калькулятор, будут работать.
  2. Выйдите из системы пользователя и войдите в качестве администратора.
  3. Скопируйте данные из %systemdrive%\users\<имя_пользователя>\appdata\local\TileDataLayer на сетевой ресурс.
  4. Запустите следующий скрипт на клиентской машине:
Dim FSfolder
Dim subfolder
Dim i

startFolder = "c:\users"
localAppdata = "\Appdata\Local\"
layoutFolder= "TileDataLayer"

'Network share where the new layout is stored
newLayoutFolder = "\\filesrv\netlogon\_INSTALL\Win10\TileDataLayer"

set objShell = CreateObject("Wscript.shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Profile = strSysDrive &amp; startFolder
Set FSfolder = objFSO.GetFolder(Profile) 'getting the user profile folders

For Each subfolder In FSfolder.SubFolders

If (subfolder.Name &lt;&gt; "All Users" And subfolder.Name &lt;&gt; "Default"_
and subfolder.Name &lt;&gt; "LocalService" and subfolder.Name &lt;&gt; "Public") Then

deleteFolder = Profile &amp; "\" &amp; subfolder.Name &amp; localAppdata &amp; layoutFolder
targetFolder = Profile &amp; "\" &amp; subfolder.Name &amp; localAppdata

DeleteThisFolder(deleteFolder)
CopyNewLayout(targetFolder)

end if

Next

'*******************************************************************************************************

Function DeleteThisFolder(FolderName)

If objFSO.FolderExists(FolderName) Then
objShell.Run "CMD.EXE /C RD /S /Q """ &amp; FolderName &amp; """",0,True
End If

End Function

'*******************************************************************************************************

Function CopyNewLayout(FolderName)

If objFSO.FolderExists(FolderName) Then
objFSO.CopyFolder newLayoutFolder, FolderName, True
End If

End Function

Скрипт пройдет через все папки пользователя в поисках папки "TileDataLayer". Если она будет найдена, скрипт удалит её и скопирует новую разметку в неё.