Oracle Cloud: シリアル・コンソール接続して Windows Special Administration Console (SAC) でログインしてみてみた

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


#■ SAC 有効化
##1) Administrator:PowerShell 起動
リモート デスクトップを使用して Windows 仮想マシンに接続し、`Run as administrator`をクリックして Administrator:PowerShell を起動
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/b800e952-0892-fc06-88b0-72a30bdcdca7.png)
![04_PowerShell起動03.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/e2ff0114-1578-2c9d-b796-61fb1b368fa4.jpeg)




##2) シリアル コンソール有効化
インスタンスに接続し、管理 PowerShellで次のコマンドを実行
Windows VM/仮想マシン スケール セット用のシリアル コンソールを手動で有効にするには、次の手順に従います。
・CMDの場合

```cmd
PS C:\> bcdedit /ems '{current}' on
	The operation completed successfully.

PS C:\> bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200
```

・PowerShell の場合

```cmd
PS C:\> bcdedit /ems '{current}'
	The operation completed successfully.

PS C:\> bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200
		The operation completed successfully.
```

##3) シリアル コンソールの Windows ブート メニュー有効化
Windows ブート ローダーのプロンプトを有効にしてシリアル コンソールに表示するために、ブート構成データに次のオプションを追加

```cmd
PS C:\> bcdedit /set '{bootmgr}' displaybootmenu yes
		The operation completed successfully.

PS C:\> bcdedit /set '{bootmgr}' timeout 15
		The operation completed successfully.

PS C:\> bcdedit /set '{bootmgr}' bootems yes
		The operation completed successfully.
```

##4) インスタンスを再起動して、更新した構成を適用

```cmd
PS C:\> shutdown -r -t 0
```


#■ SAC用ユーザー作成
cmdコマンド・プロンプトでSAC用ユーザー test を作成してみます

##1) ユーザー作成

```cmd
C:\>net user test <Passwd> /add                                     
	The password entered is longer than 14 characters.  Computers                   
	with Windows prior to Windows 2000 will not be able to use                      
	this account. Do you want to continue this operation? (Y/N) [Y]: Y              
	The command completed successfully.    
```

##2）ユーザー作成確認

```cmd
C:\>net user                   

	User accounts for \\WIN2019-INST

	-------------------------------------------------------------------------------
	Administrator            cloudbase-init           DefaultAccount
	Guest                    opc                      sshd
	test                     WDAGUtilityAccount
	The command completed successfully.
```


##3) administrators グループへ所属設定

```cmd
C:\>net localgroup administrators test /add
	The command completed successfully.
```

##4) administrators グループ・ユーザー確認

```cmd
C:\>net localgroup administrators                 
	Alias name     administrators   
	Comment        Administrators have complete and unrestricted access to the compu
	ter/domain                                 

	Members                                                      

	------------------------------------------------------------------------------- 
	Administrator                  
	cloudbase-init                 
	NT SERVICE\OCAOSMS              
	NT SERVICE\OCAU                    
	NT SERVICE\OCAUM
	opc                                   
	test                                       
	The command completed successfully.
```


#■ クラウド・シェルを使用したシリアル・コンソールへの接続
##1) コンピュート・インスタンス 画面
Oracle Cloud Infrastructureコンソールのインスタンスの詳細ページで、「リソース」の下の[コンソール接続]をクリックして [Cloud Shell接続の起動]をクリック
このアクションにより、クラウド・シェルがコンソールの下部にあるドロワーに表示されます。
コンソール接続がすでに存在する場合、既存のリソースを削除するかどうかを尋ねられます。[y]を押してから、[Enter]を押します。
![02_コンソール接続01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/9df6f14c-3c99-a44b-37b8-2f834f45f8b0.jpeg)



##2) コンソール接続完了
![02_コンソール接続02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/d82cba1f-bdd6-f779-0433-c3ddc4952cdc.jpeg)


##3) SAC 起動確認
シリアル コンソールに接続します。 正常に接続できたら、プロンプトは SAC> になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/1a155327-95d1-3d1e-dd2c-3e0cb3ac8ccd.png)


##4) cmd コマンド・プロンプト起動
`cmd`と入力して、CMD インスタンスがあるチャネルを作成

```cmd
SAC>cmd                                                                         
The Command Prompt session was successfully launched.                           
SAC>                                                                            
EVENT:   A new channel has been created.  Use "ch -?" for channel help.         
Channel: Cmd0001                                                                
SAC>
```

##5) cmd切り替え
`ch -si 1`と入力するか、`<esc>+<tab>` のショートカット キーを押して、CMD インスタンスを実行しているチャネルに切り替えます。

```cmd
Name:                  Cmd0001
Description:           Command
Type:                  VT-UTF8
Channel GUID:          5c70034b-72cf-11ec-8014-0200170119f4
Application Type GUID: 63d02271-8aa4-11d5-bccf-00b0d014a2d0

Press <esc><tab> for next channel.
Press <esc><tab>0 to return to the SAC channel.
Use any other key to view this channel.
```




##6) Userログイン
Enter キーを押して、管理アクセス許可を持つサインイン資格情報を入力
作成したAdministoraters権限あるtestユーザーでログイン

```cmd
Please enter login credentials.
Username: test
Domain  : 
Password: ********
```


##7) ログイン完了

```cmd
Microsoft Windows [Version 10.0.17763.2300]                                     
(c) 2018 Microsoft Corporation. All rights reserved.                            
																				
C:\Windows\system32>  
```

##8) ログインユーザー確認

```cmd
C:\Windows\system32>whoami                                                      
	win2019-inst\test 
```

##9) PowerShell
PowerShell インスタンスを起動するには、CMD インスタンスに`PowerShell`と入力し、Enter キーを押下

```cmd
C:\>PowerShell
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\>
```

##10) PowerShellコマンド確認

```cmd
PS C:\> ls                                                                      


    Directory: C:\                                                              


Mode                LastWriteTime         Length Name                           
----                -------------         ------ ----                           
d-----        1/10/2022  12:03 PM                OracleCloudAgent               
d-----        1/10/2022  12:07 PM                oracle_unified_agent           
d-----        11/9/2021   8:42 PM                PerfLogs                       
d-r---        1/11/2022   6:53 AM                Program Files                  
d-----        11/9/2021   8:17 PM                Program Files (x86)            
d-r---        1/10/2022  12:12 PM                Users                          
d-----        1/10/2022  12:05 PM                Windows                        
-a----        1/10/2022  12:07 PM             22 oracle_unified_agent.2022-01-1
                                                 0 120740 UTC.zip
```

#■参考
・[Windows Special Administration Console (SAC)](https://docs.oracle.com/ja-jp/iaas/Content/Compute/References/serialconsole.htm#four__windows)
・[Emergency Management Services Tools and Settings](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc787940(v=ws.10))
・[Windows での OpenSSH: OpenSSH をインストールする](https://docs.microsoft.com/ja-jp/windows-server/administration/openssh/openssh_install_firstuse)
・[Oracle Cloud: Windows Server に OpenSSH を設定して ssh接続してみてみた](https://qiita.com/shirok/items/4f0da262921bbc87f5d8)