Windows10のスタートメニューなどをスッキリさせる方法
概要
この記事は corp-engr 情シスSlack(コーポレートエンジニア x 情シス)#1 Advent Calendar 2022 の12日目の記事で
- Windows10に最初から入っている不要なストアアプリを削除してスッキリさせる方法
- Windows10で新しくログインするユーザのスタートメニューとタスクバーのピン留めをスッキリさせる方法
の二本立てです。
詳細
皆さんこん○○はWindowsPCのキッティングやってますか?
社内の皆さんが仕事に集中できるPC環境を作る為に不要なアプリはキレイに消したり、よく使いそうなアプリはタスクバーとかにピン留めされる状態にしてPCを出荷出来たらステキですよね?
今回の記事は不要なストアアプリを削除する方法とスタートメニューとタスクバーのアプリのピン止めの初期設定をする方法の二本立てです。
本文
不要なストアアプリを削除する
この記事の内容とほぼ同じ事がこのツールで出来るので、PowerShellが読めてちゃんとエラー処理が欲しい人はこちらをご参照ください。 https://github.com/The-Virtual-Desktop-Team/Virtual-Desktop-Optimization-Tool
この記事の操作は実行すると元に戻す方法がありません †1 。予め検証機など初期化しても良いPCで実行し、自分の用途に合う状態になるか確認をしてから運用してください。
Windows10って標準でソリティア入ってますよね…?社給PCにゲームが入ってるのってどうなの?と思ったり、Skypeは不要なので削除しておきたい…と思っても設定のアプリの画面から消す事ができません。
いや、消せるんですけど今ログインしているユーザが使えなくなるだけで他のユーザが同じPCにログインすると新しくログインしたユーザでは使えてしまうんですよね。
これは標準のストアアプリがOS内に入っていて、新しくユーザのプロファイルを作成する時に一緒に展開されるという仕様だからです。
共用PCなどで色々なユーザがサインインするPCの場合にはユーザがサインインする度に %localappdata%¥Packages
にアプリが展開されるので絶対に使わないだろう…というムダなアプリでディスク容量を食う原因にもなります。
なので不要なアプリはバッサリ消してしまいましょう
不要なストアアプリを削除するバッチファイル
キッティングスクリプトをバッチファイルで書いている人向けにバッチファイルで動くコードを用意しました。 (私もバッチファイル派でAutoPilotで初期設定バッチファイルが動くようにして色々な設定をしています。力業っぽいのをどうにかしたい)
以下の内容をコピペしてremove_appx.bat
とかそういう名前で保存して管理者として実行するとMicrosoft SolitaireCollectionが消えます。
他のユーザが新しくログインしてもそのユーザにMicrosoft SolitaireCollection がインストールされるという事もありません。
remove_appx.bat
を保存するときに文字コードはANSIにしないとコマンドプロンプトで文字化けします
@echo off
for %%f in ( Microsoft.MicrosoftSolitaireCollection ) do (
echo %%f を削除中
powershell -NoProfile -InputFormat None -ExecutionPolicy Unrestrected "Get-AppxProvisionedPackage -Online|Where{ $_.DisplayName -like '%%f' }|Remove-AppxProvisionedPackage -Online|Out-Null"
powershell -NoProfile -InputFormat None -ExecutionPolicy Unrestrected "Get-AppxPackage -AllUsers -Name %%f|Remove-AppxPackage -AllUsers"
powershell -NoProfile -InputFormat None -ExecutionPolicy Unrestrected "Get-AppxPackage -Name %%f|Remove-AppxPackage"
)
他にも不要なアプリがあれば
for %%f in ( Microsoft.MicrosoftSolitaireCollection ) do (
の()
の中に以下のリストのパッケージ名をスペース区切りで入れると一緒に消せます。
例えばソリティアとSkypeを消すなら以下のようになります
@echo off
for %%f in ( Microsoft.MicrosoftSolitaireCollection Microsoft.SkypeApp ) do (
echo %%f を削除中
powershell -NoProfile -InputFormat None -ExecutionPolicy Unrestrected "Get-AppxProvisionedPackage -Online|Where{ $_.DisplayName -like '%%f' }|Remove-AppxProvisionedPackage -Online|Out-Null"
powershell -NoProfile -InputFormat None -ExecutionPolicy Unrestrected "Get-AppxPackage -AllUsers -Name %%f|Remove-AppxPackage -AllUsers"
powershell -NoProfile -InputFormat None -ExecutionPolicy Unrestrected "Get-AppxPackage -Name %%f|Remove-AppxPackage"
)
パッケージ名 | 備考 |
---|---|
Microsoft.MicrosoftSolitaireCollection | ソリティア |
Microsoft.SkypeApp | Skype |
Microsoft.MicrosoftOfficeHub | 最初から入ってるOfficeのやつ(後からOfficeをインストールするならいらない) |
Microsoft.Office.Onenote | OneNote for Windows10(後からOfficeをインストールするならいらないはず) |
Microsoft.MixedReality.Portal | VRヘッドセットを使うやつっぽい |
Microsoft.Microsoft3DViewer | 3Dビューアー 3Dやる? |
Microsoft.OneDriveSync | 最初から入ってるOneDrive Office2016以降を後からインストールするならいらない |
Microsoft.GetHelp | 問い合わせ。ブラウザでググればいいのでは…? |
Microsoft.Getstarted | ヒントつかう??? |
Microsoft.WindowsFeedbackHub | フィードバックハブ 一般のユーザはつかわないのでは? |
Microsoft.WindowsMaps | マップ いる? |
Microsoft.YourPhone | スマートフォン連携 連携しなければ不要 |
Microsoft.Messaging | メッセージング パソコンにSIMがついててSMSを使うならいるのかもしれない |
Microsoft.OneConnect | モバイル通信プラン パソコンにSIMがついてたら必要なのかもしれない |
microsoft.communicationsapps | 標準のメールとスケジュールソフト、Outlook使うならいらないはず |
Xbox関連パッケージ(Win+Shift+Gが必要なら消さない方が良さそう) |
---|
Microsoft.Xbox.TCUI Microsoft.XboxApp Microsoft.XboxGameOverlay Microsoft.XboxGamingOverlay Microsoft.XboxIdentityProvider Microsoft.XboxSpeechToTextOverlay |
リストに書いてあるアプリ全部を全部消すならこうです、forの行が長くなりますが1行で書いて下さい
@echo off
for %%f in ( Microsoft.MicrosoftSolitaireCollection Microsoft.SkypeApp Microsoft.MicrosoftOfficeHub Microsoft.Office.Onenote Microsoft.Office.Onenote Microsoft.Xbox.TCUI Microsoft.XboxApp Microsoft.XboxGameOverlay Microsoft.XboxGamingOverlay Microsoft.XboxIdentityProvider Microsoft.XboxSpeechToTextOverlay Microsoft.MixedReality.Portal Microsoft.Microsoft3DViewer Microsoft.OneDriveSync Microsoft.GetHelp Microsoft.Getstarted Microsoft.WindowsFeedbackHub Microsoft.MicrosoftMaps Microsoft.YourPhone Microsoft.Messaging Microsoft.OneConnect ) do (
echo %%f を削除中
powershell -NoProfile -InputFormat None -ExecutionPolicy Unrestrected "Get-AppxProvisionedPackage -Online|Where{ $_.DisplayName -like '%%f' }|Remove-AppxProvisionedPackage -Online|Out-Null"
powershell -NoProfile -InputFormat None -ExecutionPolicy Unrestrected "Get-AppxPackage -AllUsers -Name %%f|Remove-AppxPackage -AllUsers"
powershell -NoProfile -InputFormat None -ExecutionPolicy Unrestrected "Get-AppxPackage -Name %%f|Remove-AppxPackage"
)
何か他にも消したいアプリがあればPowerShellを管理者権限で開いて Get-AppxProvisionedPackage -online |Select-Object DisplayName
を実行するとユーザがログインするときに展開されるストアアプリの一覧が出るので、名前で見当をつけて追加してください。
ストアアプリを使わないからといってWindowsStoreを消すのはオススメしません(後でストアアプリがやっぱり必要…となった時に戻せないので本当にやめたほうがいいです)
スタートメニューとタスクバーのピン留めを初期設定する
スタートメニューとタスクバーのピン留めをスッキリさせる方法に需要†2がありそうなのでこれも書いておきます。 ユーザがログインしてすぐにスタートメニューとタスクバーに必要なアイコンだけをピン止めしておくことが可能になります。
こちらの記事もストアアプリを消す程では無いけど元に戻すのが難しいので予め検証機などで試してからご利用下さい。
最初からタスクバーにピン止めされているアプリを消す方法は以下のコードをメモ帳にコピペして startmenu.xml
とかそういう名前でC:\Users¥Public
あたりに保存して
<LayoutModificationTemplate
xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification"
xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout"
xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout"
xmlns:taskbar="http://schemas.microsoft.com/Start/2014/TaskbarLayout"
Version="1">
<CustomTaskbarLayoutCollection PinListPlacement="Replace">
<defaultlayout:TaskbarLayout>
<taskbar:TaskbarPinList>
<taskbar:DesktopApp DesktopApplicationLinkPath="#leaveempty"/>
</taskbar:TaskbarPinList>
</defaultlayout:TaskbarLayout>
</CustomTaskbarLayoutCollection>
</LayoutModificationTemplate>
管理者として実行したPowerShellでcd \Users\Public
してからImport-StartLayout -LayoutPath '.\startmenu.xml' -MountPath 'C:\'
すればOK
このコマンドを実行した後に初めてログインするユーザに適用されます。
もうパターンがわかったと思うのですがバッチファイルに組み込むならこう
cd \Users\Public
powershell -NoProfile -InputFormat None -ExecutionPolicy Unrestrected "Import-StartLayout -LayoutPath '.\startmenu.xml' -MountPath 'C:\'"
Intuneの場合は↑のPowerShellを実行するのでは無くて Windows | 構成プロファイル
で Windows10以降
のテンプレートで デバイスの制限
のプロファイルを作成し、開始のスタートメニューのレイアウトにxmlファイルをアップロードすればOKです(但しユーザがスタートメニューに自由にピン留めを行ったり外したりは出来なくなります)
好きなアプリをタスクバーにピン留めしたいです…
スッキリさせるだけじゃ無くて好きなアプリをピン留めしたい場合は<taskbar:DesktopApp DesktopApplicationLinkPath="#leaveempty"/>
の行を好きなアプリの実行ファイルかショートカットへのPATH†3にします。
ショートカットのPATHを指定するのが楽だと思います。
例えばEdgeをタスクバーにピン留めしたいならstartmenu.xmlは以下の通りです。
<LayoutModificationTemplate
xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification"
xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout"
xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout"
xmlns:taskbar="http://schemas.microsoft.com/Start/2014/TaskbarLayout"
Version="1">
<CustomTaskbarLayoutCollection PinListPlacement="Replace">
<defaultlayout:TaskbarLayout>
<taskbar:TaskbarPinList>
<taskbar:DesktopApp DesktopApplicationLinkPath="%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Microsoft Edge.lnk"/>
</taskbar:TaskbarPinList>
</defaultlayout:TaskbarLayout>
</CustomTaskbarLayoutCollection>
</LayoutModificationTemplate>
スタートメニューもスッキリさせたいなら作業用のアカウントでスタートメニューを整えておいて Export-StartLayout -path defaultstartmenu.xml
を実行して、生成されたdefaultstartmenu.xmlをメモ帳か何かでひらいて
<LayoutOptions
で始まる行から</DefaultLayoutOverride>
の行までをコピーしてstartmenu.xmlの<CustomTaskbarLayoutCollection PinListPlacement="Replace">
の上の行に貼り
付ければ次に初めてログインするログインするユーザのスタートメニューも整った状態になります。
ストアアプリとかをピン留めしたいなら https://learn.microsoft.com/en-us/windows/configuration/configure-windows-10-taskbar を読むとやり方が書いてあります。
今ログインしているユーザにも適用したい
スタートアップとタスクバーのカスタマイズは、設定後初めてログインするユーザに対して適用されるもので、現在ログイン中のユーザやすでにログインした事のあるユーザには適用されません。 現在ログイン中のユーザにも適用したいんだけど…ということならこちらの記事に書いてあるとおりPowerShellで以下のように実行すると適用されます このコマンドを使って自分の思った通りに設定できてるか確認してからテスト用のユーザでログインしてみると検証が楽です。
Remove-Item 'HKCU:\Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount\*$start.tilegrid$windows.data.curatedtilecollection.tilecollection' -Force -Recurse
Get-Process Explorer | Stop-Process
参考にした記事 https://qiita.com/RyoIchimura/items/842e6cc5056dcf638598
終わり
読んでもわからない場合は情シスSlackで聞いて貰えたら調子に乗って追加のブログ書くかも
それでは皆様この記事の内容を活用してステキな状態にWindows10PCをキッティングしてくださいノシノシ
- †1 直す方法が全く無いとは言わないけどとても大変
- †2 アドベントカレンダー3日目のなっちさんとか、私のご近所情シスのいもがすきさんとか
- †3 ファイルの置いてある場所