レジストリを変更すればよい簡単な作業ですがPowerShellの勉強を兼ねてキーボードの配列を切り替える[Change-KbdLayout]関数を書いてみました。
物理環境の場合、キーボードが日本語配列ではなく英語配列になるケースがあります。その場合でも本スクリプトは使えるはずです。
注意点が一つ。
キーボード配列を変更後にPC/サーバの再起動が求められます。
作業中の場合は、全てを保存されるようお願い致します。
スクリプト
[string]$Path = "HKLM:\SYSTEM\CurrentControlSet\services\i8042prt\Parameters" $LDriverJP = @("kbd106.dll","kbd101.dll") $OverKbdId = @("PCAT_106KEY", "PCAT_101KEY") $OverKbdType = @(7, 7) $OverKbdSType = @(2, 0) function Change-KbdLayout(){ Write-Host "★キーボード配列を変更します" -ForegroundColor Cyan Write-Host "[0] 日本語配列にする" -ForegroundColor Cyan Write-Host "[1] 英語配列にする" -ForegroundColor Cyan Write-Host "[9] 現在の設定を確認する" -ForegroundColor Cyan Write-Host "[q] 終了する" -ForegroundColor Cyan Write-Host "" Write-Host "番号を入力してください。" -NoNewline -ForegroundColor Yellow $Flag = Read-Host if(($Flag -eq 0) -or ($Flag -eq 1)) { #レジストリ変更 Set-ItemProperty -Path $Path -Name "LayerDriver JPN" -Value $LDriverJP[$Flag] Set-ItemProperty -Path $Path -Name "OverrideKeyboardIdentifier" -Value $OverKbdId[$Flag] Set-ItemProperty -Path $Path -Name "OverrideKeyboardType" -Value $OverKbdType[$Flag] Set-ItemProperty -Path $Path -Name "OverrideKeyboardSubtype" -Value $OverKbdSType[$Flag] Get-ItemProperty -Path $Path #再起動 Write-Host "コンピュータを再起動します。" -ForegroundColor Yellow Write-Host "[Y]再起動する, [N]後で再起動する, 既定[N]:" -NoNewline -ForegroundColor Yellow $Return = Read-Host if($Return -eq "Y") { Restart-Computer -Force return } } elseif($Flag -eq 9) { Write-Host "★現在の設定" Get-ItemProperty -Path $Path } elseif($Flag -eq "q") { return } Change-KbdLayout } Change-KbdLayout