Windows 10 작업표시줄 수정하기 -2-

안녕하세요.

윈도우10에서 만능윈도우 배포시 작업표시줄에 앱고정하기 두번째입니다. 

 

두번째에서는 두가지로 나누어집니다. 기존 작업표시줄의 앱이 고정된 상태에서 앱이나 프로그램 링크를 추가 하는 방법과 기존 구성을 지우고 내 입맛에 맛게 새로 구성하는 방법입니다. 

 

장단점을 살펴보겠습니다. 

단점 장점
  • AUMID 및 Layout을 추출해야 한다
  • 배포 완료후에 적용파일을 삭제하지 않으면 작업표시줄 아이콘 고정을 해제 할수 없다
  • 개수제한 에서 자유롭다(15개까지 테스트)
  • 원하는 앱, 링크를 편하게 수정 가능하다

 

AUMID를 추출하는 방법에 대해 알아보겠습니다. MS문서의 스크립트를 참조해서 만들어봤습니다. 

아래는 파워쉘 코드입니다. 

1
2
3
4
5
6
7
8
9
10
11
12
$installedapps = get-AppxPackage
 
$aumidList = @()
foreach ($app in $installedapps)
{
    foreach ($id in (Get-AppxPackageManifest $app).package.applications.application.id)
    {
        $aumidList += $app.packagefamilyname + "!" + $id
    }
}
 
$aumidList
 
 

위 스크립트를 파워쉘 코드로 저장합니다. 

다시 이걸 이용한 cmd 배치파일을 만들어 보겠습니다. 코드는 아래와 같습니다. 

1
2
3
4
5
6
@echo off
pushd %~dp0
title AUMID List CMD
 
Powershell.exe -noprofile -executionpolicy bypass -file "AUMID.PS1" > %userprofile%\desktop\AUMIDLIST.TXT
exit
 
 

 

CMD파일을 실행하면 현재계정의 바탕화면에 AUMIDLIST.TXT 파일이 생성됩니다. 

 

이제 다음으로는 파워셀을 이용해서 Layout 내용이 담긴 XML 파일을 추출 해야 하는데요. 복잡하기 때문에 그냥 예제로 대신하겠습니다. 시작메뉴 타일 구성 커스터마이징 할적에 이 부분은 포스팅 하겠습니다. 

 

아래는 사용예입니다. 기존앱을 유지하고 작업표시줄에 앱을 3개 고정시키는 예제입니다.

AUMID는 추출된 텍스트파일에서 구문에 넣으시면 됩니다. 15~16 라인처럼 ​​​<taskbar:UWA AppUserModelID="" /> 에 넣으시면 앱이 고정됩니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<LayoutModificationTemplate xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout" 
                            xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout" Version="1" 
                            xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification"
                            xmlns:taskbar="http://schemas.microsoft.com/Start/2014/TaskbarLayout">
  
   <CustomTaskbarLayoutCollection>
    <defaultlayout:TaskbarLayout>
    
      <taskbar:TaskbarPinList>
        <taskbar:DesktopApp DesktopApplicationLinkPath="%appdata%\Microsoft\Windows\Start Menu\Programs\Accessories\Internet Explorer.lnk" />
        <taskbar:DesktopApp DesktopApplicationLinkPath="%appdata%\Microsoft\Windows\Start Menu\Programs\System Tools\File Explorer.lnk" />
        <taskbar:DesktopApp DesktopApplicationLinkPath="%appdata%\Microsoft\Windows\Start Menu\Programs\System Tools\Control Panel.lnk" />
        <taskbar:DesktopApp DesktopApplicationLinkPath="%allusersprofile%\Microsoft\Windows\Start Menu\Programs\Accessories\Paint.lnk" />        
        <taskbar:DesktopApp DesktopApplicationLinkPath="%allusersprofile%\Microsoft\Windows\Start Menu\Programs\Accessories\Snipping Tool.lnk" />        
        <taskbar:UWA AppUserModelID="Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe!App" />
        <taskbar:UWA AppUserModelID="Microsoft.WindowsCalculator_8wekyb3d8bbwe!App" />
      </taskbar:TaskbarPinList>
    
    </defaultlayout:TaskbarLayout>
  </CustomTaskbarLayoutCollection>
 
</LayoutModificationTemplate>
cs

 

아래예제는 기존 작업표시줄을 몽땅 지우고 새로 넣는 예제입니다. 

스크립트의 6번째 줄에서 PinListPlacement="Replace" 만 추가하면 됩니다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<LayoutModificationTemplate xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout" 
                            xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout" Version="1" 
                            xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification"
                            xmlns:taskbar="http://schemas.microsoft.com/Start/2014/TaskbarLayout">
  
   <CustomTaskbarLayoutCollection PinListPlacement="Replace">
    <defaultlayout:TaskbarLayout>
    
      <taskbar:TaskbarPinList>
        <taskbar:DesktopApp DesktopApplicationLinkPath="%appdata%\Microsoft\Windows\Start Menu\Programs\Accessories\Internet Explorer.lnk" />
        <taskbar:DesktopApp DesktopApplicationLinkPath="%appdata%\Microsoft\Windows\Start Menu\Programs\System Tools\File Explorer.lnk" />
        <taskbar:DesktopApp DesktopApplicationLinkPath="%appdata%\Microsoft\Windows\Start Menu\Programs\System Tools\Control Panel.lnk" />
        <taskbar:DesktopApp DesktopApplicationLinkPath="%allusersprofile%\Microsoft\Windows\Start Menu\Programs\Accessories\Paint.lnk" />        
        <taskbar:DesktopApp DesktopApplicationLinkPath="%allusersprofile%\Microsoft\Windows\Start Menu\Programs\Accessories\Snipping Tool.lnk" />        
        <taskbar:UWA AppUserModelID="Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe!App" />
        <taskbar:UWA AppUserModelID="Microsoft.WindowsCalculator_8wekyb3d8bbwe!App" />
      </taskbar:TaskbarPinList>
    
    </defaultlayout:TaskbarLayout>
  </CustomTaskbarLayoutCollection>
 
</LayoutModificationTemplate>
cs

이외에도 국가별 언어별 설정하는 방법이 있는데요, 이건 복잡하고 또 많이 사용하지 않는거라 패스하겠습니다. 

 

이제 준비물만 된거고 실 적용을 해보겠습니다. 

위는 예제일뿐 실적용 파일은 아닙니다. 본인 및 배포이미지에 맞게 수정하셔야 합니다. 

 

위 스크립트를 LayoutModification.xml 파일명으로 저장합니다. sysprep로 봉인한 이미지를 마운트 합니다. 

그런 후에 아래 경로에 파일을 복사합니다. 윈도우즈 + R (실행)에 복사한후 실행하면 찾아가기 쉽습니다. 

 

%systemdrive%\users\default\AppData\Local\Microsoft\Windows\Shell                       
cs

 

위 경로에 복사를 하셨다면 이미지를 언마운트 하시고 복원프로그램으로 이미지를 생성하시면 됩니다. dism, imagex를 이용한 wim, esd나 트루이미지 고스트 등을 이용한 tib, gho 파일로 만드시면 됩니다. 

 

이렇게 하시면 원하는 앱을 원하는 개수만큼 작업표시줄에 앱을 고정시킬수 있습니다. 다만, 위에 적용된 LayoutModification.xml 파일을 배포후에 제거 하지 않으면 기존 정의된 앱이외에 추가로 앱을 작업표시줄에 고정하려고 하면 안됩니다. 계속 부팅시마다 초기화되어서 LayoutModification.xml 파일에 적용된 앱들만 작업표시시줄에 고정됩니다. 그래서 배포가 완료된 후에는 이 파일을 지워줘야 합니다. 일일이 해주기 귀찮으니 이 부분은 unattend.xml 파일에서 최초 로그인시에 삭제가 되도록 적용 하시면 됩니다. 

 

unattend.xml파일 예제입니다. 29번째 라인을 참고 하시면 됩니다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<settings pass="oobeSystem">
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <AutoLogon>
                <Enabled>true</Enabled>
                <LogonCount>1</LogonCount>
                <Username>user</Username>
            </AutoLogon>
            <UserAccounts>
                <LocalAccounts>
                    <LocalAccount wcm:action="add">
                        <Password>
                            <Value></Value>
                            <PlainText>true</PlainText>
                        </Password>
                        <Description>Default Account</Description>
                        <DisplayName>user</DisplayName>
                        <Group>Administrators</Group>
                        <Name>user</Name>
                    </LocalAccount>
                </LocalAccounts>
            </UserAccounts>
            <OOBE>
                <SkipMachineOOBE>true</SkipMachineOOBE>
            </OOBE>
            <FirstLogonCommands>
              <SynchronousCommand wcm:action="add">
                <Order>1</Order>
                <Description>Delite</Description>
                <CommandLine>%windir%\Panther\del.cmd > nul</CommandLine>
              </SynchronousCommand>
            </FirstLogonCommands>
        </component>
    </settings>
 
 

 

del.cmd 예제입니다. 위에서 말씀 안드린게 있습니다. LayoutModification.xml 파일을 삭제 할적에 해당 유저의 계정에서도 삭제를 해줘야 작업표시줄 변경이 가능 합니다. 안그러면 계속 고정이 됩니다. 

1
2
3
4
5
6
7
8
9
@echo off
pushd %~dp0
timeout /3 /nobreak > nul
del //q C:\Windows\Panther\unattend.xml                                                       
del //q C:\Windows\Panther\LayoutModification.xml
del //q C:\users\Default\AppData\Local\Microsoft\Windows\Shell\LayoutModification.xml
del //q %LocalAppData%\Microsoft\Windows\Shell\LayoutModification.xml
timeout /1 /nobreak > nul
DEL //Q %0> nul
cs

 

위에서 사용된 스크립트 예제 모음입니다. 참고하세요

taskbar.zip
0.00MB

 

포스팅에 참고한 MS링크입니다. 공부하고 싶으신 분들은 참고하세요. ^^

https://docs.microsoft.com/ko-kr/windows/configuration/configure-windows-10-taskbar

 

Windows 10 작업 표시줄 구성(Windows 10)

관리자는 사용자의 작업 표시줄에 앱을 고정할 수 있습니다.

docs.microsoft.com

 

이 글을 공유하기

댓글

Designed by JB FACTORY