0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows11をレガシー設定に戻すPowerShellスクリプトをささっと作る2

Last updated at Posted at 2025-11-30

はじめに

筆者の下記記事の修正記事です。修正箇所多数のため,元の記事の修正ではなく,新たに記事を書き直すことにしました。

Windows11をレガシー設定に戻すPowerShellスクリプトをささっと作る - Qiita

仕様案(おしながき)

前回の記事に対して,青色の行が新規追加部分です。

  • タスクバーを中央揃いから従来通りの左揃えにしたい。
  • エクスプローラの詳細表示で行間隔が空き過ぎて間延び感がある。
  • ファイルの拡張子を常に表示させたい。
  • エクスプローラのコンテキストメニューの階層が深くなって使いにくい。
  • タスクバーの検索ボックスを消したい。
  • テーマをライトモードにしたい。
  • ウィンドウアクティブ時にタイトルバーの色をアクセントカラーにしたい。
  • ウィンドウズターミナルがデフォルトになったが,コマンドプロンプトに戻したい。
  • コマンドプロンプトでエスケープシーケンスを有効にしたい。
  • 検索ボックスで Bing 検索をしない。
  • フォルダ種別の自動検出をオフにして高速化したい。

加えて以下の機能を追加・変更しようと思います。

  • DWM を再起動する機能を追加したい。
  • 上記の実行には管理者権限が必要なため,管理者権限を有しているかどうかのチェック機能を追加する。
  • Windows のバージョンチェック方法を変更する。
  • その他,スキルが若干向上したのでリファクタリングする。

レジストリ仕様について

レジストリ仕様について下記まとめました。なお,本表はコンパクトにまとめるため PlantUML の表を用いて表記しており,そのままではテキストをコピーできません。必要な場合は直接 Markdown を参照するか,ソースコードを参照してください。

状態遷移マップ

レジストリの状態を下記の4種類に分類しました。レジストリはファイルシステムのような階層構造になっており,レジストリキーはディレクトリとして,その中に格納されている名前と値はファイルのようなものです。キーの中にキーを置くこともできますし,キー自体も値(既定値)を持ちます。

表1 レジストリの状態
状態 内容
#NO-KEY レジストリキーが存在しない場合
#KEY-ONLY レジストリキーが存在し,名前の指定がない場合
#NO-VAL レジストリキーが存在し,指定した名前の値が存在しない場合
#VAL レジストリキーが存在し,指定した名前の値が存在する場合

レジストリの変更前後で4×4=16通りの状態遷移があり得る訳ですが,その中で有効なのものは以下の表に示す5つのみとしました。

表2 状態遷移マップ
変更前
#NO-KEY #KEY-ONLY #NO-VAL #VAL
変更後 #NO-KEY REMOVE
#KEY-ONLY CREATE
#NO-VAL UPDATE
その他 UPDATE UPDATE

さらに取り得るアクションは以下の3種類としました。#NO-KEY#KEY-ONLY の間は往復可能ですが,#NO-VAL から #VAL へは一方通行としました。すなわちいったん値が設定されたら削除することはなく,以降は値の変更のみ行うということです。

表3 アクションの分類
アクション 内容
REMOVE 指定したレジストリキーを削除する。
CREATE 指定したレジストリキーの追加,値は既定値とする。
UPDATE 指定したレジストリキー,指定した名前の値を変更する。

さて,PowerShell スクリプトによる実装コードですが,前回の記事では switch 文を二重に呼び出すことで状態遷移を実現していましたが,御覧の通りスカスカの疎行列なので勿体ない感じがしていました。リファクタリング後は一次元の連想配列としてシンプルにまとめました。

$next がその他のとき $null となるため,文字列にすると空文字列 "" となります。

レジストリ構造体

レジストリのデータを効率よく管理するため,下記の構造体を定義しました。このうち,index メンバーはコマンドラインで指定した数値を格納して書き換えられる場合があります。それ以外のメンバーは固定値です。

表4 レジストリ構造体
メンバー 内容
key レジストリキー
name レジストリ名
type 説明
label
table 値とメッセージのテーブル
index テーブルのインデクスを与える ※コマンドラインで指定する
explorer エクスプローラー再起動の要否
dwm DWM 再起動の要否

値とメッセージのテーブル構造体の内容を示します。altalternative の略で,#NO-KEY, #KEY-ONLY, #NO-VAL などの状態を与えます。

表5 テーブル構造体
メンバー 内容
alt レジストリ未定義時の状態および既定値を示す
val レジストリ値
msg メッセージ

レジストリ構造体の一例を示します。

レジストリ構造体の例
$TaskBar = @{
        key = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced'
       name = 'TaskbarAl'
       type = 'DWord'
      label = 'タスクバーの配置'
      table = @(
              @{ alt = $null;     val = 0; msg = '左揃え'   }
              @{ alt = "#NO-VAL"; val = 1; msg = '中央揃え' }
              )
      index = $null
   explorer = $false
        dwm = $false
}

レジストリを変更したとき,次のように表示されます。

Windows のバージョン確認

前回の記事では $PSVersionTable.BuildVersion を参照していましたが,これは PowerShell をビルドしたときの Windows のバージョンであり,現在実行中の Windows のバージョンとは限らないため,下記のように変更しました。

function Check-Version {
  $info = Get-CimInstance Win32_OperatingSystem
  if($info.Version -notmatch '^(\d+)\.(\d+)\.(\d+)') {
    Return $false
  }
  $major = $Matches[1]
  $minor = $Matches[2]
  $build = $Matches[3]
  if($major -eq 10 -and $minor -eq 0 -and $build -ge 22000) {
    Return $true
  } else {
    Return $false
  }
}

Windows10Windows11 のバージョン情報を以下に示しますが,両者のメジャー番号とマイナー番号は共通のため,ビルド番号でのみ区別がつきます。

OS Update major minor build
Windows10 22H2 10 0 19045
Windows11 21H2 10 0 22000
22H2 10 0 22621
23H2 10 0 22631
24H2 10 0 26100
25H2 10 0 26200

管理者権限の確認

DWM の設定を変更した場合,DWM を再起動しないと設定変更が有効になりません。DWM の再起動には管理者権限が必要です。このため管理者権限を有しているかどうか確認する機能を追加しました。とはいっても .NET Framework の機能を呼び出しているだけです。管理者権限を有している場合は $true を返し,そうではない場合 $false を返します。

function Check-Administrator {
  $identity = [Security.Principal.WindowsIdentity]::GetCurrent()
  $principal = [Security.Principal.WindowsPrincipal]::new($identity)
  $admin = [Security.Principal.WindowsBuiltInRole]::Administrator
  Return $principal.IsInRole($admin)
}

実装コード

実装コードを以下に示します。※約400行あります。

実装コードはコチラ
Win11Reg.ps1
Set-StrictMode -Version Latest
#-------------------------------------------------------------------------------
# レジストリ構造体
#
#      key: レジストリキー
#     name: レジストリ名
#     type: 型
#    label: 説明
#    table: テーブル
#           alt: レジストリ未定義時の状態および既定値を示す
#           val: レジストリ値
#           msg: メッセージ
#    index: テーブルのインデクスを与える ※コマンドライン指定
# explorer: エクスプローラー再起動の要否
#      dwm: DWM 再起動の要否
#
# ※label および msg は下記のように出力される
#
# 現在の label は「msg」です。
#   ⇒ label を「msg」に変更しました。
#-------------------------------------------------------------------------------
$TaskBar = @{
        key = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced'
       name = 'TaskbarAl'
       type = 'DWord'
      label = 'タスクバーの配置'
      table = @(
              @{ alt = $null;     val = 0; msg = '左揃え'   }
              @{ alt = "#NO-VAL"; val = 1; msg = '中央揃え' }
              )
      index = $null
   explorer = $false
        dwm = $false
}
$CompactMode = @{
        key = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced'
       name = 'UseCompactMode'
       type = 'DWord'
      label = 'エクスプローラー'
      table = @(
              @{ alt = '#NO-VAL'; val = 0; msg = '非コンパクト表示' }
              @{ alt = $null;     val = 1; msg = 'コンパクト表示'   }
              )
      index = $null
   explorer = $false
        dwm = $false
}
$HideFileExt = @{
        key = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced'
       name = 'HideFileExt'
       type = 'DWord'
      label = 'ファイルの拡張子'
      table = @(
              @{ alt = $null; val = 0; msg = '表示'   }
              @{ alt = $null; val = 1; msg = '非表示' }
              )
      index = $null
   explorer = $true
        dwm = $false
}
$ContextMenu = @{
        key = 'HKCU:\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32'
       name = $null
       type = $null
      label = 'コンテキストメニュー'
      table = @(
              @{ alt = '#KEY-ONLY'; val = $null; msg = '旧来のスタイル' }
              @{ alt = '#NO-KEY';   val = $null; msg = '新しいスタイル' }
              )
      index = $null
   explorer = $true
        dwm = $false
}
$SearchBox = @{
        key = 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Search'
       name = 'SearchboxTaskbarMode'
       type = 'DWord'
      label = '検索ボックス'
      table = @(
              @{ alt = $null; val = 0; msg = '非表示'       }
              @{ alt = $null; val = 1; msg = 'アイコン表示' }
              @{ alt = $null; val = 2; msg = 'ボックス表示' }
              )
      index = $null
   explorer = $false
        dwm = $false
}
$BingSearch = @{
        key = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Search'
       name = 'BingSearchEnabled'
       type = 'DWord'
      label = ' Bing 検索'
      table = @(
              @{ alt = $null;     val = 0; msg = '無効' }
              @{ alt = '#NO-VAL'; val = 1; msg = '有効' }
              )
      index = $null
   explorer = $false
        dwm = $false
}
$LightTheme = @{
        key = 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize'
       name = 'AppsUseLightTheme'
       type = 'DWord'
      label = 'LightTheme'
      table = @(
              @{ alt = $null; val = 0; msg = 'ダークモード' }
              @{ alt = $null; val = 1; msg = 'ライトモード' }
              )
      index = $null
   explorer = $false
        dwm = $false
}
$TitleBar = @{
        key = 'HKCU:\SOFTWARE\Microsoft\Windows\DWM'
       name = 'ColorPrevalence'
       type = 'DWord'
      label = 'タイトルバーの色'
      table = @(
              @{ alt = $null; val = 0; msg = 'デフォルト'       }
              @{ alt = $null; val = 1; msg = 'アクセントカラー' }
              )
      index = $null
   explorer = $false
        dwm = $true
}
$Console = @{
        key = 'HKCU:\Console\%%Startup'
       name = 'DelegationConsole'
       type = 'String'
      label = 'コンソール'
      table = @(
              @{ alt = '#NO-VAL'; val = '{00000000-0000-0000-0000-000000000000}'; msg = 'デフォルト'       }
              @{ alt = $null;     val = '{B23D10C0-E52E-411E-9D5B-C09FDF709C7D}'; msg = 'コンソールホスト' }
              @{ alt = $null;     val = '{2EACA947-7F5F-4CFA-BA87-8F7FBEEFBE69}'; msg = 'ターミナル'       }
              )
      index = $null
   explorer = $false
        dwm = $false
}
$Terminal = @{
        key = 'HKCU:\Console\%%Startup'
       name = 'DelegationTerminal'
       type = 'String'
      label = 'ターミナル'
      table = @(
              @{ alt = '#NO-VAL'; val = '{00000000-0000-0000-0000-000000000000}'; msg = 'デフォルト'       }
              @{ alt = $null;     val = '{B23D10C0-E52E-411E-9D5B-C09FDF709C7D}'; msg = 'コンソールホスト' }
              @{ alt = $null;     val = '{E12CFF52-A866-4C77-9A90-F570A7AA2C6B}'; msg = 'ターミナル'       }
              )
      index = $null
   explorer = $false
        dwm = $false
}
$EscapeSeq = @{
        key = 'HKCU:\Console'
       name = 'VirtualTerminalLevel'
       type = 'DWord'
      label = 'エスケープシーケンス'
      table = @(
              @{ alt = '#NO-VAL'; val = 0; msg = '無効' }
              @{ alt = $null;     val = 1; msg = '有効' }
              )
      index = $null
   explorer = $false
        dwm = $false
}
$FolderType = @{
        key = 'HKCU:\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell'
       name = 'FolderType'
       type = 'String'
      label = 'フォルダ種別の自動検出'
      table = @(
              @{ alt = $null;     val = 'NotSpecified'; msg = '無効' }
              @{ alt = '#NO-VAL'; val = 'Specified';    msg = '有効' }
              )
      index = $null
   explorer = $false
        dwm = $false
}
#-------------------------------------------------------------------------------
# 強制リセットフラグ
#-------------------------------------------------------------------------------
$ForceReset = $false
#-------------------------------------------------------------------------------
# リセット要求
#-------------------------------------------------------------------------------
$ResetRequest = @{
   explorer = $false
        dwm = $false
}
#-------------------------------------------------------------------------------
# ヘルプメッセージ
#-------------------------------------------------------------------------------
function Usage {
  Write-Host 'レジストリを書き換えて Windows 11 のデスクトップ設定を変更します。'
  Write-Host ''
  Write-Host 'Win11Reg(.PS1) (コマンド) ...'
  Write-Host ''
  Write-Host '<コマンド一覧>'
  Write-Host ''
  Write-Host '    TaskBar:(n)  タスクバーの配置を変更します。'
  Write-Host '                 (0:左揃え, 1:中央揃え)'
  Write-Host 'CompactMode:(n)  エクスプローラーのコンパクト表示を変更します。'
  Write-Host '                 (0:非コンパクト表示, 1:コンパクト表示)'
  Write-Host 'HideFileExt:(n)  ファイルの拡張子表示を変更します。'
  Write-Host '                 (0:表示, 1:非表示)'
  Write-Host 'ContextMenu:(n)  コンテキストメニューのスタイルを変更します。'
  Write-Host '                 (0:旧来のスタイル, 1:新しいスタイル)'
  Write-Host '  SearchBox:(n)  検索ボックスの表示を変更します。'
  Write-Host '                 (0:非表示, 1:アイコン表示, 2:ボックス表示)'
  Write-Host ' BingSearch:(n)  Bing検索を変更します。'
  Write-Host '                 (0:無効, 1:有効)'
  Write-Host ' LightTheme:(n)  テーマを変更します。'
  Write-Host '                 (0:ダークモード, 1:ライトモード)'
  Write-Host '   TitleBar:(n)  タイトルバーの色を変更します。'
  Write-Host '                 (0:デフォルト, 1:アクセントカラー)'
  Write-Host '    Console:(n)  コンソールを変更します。'
  Write-Host '                 (0:デフォルト, 1:コンソールホスト, 2:ターミナル)'
  Write-Host '   Terminal:(n)  ターミナルを変更します。'
  Write-Host '                 (0:デフォルト, 1:コンソールホスト, 2:ターミナル)'
  Write-Host '  EscapeSeq:(n)  エスケープシーケンスを変更します。'
  Write-Host '                 (0:無効, 1:有効)'
  Write-Host ' FolderType:(n)  フォルダ種別の自動検出機能を変更します。'
  Write-Host '                 (0:無効, 1:有効)'
  Write-Host ' ForceReset      必要に応じてエクスプロ-ラ / DWM を再起動します。'
  Write-Host '                 管理者権限が必要な場合があります。'
  Exit -1
}
#-------------------------------------------------------------------------------
# コマンドライン解析
#-------------------------------------------------------------------------------
function Get-CommandLine {
  $args = $SCRIPT:ARGS
  if($args.Count -eq 0) { Return }
  foreach($arg in $args) {
        if($arg -match     'TaskBar:(\d+)') {     $SCRIPT:TaskBar.index = $Matches[1] }
    elseif($arg -match 'CompactMode:(\d+)') { $SCRIPT:CompactMode.index = $Matches[1] }
    elseif($arg -match 'HideFileExt:(\d+)') { $SCRIPT:HideFileExt.index = $Matches[1] }
    elseif($arg -match 'ContextMenu:(\d+)') { $SCRIPT:ContextMenu.index = $Matches[1] }
    elseif($arg -match   'SearchBox:(\d+)') {   $SCRIPT:SearchBox.index = $Matches[1] }
    elseif($arg -match  'BingSearch:(\d+)') {  $SCRIPT:BingSearch.index = $Matches[1] }
    elseif($arg -match  'LightTheme:(\d+)') {  $SCRIPT:LightTheme.index = $Matches[1] }
    elseif($arg -match    'TitleBar:(\d+)') {    $SCRIPT:TitleBar.index = $Matches[1] }
    elseif($arg -match     'Console:(\d+)') {     $SCRIPT:Console.index = $Matches[1] }
    elseif($arg -match    'Terminal:(\d+)') {    $SCRIPT:Terminal.index = $Matches[1] }
    elseif($arg -match   'EscapeSeq:(\d+)') {   $SCRIPT:EscapeSeq.index = $Matches[1] }
    elseif($arg -match  'FolderType:(\d+)') {  $SCRIPT:FolderType.index = $Matches[1] }
    elseif($arg -eq     'ForceReset'      ) {  $SCRIPT:ForceReset       = $true       }
    else {
      Usage
    }
  }
}
#-------------------------------------------------------------------------------
# OS のバージョンチェック
#-------------------------------------------------------------------------------
function Check-Version {
  $ver = $PSVersionTable.BuildVersion
  if($ver.Major -eq 10 -and $ver.Minor -eq 0 -and $ver.Build -ge 22000) {
    Return $true
  } else {
    Return $false
  }
}
#-------------------------------------------------------------------------------
# 管理者権限のチェック
#-------------------------------------------------------------------------------
function Check-Administrator {
  $identity = [Security.Principal.WindowsIdentity]::GetCurrent()
  $principal = [Security.Principal.WindowsPrincipal]::new($identity)
  $admin = [Security.Principal.WindowsBuiltInRole]::Administrator
  Return $principal.IsInRole($admin)
}

#-------------------------------------------------------------------------------
# レジストリのチェック
#-------------------------------------------------------------------------------
function Check-Registry($dat) {
  #---------------------------------------------------------------------------
  # レジストリの取得
  #---------------------------------------------------------------------------
  if(Test-Path -LiteralPath $dat.key) {
    $item = Get-ItemProperty -LiteralPath $dat.key
    if($dat.name -eq $null) {
      $prev = @{ alt = '#KEY-ONLY'; val = '#NULL' }
    } elseif($item.PSobject.Properties.Match($dat.name).Count -gt 0) {
      $prev = @{ alt = '#VAL'; val = $item."$($dat.name)" }
    } else {
      $prev = @{ alt = '#NO-VAL'; val = '#NULL' }
    }
  } else {
    $prev = @{ alt = '#NO-KEY'; val = '#NULL' }
  }
  #---------------------------------------------------------------------------
  # テーブルの検索
  #---------------------------------------------------------------------------
  for($i = 0; $i -lt $dat.table.length; $i++) {
    if($prev.alt -eq $dat.table[$i].alt) { Break }
    if($prev.val -eq $dat.table[$i].val) { Break }
  }
  if($i -ge $dat.table.length) {
    Write-Host "レジストリ $($dat.key) の取得に失敗しました!"
    Exit -1
  }
  Write-Host "現在の$($dat.label)は「$($dat.table[$i].msg)」です。"
  if($dat.index -eq $null -or $dat.index -eq $i) { Return }
  #---------------------------------------------------------------------------
  # 状態遷移マップ
  #---------------------------------------------------------------------------
  $map = @{}
  $map['#KEY-ONLY:#NO-KEY'] = 'REMOVE'
  $map['#NO-KEY:#KEY-ONLY'] = 'CREATE'
  $map['#NO-VAL:']          = 'UPDATE'
  $map['#VAL:#NO-VAL']      = 'UPDATE'
  $map['#VAL:']             = 'UPDATE'
  #---------------------------------------------------------------------------
  # レジストリの更新
  #---------------------------------------------------------------------------
  $next = $dat.table[$dat.index]
  switch($map["$($prev.alt):$($next.alt)"]) {
    'REMOVE' {
      Remove-Item -LiteralPath $dat.key
    }
    'CREATE' {
      New-Item $dat.key -Force | Out-Null
      New-ItemProperty -LiteralPath $dat.key -Name '(default)' | Out-Null
    }
    'UPDATE' {
      Set-ItemProperty -LiteralPath $dat.key -Name $dat.name -Value $next.val -Type $dat.type
    }
    default {
      Write-Host 'レジストリの更新に失敗しました!'
      Exit -1
    }
  }
  Write-Host -ForegroundColor yellow "    ⇒$($dat.label)を「$($next.msg)」に変更しました。"
  #---------------------------------------------------------------------------
  # 再起動要求
  #---------------------------------------------------------------------------
  if($dat.explorer) { $SCRIPT:ResetRequest.explorer = $true }
  if($dat.dwm)      { $SCRIPT:ResetRequest.dwm      = $true }
}
#-------------------------------------------------------------------------------
# コマンドライン解析
#-------------------------------------------------------------------------------
Get-CommandLine
#-------------------------------------------------------------------------------
# OS のバージョンチェック
#-------------------------------------------------------------------------------
if(!(Check-Version)) {
  Write-Host -ForegroundColor red 'Windows 11 ではありません!'
  Exit -1
}
#-------------------------------------------------------------------------------
# レジストリのチェック
#-------------------------------------------------------------------------------
Check-Registry $TaskBar
Check-Registry $CompactMode
Check-Registry $HideFileExt
Check-Registry $ContextMenu
Check-Registry $SearchBox
Check-Registry $BingSearch
Check-Registry $LightTheme
Check-Registry $TitleBar
Check-Registry $Console
Check-Registry $Terminal
Check-Registry $EscapeSeq
Check-Registry $FolderType
#-------------------------------------------------------------------------------
# エクスプローラーの再起動
#-------------------------------------------------------------------------------
if($ResetRequest.explorer) {
  if($ForceReset) {
    Write-Host -ForegroundColor 'yellow' 'エクスプローラを再起動します。'
    Stop-Process -Name 'Explorer' -Force
  } else {
    Write-Host -ForegroundColor 'red' 'エクスプローラーを再起動して下さい。'
  }
}
#-------------------------------------------------------------------------------
# DWM の再起動
#-------------------------------------------------------------------------------
if($ResetRequest.dwm) {
  if($ForceReset) {
    if(Check-Administrator) {
      Write-Host -ForegroundColor 'yellow' 'DWM を再起動します。'
      Stop-Process -Name 'DWM' -Force
    } else {
      Write-Host -ForegroundColor 'red' 'DWM の再起動に必要な管理者権限がありません。'
    }
  } else {
    Write-Host -ForegroundColor 'red' 'DWM を再起動して下さい。'
  }
}

バッチファイル

上記の PowerShell スクリプトを呼び出すバッチファイルです。上記の PowerShell スクリプトと同じフォルダに格納してください。下記バッチファイル admin.cmd は管理者権限で実行して下さい。

admin.cmd
@echo off
rem ----------------------------------------------------------------------------
rem 管理者権限のチェック
rem ----------------------------------------------------------------------------
openfiles > nul
if errorlevel 1 (
  echo %~f0 は管理者権限で実行して下さい!!
  pause
  exit /b
)
rem ----------------------------------------------------------------------------
rem コンソール関連のレジストリの存在チェック
rem ----------------------------------------------------------------------------
2>NUL reg query "HKCU\Console\%%%%Startup" /s
if errorlevel 1 (
  echo レジストリ HKCU\Console\%%%%Startup が見つかりません!!
  echo 一度,コマンドプロンプトを起動してから再度実行して下さい。
  pause
  exit /b
)
rem ----------------------------------------------------------------------------
rem Windows 11 設定の変更
rem ----------------------------------------------------------------------------
powershell -ExecutionPolicy Bypass -File "%~dp0\win11reg.ps1" TaskBar:0 CompactMode:1 HideFileExt:0 ContextMenu:0 SearchBox:0 BingSearch:0 TitleBar:1 Console:1 Terminal:1 EscapeSeq:1 FolderType:0 ForceReset
pause
exit /b

Windows をアップデートした直後,レジストリ HKCU\Console\%%Starup が存在しない場合があるようですが,一度でもコマンドプロンプトを起動すれば作成されます。このため上記のレジストリが存在しない場合は警告を発するだけに留めました。

今後の課題

無秩序に機能を増やし過ぎたせいか,作った本人なのにコマンドを覚えられません。

  • 公式のヘルプ構文に従って書き直したほうがいいか?
  • いっそ GUI 化するか?

参考文献

  1. Windows11のコンテキストメニューを旧仕様に戻す方法 - Qiita
  2. Windows11 コンテキストメニューを Windows10 以前の仕様に戻す - Qiita
  3. Windows 11の設定に関するリファレンス - Windows apps
  4. Windowsスマートチューニング(369) Win 10編: タスクバーの検索ボックスをカスタマイズする - mynavi
  5. 懐古主義者のための Windows 11 セットアップマニュアル - retrotecture.jp
  6. コマンド プロンプトと Windows Powershell - Microsoft サポート
  7. Understanding Windows Console Host Settings - Microsoft Dev Blogs
  8. Win 10編: 検索ボックスから「ウェブ」を取り除く - mynavi
  9. ファイルエクスプローラーのスピードアップ ? - 内気なもんた君 - HatenaBlog
  10. 現在のユーザーが管理者か調べる - dobon.net
  11. レジストリからダークモードなどを設定 - guro_chanの手帳
  12. コメントベースのヘルプについて - PowerShell
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?