LoginSignup
3
5

More than 1 year has passed since last update.

Oracle Cloud: Windowsインスタンス 追加設定いろいろ

Last updated at Posted at 2022-07-22

Windowsインスタンス作成後、日本環境の設定、RDP制限解除, SSH、NTP、シリアルコンソール接続などいろいろ追加設定が必要になることがあります。
ということで、やってみてみます。

■ 構成

構成.jpg
OCI Bastion Service使用した WIndows Remote Desktop接続は次を参考に構成します
・参考: Bastionで Port Forwarding して RDP接続

■ Winddowsインスタンス作成

Cloud-initスクリプトを指定してWindowsインスタンスを作成します。
Cloud-initは、インスタンスの初期化および構成を行うスクリプトを実行します。cloud-initの詳細は、cloud-initのドキュメントを参照してください。

1) OCIコンソール: インスタンス画面
コンピュート > インスタンス を選択し、[インスタンスの作成]をクリック

2) コンピュート・インスタンスの作成画面
<powershell>タブを使用することでCloud-initスクリプトが動作します。
PowerShellコマンドで次のようにopcユーザーのパスワードを指定すると初期パスワード設定不要で便利です。
パスワードは12文字以上の長さで、Microsoftのパスワード・ポリシーに準拠している必要があります。

Cloud-initスクリプト
<powershell>
net user opc "PassWord12#$"
</powershell>

01_Windowsインストール05.png

3)インスタンス再起動
インスタンス作成完了後、再起動すると、指定パスワードが設定されます。
02_再起動01.jpg

■ Remote Desktop接続

Remote DesktopでWindows Instanceへ接続

RDP接続画面.jpg

■ PowerShell Run as Administrator

以下作業は、なるべく PowerShell を使用してみます。
これら設定は、Administorater(管理者)で実行する必要があります。

・PowerShell Run as Administrator で起動
21_PowerShell起動.jpg

■ 日本語表示設定

● 表示言語設定(CLI手順)

PowerShell を使用して日本語環境へ変更してみます。
PowerShell は Administorater権限で実行します。

・現状確認

初期状態では、英語(en-US)環境です

PS C:\Users\opc\Downloads> Get-WinUserLanguageList

    LanguageTag     : en-US
    Autonym         : English (United States)
    EnglishName     : English
    LocalizedName   : English (United States)
    ScriptName      : Latin
    InputMethodTips : {0409:00000409}
    Spellchecking   : True
    Handwriting     : False

・LPKSetup を使用して Language Pack インストール

更新プログラムをインストールせずに新しい Windows表示言語を追加するには、LPKSetup.exe を使用して 目的の言語パック CAB ファイルを取得インストールして,Set-WinUserLanguageListコマンドで言語表示を切り替えます。

1) 言語パック ISO イメージをダウンロード
ダウンロード高速化のために'SilentlyContinue'を使用してダウンロードします
Windows 2019のLanguage PackのDownload URLはCannot configure a language pack for Windows Server 2019 Desktop Experienceを参考に取得します。

ダウンロードURL
https://software-download.microsoft.com/download/pr/17763.1.180914-1434.rs5_release_SERVERLANGPACKDVD_OEM_MULTI.iso
C:\Users\opc\Downloads へダウンロード
PS C:\> $ProgressPreference = 'SilentlyContinue'
PS C:\> Invoke-WebRequest -Uri https://software-download.microsoft.com/download/pr/17763.1.180914-1434.rs5_release_SERVERLANGPACKDVD_OEM_MULTI.iso -OutFile C:\Users\opc\Downloads\17763.1.180914-1434.rs5_release_SERVERLANGPACKDVD_OEM_MULTI.iso

2) Download確認

PS C:\> ls C:\Users\opc\Downloads\

    ディレクトリ: C:\Users\opc\Downloads\

    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    -a----       2022/07/26     20:45     2831929344 17763.1.180914-1434.rs5_release_SERVERLANGPACKDVD_OEM_MULTI.iso

3) DownloadしたisoファイルをMount

PS C:\> Mount-DiskImage C:\Users\opc\Downloads\17763.1.180914-1434.rs5_release_SERVERLANGPACKDVD_OEM_MULTI.iso

    Attached          : True
    BlockSize         : 0
    DevicePath        : \\.\CDROM0
    FileSize          : 2831929344
    ImagePath         : C:\Users\opc\Downloads\17763.1.180914-1434.rs5_release_SERVERLANGPACKDVD_OEM_MULTI.iso
    LogicalSectorSize : 2048
    Number            : 0
    Size              : 2831929344
    StorageType       : 1
    PSComputerName    :

4)Mount 確認

PS C:\> ls D:\x64\langpacks\Microsoft-Windows-Server-Language-Pack_x64_ja-jp.cab

    ディレクトリ: D:\x64\langpacks

    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    --r---       2018/09/16      2:30       62015873 Microsoft-Windows-Server-Language-Pack_x64_ja-jp.cab

5) 管理者特権(Administorater)で lpksetupコマンドを使用して言語パックをインストール

PS C:\> lpksetup /i ja-JP /p D:\x64\langpacks\Microsoft-Windows-Server-Language-Pack_x64_ja-jp.cab

6) Set-WinUserLanguageListコマンドで、language list を更新

PS C:\> Set-WinUserLanguageList ja-JP,en-US -Force

7)Language List確認

PS C:\> Get-WinUserLanguageList

    LanguageTag     : ja
    Autonym         : 日本語
    EnglishName     : Japanese
    LocalizedName   : Japanese
    ScriptName      : Japanese
    InputMethodTips : {0411:{03B5835F-F03C-411B-9CE2-AA23E1171E36}{A76C93D9-5523-4E90-AAFA-4DB112F9AC76}}
    Spellchecking   : True
    Handwriting     : True

    LanguageTag     : en-US
    Autonym         : English (United States)
    EnglishName     : English
    LocalizedName   : English (United States)
    ScriptName      : Latin
    InputMethodTips : {0409:00000409}
    Spellchecking   : True
    Handwriting     : False

8)language を 日本語(language list)へ変更

Set-WinUILanguageOverride -Language ja-JP

9) 再起動して表示言語有効化確認
再ログオンして表示言語が変更されることを確認
11_言語追加09.jpg

● 表示言語設定(GUI手順)

1) [スタート] ページ
[スタート] ページで、lang を入力し、[Language Setting] を選択
11_言語追加01.jpg

2) Language画面
[Add a language]をクリック
11_言語追加02.jpg

3) Choose a language to install画面
インストールする言語を参照または検索します。
ここでは、'japan'を検索して、[Japanese] を選択し、[Next] をクリック
11_言語追加03.jpg

4) Install language features画面
必要なコンポーネントをチェックして、[Install]をクリック
11_言語追加04.jpg

5) Language画面
言語パックがインストールされると、その言語が表示され、Windows の表示言語として使用できます。
この言語を表示言語にする場合は、その言語を言語リストの一番上に移動します。
11_言語追加05.jpg

6) 変更有効化
変更を有効にするために再起動し、再ログオンします。
11_言語追加06.jpg

7) 表示言語有効化確認(GUI)
再ログオンして表示言語が変更されることを確認
11_言語追加09.jpg

8) 表示言語有効化確認(CLI)

PS C:\Windows\system32> Get-WinUserLanguageList

    LanguageTag     : ja
    Autonym         : 日本語
    EnglishName     : Japanese
    LocalizedName   : 日本語
    ScriptName      : 日本語
    InputMethodTips : {0411:{03B5835F-F03C-411B-9CE2-AA23E1171E36}{A76C93D9-5523-4E90-AAFA-4DB112F9AC76}}
    Spellchecking   : True
    Handwriting     : True

    LanguageTag     : en-US
    Autonym         : English (United States)
    EnglishName     : English
    LocalizedName   : 英語 (米国)
    ScriptName      : ラテン文字
    InputMethodTips : {0409:00000409}
    Spellchecking   : True
    Handwriting     : False

■ 他ユーザーの言語設定

opcユーザー以外も言語を日本語にしたい場合次の設定を行います。

1) Language画面

[Administrative language settings]をクリック

他ユーザー言語設定.jpg

2) Region: Administrative画面

Welcome screen and new user accountsの[Copy settings...]をクリック
他ユーザー言語設定02.png

3) Welcome screen and new user accounts setting画面

次の2つの項目をチェック

    ☑️ Welcome screen and systemn accounts
    ☑️ New user account

他ユーザー言語設定03.png

4) チェック確認

チェックして内容を確認し問題なければ[OK]をクリック
他ユーザー言語設定04.jpg

5) 再起動

設定を反映するために再起動

他ユーザー言語設定05.jpg

■ 国または地域(Home Location)設定

地理的な場所の表から日本(122)を設定

1) 国または地域確認

PS C:\> Get-WinHomeLocation

    GeoId HomeLocation
    ----- ------------
    244 米国

2)設定変更

PS C:\> Set-WinHomeLocation -GeoId 122

3)設定変更確認(CLI)

PS C:\> Get-WinHomeLocation

    GeoId HomeLocation
    ----- ------------
    122 日本

4)設定変更確認(GUI)
11_言語追加10.jpg

■ 地域設定:日付と時刻の表示形式(System Locale)

1) ロケール確認

PS C:\> Get-WinSystemLocale

    LCID             Name             DisplayName
    ----             ----             -----------
    1033             en-US            English (United States)

2) 設定変更

PS C:\> Set-WinSystemLocale ja-JP

3) 設定変更確認(CLI)

PS C:\> Get-WinSystemLocale

    LCID             Name             DisplayName
    ----             ----             -----------
    1041             ja-JP            日本語 (日本)

4) 設定変更確認(GUI)
11_言語追加10.jpg

● タイム ゾーン(Time Zone)設定

1) タイム ゾーン確認

PS C:> Get-TimeZone

    Id                         : UTC
    DisplayName                : (UTC) 協定世界時
    StandardName               : 協定世界時
    DaylightName               : 協定世界時
    BaseUtcOffset              : 00:00:00
    SupportsDaylightSavingTime : False

2) TimeZone設定

PS C:\> Set-TimeZone -id "Tokyo Standard Time"

3)TimeZone設定確認(CLI)

PS C:\> Get-TimeZone

    Id                         : Tokyo Standard Time
    DisplayName                : (UTC+09:00) 大阪、札幌、東京
    StandardName               : 東京 (標準時)
    DaylightName               : 東京 (夏時間)
    BaseUtcOffset              : 09:00:00
    SupportsDaylightSavingTime : False

4)TimeZone設定確認(GUI)

PS C:\> timedate.cpl 

22_TImeZone確認.png

■ リモート・デスクトップ・サービス(RDS) ユーザー数制限解除

Windowsオペレーティング・システムでは、管理の目的でリモート・デスクトップ・サービス(RDS)を使用した最大2ユーザーのリモート・アクセスが許可されます。
デフォルトでは、ユーザー1 つに制限されているため解除することで、2ユーザーのリモート・アクセスをできるようにします。
リモート・デスクトップを使用するユーザーまたはデバイスごとに、RDS Client Access License (CAL)が必要です。

● 設定

1) Local Group Policy Editor起動

gpedit.msc

2) 設定
[コンピューターの構成] > [管理用テンプレート] > [Windows コンポーネント] > [リモート デスクトップ サービス] > [リモート デスクトップ セッション ホスト] > [接続] >
[リモート デスクトップ サービス ユーザーに対してリモート デスクトップ サービス セッションを 1 つに制限する]を設定
02_gpedit.msc01.jpg

3)リモート デスクトップ サービス ユーザーに対してリモート デスクトップ サービス セッションを 1 つに制限する画面
[無効]をチェックし、[OK]をクリック
02_gpedit.msc02.jpg

4)設定確認
02_gpedit.msc03.jpg

● 設定確認

1) 3セッション接続
3セッション以上接続すると、次の画面のように2つのうちどちらに接続するか試みることができます
11-3セッション目接続確認01.png

2) 上書き接続許可確認
接続しているときに他人が接続を試みると次のように許可するか選択することができます
11_3セッション目接続許可02.jpg

■ NTPサービス構成

Windows Powershellで管理者として次のコマンドを実行して、Windows ServerインスタンスがOracle Cloud Infrastructure NTPサービスを使用するように構成できます。
・参考: インスタンスに対するOracle Cloud Infrastructure NTPサービスの構成

● コマンド

Windows Powershellで管理者として次のコマンドを実行して、Windows ServerインスタンスがOracle Cloud Infrastructure NTPサービスを使用するように構成できます。

Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\Parameters' -Name 'Type' -Value NTP -Type String
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\Config' -Name 'AnnounceFlags' -Value 5 -Type DWord
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer' -Name 'Enabled' -Value 1 -Type DWord
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\Parameters' -Name 'NtpServer' -Value '169.254.169.254,0x9' -Type String
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient' -Name 'SpecialPollInterval' -Value 900 -Type DWord
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\Config' -Name 'MaxPosPhaseCorrection' -Value 1800 -Type DWord
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\Config' -Name 'MaxNegPhaseCorrection' -Value 1800 -Type DWord

● 手順

1) コマンド実行

PS C:\> Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\Parameters' -Name 'Type' -Value NTP -Type String
	Set-ItemProperty : Requested registry access is not allowed.
	At line:1 char:1
	+ Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Ti ...
	+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		+ CategoryInfo          : PermissionDenied: (HKEY_LOCAL_MACH...Time\Parameters:String) [Set-ItemProperty], Securit
	yException
		+ FullyQualifiedErrorId : System.Security.SecurityException,Microsoft.PowerShell.Commands.SetItemPropertyCommand

	PS C:\Users\opc> Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\Config' -Name 'AnnounceFlags' -Value 5 -Type DWord
	Set-ItemProperty : Requested registry access is not allowed.
	At line:1 char:1
	+ Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Ti ...
	+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		+ CategoryInfo          : PermissionDenied: (HKEY_LOCAL_MACH...\W32Time\Config:String) [Set-ItemProperty], Securit
	yException
		+ FullyQualifiedErrorId : System.Security.SecurityException,Microsoft.PowerShell.Commands.SetItemPropertyCommand
PS C:\> Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer' -Name 'Enabled' -Value 1 -Type DWord
	Set-ItemProperty : Requested registry access is not allowed.
	At line:1 char:1
	+ Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Ti ...
	+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		+ CategoryInfo          : PermissionDenied: (HKEY_LOCAL_MACH...iders\NtpServer:String) [Set-ItemProperty], Securit
	yException
		+ FullyQualifiedErrorId : System.Security.SecurityException,Microsoft.PowerShell.Commands.SetItemPropertyCommand

	PS C:\Users\opc> Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\Parameters' -Name 'NtpServer' -Value '169.254.169.254,0x9' -Type String
	Set-ItemProperty : Requested registry access is not allowed.
	At line:1 char:1
	+ Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Ti ...
	+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		+ CategoryInfo          : PermissionDenied: (HKEY_LOCAL_MACH...Time\Parameters:String) [Set-ItemProperty], Securit
	yException
		+ FullyQualifiedErrorId : System.Security.SecurityException,Microsoft.PowerShell.Commands.SetItemPropertyCommand
PS C:\> Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient' -Name 'SpecialPollInterval' -Value 900 -Type DWord
	Set-ItemProperty : Requested registry access is not allowed.
	At line:1 char:1
	+ Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Ti ...
	+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		+ CategoryInfo          : PermissionDenied: (HKEY_LOCAL_MACH...iders\NtpClient:String) [Set-ItemProperty], Securit
	yException
		+ FullyQualifiedErrorId : System.Security.SecurityException,Microsoft.PowerShell.Commands.SetItemPropertyCommand

	PS C:\Users\opc> Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\Config' -Name 'MaxPosPhaseCorrection' -Value 1800 -Type DWord
	Set-ItemProperty : Requested registry access is not allowed.
	At line:1 char:1
	+ Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Ti ...
	+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		+ CategoryInfo          : PermissionDenied: (HKEY_LOCAL_MACH...\W32Time\Config:String) [Set-ItemProperty], Securit
	yException
		+ FullyQualifiedErrorId : System.Security.SecurityException,Microsoft.PowerShell.Commands.SetItemPropertyCommand
PS C:\> Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Time\Config' -Name 'MaxNegPhaseCorrection' -Value 1800 -Type DWord
	Set-ItemProperty : Requested registry access is not allowed.
	At line:1 char:1
	+ Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Services\W32Ti ...
	+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		+ CategoryInfo          : PermissionDenied: (HKEY_LOCAL_MACH...\W32Time\Config:String) [Set-ItemProperty], Securit
	yException
		+ FullyQualifiedErrorId : System.Security.SecurityException,Microsoft.PowerShell.Commands.SetItemPropertyCommand

2) NTPサービスへの接続テスト
ポーリング間隔として指定された時間が経過すると、State が Pending から Activeに変わります。

PS C:\> w32tm /query /peers
	ピア数: 1

	Peer: 169.254.169.254,0x9
	State: Active
	Time Remaining: 879.6225932s
	Mode: 3 (Client)
	Stratum: 2 (secondary reference - syncd by (S)NTP)
	PeerPoll Interval: 17 (out of valid range)
	HostPoll Interval: 6 (64s)

■ シリアル・コンソール接続:Windows Special Administration Console (SAC)設定

Oracle Cloud Infrastructure (OCI)のコンピュート・インスタンスは、シリアル・コンソール接続を使用して、インスタンスの誤動作をリモートでトラブルシューティングできます。
Windows Special Administration Console (SAC) を使用すると、シリアル端末から PowerShellコンソールまたはコマンド・プロンプト(cmd)にアクセスできたり、ブート・プロセスに割り込むことができ、Windowsをセーフ・モードで起動できます。

● 手順

シリアル・コンソール接続:Windows Special Administration Console (SAC)設定 を参照

■ シリアル・コンソール接続: VNC接続

Oracle Cloud Infrastructure (OCI)のコンピュート・インスタンスは、シリアル・コンソール接続を使用して、インスタンスの誤動作をリモートでトラブルシューティングできます。
そして、インスタンスに対してコンソール接続を作成した後、VNCクライアントを使用して接続できます。

● 手順

手順は、SSHトンネルを使用する方法と、Puttyの plink.exeを使用する2つの方法があります。
シリアル・コンソール接続: SSHトンネルで VNC アクセス を参照
シリアル・コンソール接続: plink.exe で VNC アクセス を参照

■ SSH Server設定

OpenSSH は、SSH プロトコルを使用するリモート ログイン用の接続ツールです。 クライアントとサーバーの間のすべてのトラフィックを暗号化して、盗聴、接続ハイジャック、その他の攻撃を排除します。
OpenSSH を使用して、OpenSSH Client がインストールされている Windows 10 (ビルド 1809 以降) または Windows Server 2019 デバイスから、OpenSSH Server がインストールされているデバイスに接続できます。

● 手順

SSH Server設定 を参照

■ 参考

● Oracle Cloud Infrastructure ドキュメント
 ・Windowsインスタンスを起動して接続するためのガイド
 ・Oracle Cloud InfrastructureのMicrosoftライセンス
 ・カスタムのCloud-init初期化スクリプトの使用
 ・インスタンスに対するOracle Cloud Infrastructure NTPサービスの構成
 ・インスタンス・コンソール接続を使用したインスタンスのトラブルシューティング
 ・SSHクライアントおよびコマンドライン・シェルのインストール(Windows)
 ・Cloud Shellを使用したシリアル・コンソールへの接続
 ・VNCコンソールへの接続

● Microsoft ドキュメント
 ・Cannot configure a language pack for Windows Server 2019 Desktop Experience
 ・LPKSetup を使用する
 ・Lpksetup Command-Line Options
 ・Windows イメージへの言語の追加
 ・国際対応の設定
 ・地理的な場所の表
 ・Windows Special Administration Console (SAC)
 ・Windows での OpenSSH

3
5
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
3
5