<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>エス・プロ</title>
	<atom:link href="https://s-pro4.com/feed" rel="self" type="application/rss+xml" />
	<link>https://s-pro4.com</link>
	<description>パソコンとシステムの活用を考えます</description>
	<lastBuildDate>Sat, 31 Oct 2026 11:33:41 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>

<image>
	<url>https://s-pro4.com/wp-content/uploads/2021/10/bb4c6ee1587184e454cc308581390f8d-150x150.png</url>
	<title>エス・プロ</title>
	<link>https://s-pro4.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>さくらのレンタルサーバーでドメイン毎にPHPバージョンを変える</title>
		<link>https://s-pro4.com/page-1474.html</link>
		
		<dc:creator><![CDATA[stakaha]]></dc:creator>
		<pubDate>Sat, 31 Oct 2026 11:33:39 +0000</pubDate>
				<category><![CDATA[php]]></category>
		<guid isPermaLink="false">https://s-pro4.com/?p=1474</guid>

					<description><![CDATA[さくらサーバーのコントロールパネルではPHPバージョンを指定（変更）することが可能である。 これはマスター設定というかサーバ全体に効いてしまうため、初期ドメインを含めたマルチドメインに対して全て同一のPHPバージョンを使 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">さくらサーバーのコントロールパネルではPHPバージョンを指定（変更）することが可能である。</p>



<figure class="wp-block-image size-large is-style-vk-image-border"><img fetchpriority="high" decoding="async" width="1024" height="751" src="https://s-pro4.com/wp-content/uploads/2026/10/sakura_ss-1024x751.jpg" alt="" class="wp-image-1475" srcset="https://s-pro4.com/wp-content/uploads/2026/10/sakura_ss-1024x751.jpg 1024w, https://s-pro4.com/wp-content/uploads/2026/10/sakura_ss-300x220.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/10/sakura_ss-768x564.jpg 768w, https://s-pro4.com/wp-content/uploads/2026/10/sakura_ss.jpg 1247w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">これはマスター設定というかサーバ全体に効いてしまうため、初期ドメインを含めたマルチドメインに対して全て同一のPHPバージョンを使うことになってしまう。</p>



<p class="wp-block-paragraph">これは意外に困るのだ。<br>マルチドメイン可能とはいえ、実際のところひとつのサーバ契約の中に複数ドメインを入れ込むことはほぼない。<br>しかし、困る場面はPHPのバージョンアップである。<br>例えばPHP 8.2から8.3へバージョンアップをしたい時には当然試験が必要である。<br>まぁ「ちょっとくらいサイトが止まってもよい」という覚悟でいきなり上げることもあるかもしれないが、試験を行うのが望ましい。<br>ここで、ドメイン毎あるいは特定サイトに対して別バージョンのPHPを利用できるならばとても便利。</p>



<p class="wp-block-paragraph">そんなときは、こんな方法がある。<br>PHPバージョンを指定したシェルスクリプトを間にはさむやり方だ。</p>



<p class="wp-block-paragraph">まずは下記の内容をphp.cgiとして、「PHPバージョンを変更したいドキュメントルートに配置する」<br>----------<br>#!/bin/sh<br>exec /usr/local/php/8.2/bin/php-cgi<br>----------</p>



<p class="wp-block-paragraph">8.2の部分は利用したいPHPのメジャーバージョン.マイナーバージョン。<br>sshで接続して、php-cgiが置いてある実際のパスを確認するのが良い。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="591" height="185" src="https://s-pro4.com/wp-content/uploads/2026/10/sakura2.jpg" alt="" class="wp-image-1476" srcset="https://s-pro4.com/wp-content/uploads/2026/10/sakura2.jpg 591w, https://s-pro4.com/wp-content/uploads/2026/10/sakura2-300x94.jpg 300w" sizes="(max-width: 591px) 100vw, 591px" /></figure>



<p class="wp-block-paragraph">このシェルスクリプトはパーミッションを705にする。</p>



<p class="wp-block-paragraph">そして、.htaccessに下記を記述する。<br>一番上で良いのではないか。<br>----------<br>Action myphp-script /php.cgi<br>AddHandler myphp-script .php .html<br>----------<br>AddHandlerの .html は任意。</p>



<p class="wp-block-paragraph">シェルスクリプトを通してCGIモードで動作させることになる。</p>



<p class="wp-block-paragraph">さくらサーバーとしてドメイン毎のバージョン変更を管理画面からできれば嬉しいが、できなくしている理由がなにかあるのでしょう。</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Githubでソースコードを管理してみる</title>
		<link>https://s-pro4.com/page-1451.html</link>
		
		<dc:creator><![CDATA[stakaha]]></dc:creator>
		<pubDate>Fri, 16 Oct 2026 23:32:02 +0000</pubDate>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[web技術]]></category>
		<guid isPermaLink="false">https://s-pro4.com/?p=1451</guid>

					<description><![CDATA[オープンソースのダウンロードに以前Githubの記事を書いた。githubからダウンロード 今回は自身のソースコード管理に使用してみる。 最初にGithubでユーザ登録を行う。必要なのはメールアドレス、パスワード、ユーザ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">オープンソースのダウンロードに以前Githubの記事を書いた。<br><a href="https://s-pro4.com/page-583.html" data-type="post" data-id="583">githubからダウンロード</a></p>



<p class="wp-block-paragraph">今回は自身のソースコード管理に使用してみる。</p>



<p class="wp-block-paragraph">最初にGithubでユーザ登録を行う。<br>必要なのはメールアドレス、パスワード、ユーザ名。<br>ログイン後は念のためパスキーを追加し、2要素認証を追加する。</p>



<figure class="wp-block-image size-large is-style-vk-image-border"><img decoding="async" width="1024" height="646" src="https://s-pro4.com/wp-content/uploads/2026/10/github1-1024x646.jpg" alt="" class="wp-image-1452" srcset="https://s-pro4.com/wp-content/uploads/2026/10/github1-1024x646.jpg 1024w, https://s-pro4.com/wp-content/uploads/2026/10/github1-300x189.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/10/github1-768x485.jpg 768w, https://s-pro4.com/wp-content/uploads/2026/10/github1.jpg 1279w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">New repositoryからリポジトリを作成する。</p>



<figure class="wp-block-image size-full is-style-vk-image-border"><img loading="lazy" decoding="async" width="429" height="313" src="https://s-pro4.com/wp-content/uploads/2026/10/github2.jpg" alt="" class="wp-image-1453" srcset="https://s-pro4.com/wp-content/uploads/2026/10/github2.jpg 429w, https://s-pro4.com/wp-content/uploads/2026/10/github2-300x219.jpg 300w" sizes="(max-width: 429px) 100vw, 429px" /></figure>



<figure class="wp-block-image size-full is-style-vk-image-border"><img loading="lazy" decoding="async" width="753" height="765" src="https://s-pro4.com/wp-content/uploads/2026/10/github4.jpg" alt="" class="wp-image-1455" srcset="https://s-pro4.com/wp-content/uploads/2026/10/github4.jpg 753w, https://s-pro4.com/wp-content/uploads/2026/10/github4-295x300.jpg 295w" sizes="(max-width: 753px) 100vw, 753px" /></figure>



<p class="wp-block-paragraph">visibilityは今回はPrivateにする。自身のコード管理に使うのみ。公開はしない。<br>.gitignoreは後でも作成できるので、ここでは何もしない。</p>



<p class="wp-block-paragraph">次に情報漏洩等の対策。安全に。</p>



<p class="wp-block-paragraph">Copilotに学習させない。</p>



<figure class="wp-block-image size-full is-style-vk-image-border"><img loading="lazy" decoding="async" width="1005" height="975" src="https://s-pro4.com/wp-content/uploads/2026/10/github5.jpg" alt="" class="wp-image-1456" srcset="https://s-pro4.com/wp-content/uploads/2026/10/github5.jpg 1005w, https://s-pro4.com/wp-content/uploads/2026/10/github5-300x291.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/10/github5-768x745.jpg 768w" sizes="(max-width: 1005px) 100vw, 1005px" /></figure>



<p class="wp-block-paragraph">Copilot＞Features＞Privacyで<br>「Allow GitHub to use my data for AI model training」をDisabledへ変更する。<br>Copilot＞Features＞Visibilityで<br>「Show Copilot」をDisabledへ変更する。</p>



<figure class="wp-block-image size-large is-style-vk-image-border"><img loading="lazy" decoding="async" width="1024" height="659" src="https://s-pro4.com/wp-content/uploads/2026/10/github6-1024x659.jpg" alt="" class="wp-image-1457" srcset="https://s-pro4.com/wp-content/uploads/2026/10/github6-1024x659.jpg 1024w, https://s-pro4.com/wp-content/uploads/2026/10/github6-300x193.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/10/github6-768x494.jpg 768w, https://s-pro4.com/wp-content/uploads/2026/10/github6.jpg 1305w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Copilot＞Cloud agentで<br>「Responsitory access」をNo responsitoriesへ変更する。</p>



<p class="wp-block-paragraph">まずはhttpsで接続するため、パスワードとなるトークン(Personal access token)を追加。</p>



<figure class="wp-block-image size-full is-style-vk-image-border"><img loading="lazy" decoding="async" width="954" height="377" src="https://s-pro4.com/wp-content/uploads/2026/10/github7.jpg" alt="" class="wp-image-1458" srcset="https://s-pro4.com/wp-content/uploads/2026/10/github7.jpg 954w, https://s-pro4.com/wp-content/uploads/2026/10/github7-300x119.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/10/github7-768x303.jpg 768w" sizes="(max-width: 954px) 100vw, 954px" /></figure>



<p class="wp-block-paragraph">Developer settings＞Personal access tokens＞Fine-grained tokensで<br>「Generate new token」をクリックする。</p>



<figure class="wp-block-image size-large is-style-vk-image-border"><img loading="lazy" decoding="async" width="772" height="1024" src="https://s-pro4.com/wp-content/uploads/2026/10/github8-1-772x1024.jpg" alt="" class="wp-image-1460" srcset="https://s-pro4.com/wp-content/uploads/2026/10/github8-1-772x1024.jpg 772w, https://s-pro4.com/wp-content/uploads/2026/10/github8-1-226x300.jpg 226w, https://s-pro4.com/wp-content/uploads/2026/10/github8-1-768x1019.jpg 768w, https://s-pro4.com/wp-content/uploads/2026/10/github8-1.jpg 1117w" sizes="(max-width: 772px) 100vw, 772px" /></figure>



<p class="wp-block-paragraph">ここでもできるだけ安全な方向へ。<br>・Expirationでトークンの有効期限を設定する。<br>・Repository accessを「Only select repositories」にして使えるリポジトリを限定する。<br>・PermissionsではContentsを追加し「Read and write」に設定</p>



<p class="wp-block-paragraph">作成されたトークンをコピーする。後で使用する。</p>



<figure class="wp-block-image size-full is-style-vk-image-border"><img loading="lazy" decoding="async" width="921" height="188" src="https://s-pro4.com/wp-content/uploads/2026/10/github9.jpg" alt="" class="wp-image-1461" srcset="https://s-pro4.com/wp-content/uploads/2026/10/github9.jpg 921w, https://s-pro4.com/wp-content/uploads/2026/10/github9-300x61.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/10/github9-768x157.jpg 768w" sizes="(max-width: 921px) 100vw, 921px" /></figure>



<p class="wp-block-paragraph">Create new fileから.gitignoreを作成する。<br>内容を編集する。<br>自身のコードではないダウンロードライブラリのようなものは除外する。<br>またパスワードなどの秘匿事項を記載したファイルも除外する。</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">あとは、ローカル（Mac）からGithubを使う準備をする。</p>



<p class="wp-block-paragraph">gitコマンドの確認<br>git -v<br>git version 2.50.1 (Apple Git-155)</p>



<p class="wp-block-paragraph">which git<br>/usr/bin/git</p>



<p class="wp-block-paragraph">最新バージョンがあるかと Homebrewでインストール<br>brew install git</p>



<p class="wp-block-paragraph">which git<br>/opt/homebrew/bin/git</p>



<p class="wp-block-paragraph">git -v<br>git version 2.50.1 (Apple Git-155)</p>



<p class="wp-block-paragraph">同じだった・・・。</p>



<p class="wp-block-paragraph">ローカル(Mac)で初期設定<br>git config --global user.name ユーザ名<br>git config --global user.email メールアドレス</p>



<p class="wp-block-paragraph">~/.gitconfig<br>が生成される。</p>



<p class="wp-block-paragraph">一応設定内容を確認する。</p>



<p class="wp-block-paragraph">ユーザ名を表示させる<br>git config --global user.name</p>



<p class="wp-block-paragraph">メールアドレスを表示させる<br>git config --global user.email</p>



<p class="wp-block-paragraph">リポジトリをクローンする。<br>なおcloneを実行するとその場所にリポジトリ名と同じディレクトリが作成される。これを考慮して管理したいソースの位置を決める。<br>git clone https://github.com/ユーザ名/リポジトリ名.git</p>



<p class="wp-block-paragraph">リポジトリをPrivateにしたため、ここでユーザ名とパスワード（トークン）を聞かれ入力が必要。</p>



<p class="wp-block-paragraph">cloneに成功すると必要ファイルが作成される。READMEはいらなかったかも。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="413" height="80" src="https://s-pro4.com/wp-content/uploads/2026/10/github10.jpg" alt="" class="wp-image-1462" srcset="https://s-pro4.com/wp-content/uploads/2026/10/github10.jpg 413w, https://s-pro4.com/wp-content/uploads/2026/10/github10-300x58.jpg 300w" sizes="(max-width: 413px) 100vw, 413px" /></figure>



<p class="wp-block-paragraph">あとは、この配下に自分が管理したいソース、例えばpublic_html/等の既存データをコピーする。</p>



<p class="wp-block-paragraph">git statusで変更ファイルの確認ができる。</p>



<p class="wp-block-paragraph">gitに追加される予定ファイルを確認する。<br>git add --dry-run .</p>



<p class="wp-block-paragraph">秘密ファイルなどが含まれていたら.gitignoreを編集して除外する。解決したら実際にgitにファイルを追加する。<br>git add .</p>



<p class="wp-block-paragraph">変更内容を確認する。<br>git diff --cached<br>※lessみたいな動作なので "q" で終する。</p>



<p class="wp-block-paragraph">ローカルでコミットする。<br>git commit -m "コメント"<br>最初なので、<br>git commit -m "初版"<br>としておく。</p>



<p class="wp-block-paragraph">次にGithubへアップロード（push）する。<br>git push origin main</p>



<p class="wp-block-paragraph">データの取得はpullを使う。<br>git pull origin main</p>



<p class="wp-block-paragraph">最後のコミットと現在のローカルの変更を比較する。<br>git diff HEAD<br><code>-</code> は変更前、<code>+</code> は変更後<br>特定のファイルだけを比較するにはファイルパスを指定<br>git diff HEAD -- public_html/index.php</p>



<p class="wp-block-paragraph">git diff HEADはgit add済みも未実行も含んで比較する。<br>git diff --cachedはgit add済みのものだけ比較<br></p>



<p class="wp-block-paragraph"><br></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>LOLIPOP!の固定IPアドレスを使用してみる</title>
		<link>https://s-pro4.com/page-1442.html</link>
		
		<dc:creator><![CDATA[stakaha]]></dc:creator>
		<pubDate>Wed, 07 Oct 2026 14:35:07 +0000</pubDate>
				<category><![CDATA[ネットワーク]]></category>
		<guid isPermaLink="false">https://s-pro4.com/?p=1442</guid>

					<description><![CDATA[以前、インターリンクのマイIPで固定IPアドレスを使用していたが、必要がなくなり解約してしまった。最近また必要になり、比較してみるとLOLIPOP!（ロリポップ!）が最安値クラスで良さそう。契約してみた。 なお、自宅でサ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">以前、インターリンクのマイIPで固定IPアドレスを使用していたが、必要がなくなり解約してしまった。<br>最近また必要になり、比較してみるとLOLIPOP!（ロリポップ!）が最安値クラスで良さそう。契約してみた。</p>



<p class="wp-block-paragraph">なお、自宅でサーバを立てるなどISP型ではなく、接続元のIPアドレスを固定したい目的でVPN型から選んだ。</p>



<p class="wp-block-paragraph">「最短5分で利用開始」をうたっている。本当に5分程度で使えるようになった。<br>※ステマではありません。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="406" src="https://s-pro4.com/wp-content/uploads/2026/10/lolipop-1024x406.jpg" alt="" class="wp-image-1443" srcset="https://s-pro4.com/wp-content/uploads/2026/10/lolipop-1024x406.jpg 1024w, https://s-pro4.com/wp-content/uploads/2026/10/lolipop-300x119.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/10/lolipop-768x304.jpg 768w, https://s-pro4.com/wp-content/uploads/2026/10/lolipop.jpg 1161w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">申込後、すぐに管理画面へログインできグローバルIPアドレスが付与される。<br>無料期間2ヶ月がついており、今はお試し期間になっている。</p>



<p class="wp-block-paragraph">接続はWireGuardというアプリを使用する。Mac用もWindows用もある。<br>マニュアルもある<br>マニュアル）<br><a href="https://support.vpn.lolipop.jp/hc/ja/articles/37132585319827-WireGuard%E3%81%AE%E8%A8%AD%E5%AE%9A%E6%96%B9%E6%B3%95-Mac" target="_blank" rel="noopener">https://support.vpn.lolipop.jp/hc/ja/articles/37132585319827-WireGuard%E3%81%AE%E8%A8%AD%E5%AE%9A%E6%96%B9%E6%B3%95-Mac</a><br>アプリをダウンロードしてインストールする。<br>つぎにWireGuardの設定ファイルを管理画面からダウンロードする。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="505" height="696" src="https://s-pro4.com/wp-content/uploads/2026/10/lolipop2.jpg" alt="" class="wp-image-1444" srcset="https://s-pro4.com/wp-content/uploads/2026/10/lolipop2.jpg 505w, https://s-pro4.com/wp-content/uploads/2026/10/lolipop2-218x300.jpg 218w" sizes="(max-width: 505px) 100vw, 505px" /></figure>



<p class="wp-block-paragraph"><br>設定ファイルはもちろん自分専用。</p>



<p class="wp-block-paragraph">設定ファイル .conf をWireGuardにインポートする。画像はMacのもの。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="796" height="503" src="https://s-pro4.com/wp-content/uploads/2026/10/lolipop3.jpg" alt="" class="wp-image-1445" srcset="https://s-pro4.com/wp-content/uploads/2026/10/lolipop3.jpg 796w, https://s-pro4.com/wp-content/uploads/2026/10/lolipop3-300x190.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/10/lolipop3-768x485.jpg 768w" sizes="(max-width: 796px) 100vw, 796px" /></figure>



<p class="wp-block-paragraph">「有効化」を押すとすぐに繋がる。ここまで本当に5分くらい。<br>切断をしたい時には「無効化」をクリックするだけ。<br></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="908" height="386" src="https://s-pro4.com/wp-content/uploads/2026/10/lolipop4.jpg" alt="" class="wp-image-1446" srcset="https://s-pro4.com/wp-content/uploads/2026/10/lolipop4.jpg 908w, https://s-pro4.com/wp-content/uploads/2026/10/lolipop4-300x128.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/10/lolipop4-768x326.jpg 768w" sizes="(max-width: 908px) 100vw, 908px" /></figure>



<p class="wp-block-paragraph">自身のIPアドレスを調べられるサイトで、契約したIPアドレスが表示されることを確認。<br>すぐ使える。</p>



<p class="wp-block-paragraph">自分の使い方は、固定IPを使いたいときだけ「有効化」し用事が終わったら「無効化」する。<br>しかし、ロリポップではルーティング機能も無料で使える。<br>管理画面のルーティングに、「フルトンネル」か「スプリットトンネル」かを選択できる。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="505" src="https://s-pro4.com/wp-content/uploads/2026/10/lolipop5-1024x505.jpg" alt="" class="wp-image-1447" srcset="https://s-pro4.com/wp-content/uploads/2026/10/lolipop5-1024x505.jpg 1024w, https://s-pro4.com/wp-content/uploads/2026/10/lolipop5-300x148.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/10/lolipop5-768x379.jpg 768w, https://s-pro4.com/wp-content/uploads/2026/10/lolipop5.jpg 1109w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">全ネットワーク接続をVPN経由つまり固定IPアドレスで接続するフルトンネルか、特定の接続先に対してのみ固定IPアドレスを使用するスプリットトンネルかの選択ができる。<br>スプリットトンネルについては、固定IPアドレスでアクセスするIPアドレスまたはURLを登録する。<br>これだけで切り替わるわけではなく、あくまでもコンフィグファイルをダウンロードして、WireGuard側で切り替える。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="800" height="507" src="https://s-pro4.com/wp-content/uploads/2026/10/lolipop6.jpg" alt="" class="wp-image-1448" srcset="https://s-pro4.com/wp-content/uploads/2026/10/lolipop6.jpg 800w, https://s-pro4.com/wp-content/uploads/2026/10/lolipop6-300x190.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/10/lolipop6-768x487.jpg 768w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p class="wp-block-paragraph">両方のプロファイルを登録しておいて、必要な方の接続を有効にすることが可能。</p>



<p class="wp-block-paragraph">固定IPアドレスを使うことで、ssh接続やWordPressの管理画面ログインに制約を入れたり、セキュリティを高めることが可能。</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>RustDeskの自前サーバをVPSのWebARENAで構築する</title>
		<link>https://s-pro4.com/page-1434.html</link>
		
		<dc:creator><![CDATA[stakaha]]></dc:creator>
		<pubDate>Tue, 22 Sep 2026 20:19:28 +0000</pubDate>
				<category><![CDATA[web技術]]></category>
		<category><![CDATA[未分類]]></category>
		<guid isPermaLink="false">https://s-pro4.com/?p=1434</guid>

					<description><![CDATA[リモートデスクトップサービスRustDeskについて以前の記事に書いた。リモートデスクトップアプリRustDeskを使ってみる RustDeskの公開サーバを使用していて決定的に困ることは現在は起きていないが、たまにログ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">リモートデスクトップサービスRustDeskについて以前の記事に書いた。<br><a href="https://s-pro4.com/page-1320.html" data-type="post" data-id="1320">リモートデスクトップアプリRustDeskを使ってみる</a></p>



<p class="wp-block-paragraph">RustDeskの公開サーバを使用していて決定的に困ることは現在は起きていないが、たまにログインを求められることはある。<br>自前サーバの利用を試してみたく、やってみることにした。</p>



<p class="wp-block-paragraph">また、WebARENAの初期構築についても書いた。<br><a href="https://s-pro4.com/page-1421.html" data-type="post" data-id="1421">VPS利用のためWebARENA Indigoを使用してみる</a><br><a href="https://s-pro4.com/page-1430.html" data-type="post" data-id="1430">VPS利用のためWebARENA Indigoを使用してみる　その2</a></p>



<p class="wp-block-paragraph">自前サーバ「セルフホスト」に関するドキュメントは下記<br><a href="https://rustdesk.com/docs/ja/self-host/" target="_blank" rel="noopener">https://rustdesk.com/docs/ja/self-host/</a></p>



<p class="wp-block-paragraph">ちょっと難しいのと、前回記事に書いた通り、<br>WebARENA＋ubuntu用として、ChatGPTに聞くと下記の手順を示された。<br>Step 1　WebARENA側のVPSを確認<br>Step 2　Ubuntuの初期確認・アップデート<br>Step 3　Dockerをインストール<br>Step 4　RustDesk Serverの配置・設定<br>Step 5　RustDesk Serverの起動・動作確認<br>Step 6　RustDeskクライアントを自前サーバーへ接続<br>Step 7　運用設定・最終確認</p>



<p class="wp-block-paragraph">今回はいよいよ本丸というかStep 3から進める。</p>



<h2 class="wp-block-heading">Step 3　Dockerをインストール</h2>



<p class="wp-block-paragraph">まずはDockerが入っているかどうか確認<br>$ docker --version<br>Command 'docker' not found, but can be installed with:<br>sudo snap install docker # version 29.8.0, or<br>sudo snap install docker # version 29.6.1<br>sudo apt install docker.io # version 29.1.3-0ubuntu3~24.04.2<br>sudo apt install podman-docker # version 4.9.3+ds1-1ubuntu0.2<br>See 'snap info ' for additional versions.</p>



<p class="wp-block-paragraph">入っていない。<br>親切にインストール手順まで案内してくれている。<br>しかし、今回はRustDesk向けなので、RustDesk公式ドキュメントが推奨する下記の方法に準じてインストールすることにした。</p>



<p class="wp-block-paragraph">(1)bash &lt;(wget -qO- https://get.docker.com)<br>(2)wget rustdesk.com/oss.yml -O compose.yml<br>(3)sudo docker compose up -d</p>



<p class="wp-block-paragraph">ここでもう少し丁寧にする。<br>・(1)に関してはインストール用スクリプトの中身を見てから実行するため、一旦ファイルに保存する手順とする。<br>　まぁ見てもあまりわからなかったけど。<br>・2回目のwget前にRustDeskディレクトリを作成し移動。<br>・2回目のwgetではhttps:// を明確に補うことにした。<br>・最後にコンテナ起動の前にdocder compose configで構文を確認する手順を入れた。<br>(1)wget https://get.docker.com -O get-docker.sh<br>(2)sudo sh get-docker.sh<br>(3)mkdir RustDesk<br>(4)cd RustDesk<br>(5)wget https://rustdesk.com/oss.yml -O compose.yml<br>(6)compose.ymlの内容を編集<br>(7)sudo docker compose config<br>(8)sudo docker compose up -d</p>



<p class="wp-block-paragraph">Step 3　(1)(2)<br>Step 4　(3)(4)(5)(6)(7)<br>Step 5　(8)<br>とする。</p>



<p class="wp-block-paragraph">(1)インストーラーをダウンロードしローカルに保存<br>$ wget https://get.docker.com -O get-docker.sh<br>--2026-09-19 21:40:13-- https://get.docker.com/<br>Resolving get.docker.com (get.docker.com)... 13.249.165.103, 13.249.165.78, 13.249.165.12, ...<br>Connecting to get.docker.com (get.docker.com)|13.249.165.103|:443... connected.<br>HTTP request sent, awaiting response... 200 OK<br>Length: 23731 (23K) [text/plain]<br>Saving to: ‘get-docker.sh’</p>



<p class="wp-block-paragraph">get-docker.sh 100%[===================================================&gt;] 23.17K --.-KB/s in 0s<br>2026-09-19 21:40:14 (86.1 MB/s) - ‘get-docker.sh’ saved [23731/23731]</p>



<p class="wp-block-paragraph">Dockerのインストーラーとなるスクリプトが get-docker.shとして保存された。</p>



<p class="wp-block-paragraph">(2)インストーラーを実行<br>$ sudo sh get-docker.sh<br>を実行しインストール。<br><br>インストールされたかどうかを確認<br>$ docker --version<br>Docker version 29.8.1, build 4a63305<br><br>$ sudo docker compose version<br>Docker Compose version v5.5.1</p>



<h2 class="wp-block-heading">Step 4　RustDesk Serverの配置・設定</h2>



<p class="wp-block-paragraph">(3)作業ディレクトリ作成<br>mkdir RustDesk</p>



<p class="wp-block-paragraph">(4)作業ディレクトリへ移動<br>cd RustDesk</p>



<p class="wp-block-paragraph">(5)設定ファイルをダウンロードしローカルに保存<br>$ wget https://rustdesk.com/oss.yml -O compose.yml<br>--2026-09-20 07:38:24-- https://rustdesk.com/oss.yml<br>Resolving rustdesk.com (rustdesk.com)... 172.66.167.80, 104.20.19.94, 2606:4700:10::ac42:a750, ...<br>Connecting to rustdesk.com (rustdesk.com)|172.66.167.80|:443... connected.<br>HTTP request sent, awaiting response... 200 OK<br>Length: 402 [application/octet-stream]<br>Saving to: ‘compose.yml’</p>



<p class="wp-block-paragraph">compose.yml 100%[===================================================&gt;] 402 --.-KB/s in 0s<br>2026-09-20 07:38:24 (108 MB/s) - ‘compose.yml’ saved [402/402]</p>



<p class="wp-block-paragraph">compose.ymlが保存された。</p>



<p class="wp-block-paragraph">(6)compose.ymlの内容を編集</p>



<p class="wp-block-paragraph">hbbsに常にリレーにするALWAYS_USE_RELAY=Yを入れる。後からわかったことだが、試験のときログに残らず本当に自前サーバを通っているのか？ となった。ChatGPTが言うには、P2Pが使えるときはリレーにならずログに残らないのではないかとのこと。公開サーバではなく自前サーバでリレーされていることを確認するために、一旦入れて、最後には外す。<br>もうひとつ、hbbrに公開鍵を登録する。<br>公開鍵は data/id_ed25519.pub に保存されたファイルの内容（文字列）</p>



<p class="wp-block-paragraph">編集前</p>



<pre class="wp-block-code"><code>services:
  hbbs:
    container_name: hbbs
    image: rustdesk/rustdesk-server:latest
    command: hbbs
    volumes:
      - ./data:/root
    network_mode: "host"
    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr:
    container_name: hbbr
    image: rustdesk/rustdesk-server:latest
    command: hbbr
    volumes:
      - ./data:/root
    network_mode: "host"
    restart: unless-stopped</code></pre>



<p class="wp-block-paragraph">編集後</p>



<pre class="wp-block-code"><code>services:
  hbbs:
    container_name: hbbs
    image: rustdesk/rustdesk-server:latest
<span data-color="#fcb900" style="--vk-highlighter-color: rgba(252, 185, 0, 0.7);" class="vk_highlighter">    environment:
      - ALWAYS_USE_RELAY=Y</span>
    command: hbbs
    volumes:
      - ./data:/root
    network_mode: "host"
    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr:
    container_name: hbbr
    image: rustdesk/rustdesk-server:latest
<span data-color="#fcb900" style="--vk-highlighter-color: rgba(252, 185, 0, 0.7);" class="vk_highlighter">    environment:
      - KEY=&lt;公開鍵></span>
    command: hbbr
    volumes:
      - ./data:/root
    network_mode: "host"
    restart: unless-stopped</code></pre>



<p class="wp-block-paragraph">(7)設定ファイルのチェック<br>sudo docker compose config</p>



<pre class="wp-block-code"><code>name: rustdesk
services:
  hbbr:
    command:
      - hbbr
    container_name: hbbr
    environment:
      KEY: &lt;公開鍵>
    image: rustdesk/rustdesk-server:latest
    network_mode: host
    restart: unless-stopped
    volumes:
      - type: bind
        source: /home/ubuntu/RustDesk/data
        target: /root
        bind: {}
  hbbs:
    command:
      - hbbs
    container_name: hbbs
    depends_on:
      hbbr:
        condition: service_started
        required: true
    environment:
      ALWAYS_USE_RELAY: 'Y'
    image: rustdesk/rustdesk-server:latest
    network_mode: host
    restart: unless-stopped
    volumes:
      - type: bind
        source: /home/ubuntu/RustDesk/data
        target: /root
        bind: {}</code></pre>



<p class="wp-block-paragraph">設定が正しいこと、エラーがないことを確認する。</p>



<h2 class="wp-block-heading">Step 5　RustDesk Serverの起動・動作確認</h2>



<p class="wp-block-paragraph">(8)コンテナの起動<br>(cd RustDesk)<br>sudo docker compose up -d</p>



<p class="wp-block-paragraph">[+] up 6/6<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Image rustdesk/rustdesk-server:latest Pulled 3.6s<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Container hbbr Started 0.5s<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Container hbbs Started 0.5s</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="869" height="80" src="https://s-pro4.com/wp-content/uploads/2026/09/RustDesk_server_setup2.jpg" alt="" class="wp-image-1435" srcset="https://s-pro4.com/wp-content/uploads/2026/09/RustDesk_server_setup2.jpg 869w, https://s-pro4.com/wp-content/uploads/2026/09/RustDesk_server_setup2-300x28.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/09/RustDesk_server_setup2-768x71.jpg 768w" sizes="(max-width: 869px) 100vw, 869px" /></figure>



<p class="wp-block-paragraph">正常に起動する。</p>



<p class="wp-block-paragraph">(9)コンテナが起動されていることの確認<br>$ sudo docker compose ps<br>NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS<br>hbbr rustdesk/rustdesk-server:latest "hbbr" hbbr About a minute ago Up About a minute<br>hbbs rustdesk/rustdesk-server:latest "hbbs" hbbs About a minute ago Up About a minute</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="785" height="62" src="https://s-pro4.com/wp-content/uploads/2026/09/RustDesk_server_setup3.jpg" alt="" class="wp-image-1436" srcset="https://s-pro4.com/wp-content/uploads/2026/09/RustDesk_server_setup3.jpg 785w, https://s-pro4.com/wp-content/uploads/2026/09/RustDesk_server_setup3-300x24.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/09/RustDesk_server_setup3-768x61.jpg 768w" sizes="(max-width: 785px) 100vw, 785px" /></figure>



<p class="wp-block-paragraph">起動している</p>



<p class="wp-block-paragraph">(10)ログを確認<br>$ sudo docker compose logs --tail=50<br>特にエラー等はなし。</p>



<p class="wp-block-paragraph">(11)必要ポートの状態を確認<br>$ sudo ss -lntup | grep -E ':(21115|21116|21117|21118|21119)\b'<br>udp UNCONN 0 0 *:21116 <em>:</em> users:(("hbbs",pid=5392,fd=17))<br>tcp LISTEN 0 128 *:21119 <em>:</em> users:(("hbbr",pid=5345,fd=10))<br>tcp LISTEN 0 128 *:21118 <em>:</em> users:(("hbbs",pid=5392,fd=20))<br>tcp LISTEN 0 128 *:21117 <em>:</em> users:(("hbbr",pid=5345,fd=9))<br>tcp LISTEN 0 128 *:21116 <em>:</em> users:(("hbbs",pid=5392,fd=18))<br>tcp LISTEN 0 128 *:21115 <em>:</em> users:(("hbbs",pid=5392,fd=19))</p>



<p class="wp-block-paragraph">TCP　21115-21119はLISTEN、UDP 21116は待ち受けになっていて正常。</p>



<p class="wp-block-paragraph">一方WebARENAではファイアウォールを入れている。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1008" height="225" src="https://s-pro4.com/wp-content/uploads/2026/09/RustDesk_server_setup5.jpg" alt="" class="wp-image-1437" srcset="https://s-pro4.com/wp-content/uploads/2026/09/RustDesk_server_setup5.jpg 1008w, https://s-pro4.com/wp-content/uploads/2026/09/RustDesk_server_setup5-300x67.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/09/RustDesk_server_setup5-768x171.jpg 768w" sizes="(max-width: 1008px) 100vw, 1008px" /></figure>



<p class="wp-block-paragraph">TCP 21115-21117とUDP 21116は通す。TCP 21118-21119は通さない。</p>



<p class="wp-block-paragraph">(12)外部からポートへのアクセスを確認<br>★TCP側確認<br>自分の端末(Mac)のターミナルから<br>$ nc -vz &lt;VPSのIPアドレス> 21115<br>Connection to &lt;VPSのIPアドレス> 21115 port [tcp/] succeeded!<br>$ nc -vz &lt;VPSのIPアドレス> 21116<br>Connection to &lt;VPSのIPアドレス> 21116 port [tcp/] succeeded!<br>$ nc -vz &lt;VPSのIPアドレス> 21117<br>Connection to &lt;VPSのIPアドレス> 21117 port [tcp/*] succeeded!</p>



<p class="wp-block-paragraph">すべて疎通成功。</p>



<p class="wp-block-paragraph">★UDP側確認<br>VPSでポートを監視状態にする<br>sudo tcpdump -ni any udp port 21116</p>



<p class="wp-block-paragraph">ログが流れているが、止めずにそのまま。</p>



<p class="wp-block-paragraph">自分の端末(Mac)からVPSのポートへecho<br>echo test | nc -u -w1 &lt;VPSのIPアドレス&gt; 21116</p>



<p class="wp-block-paragraph">VPSに下記のような行がでればOK。<br>ens10 In IP &lt;端末のIPアドレス>.&lt;端末のポート> > &lt;VPSのIPアドレス>.21116: UDP, length 5</p>



<p class="wp-block-paragraph">ここまででRustDeskサーバの起動と必要ポートのアクセスが確認できた。</p>



<h2 class="wp-block-heading">Step 6　RustDeskクライアントを自前サーバーへ接続</h2>



<p class="wp-block-paragraph">遠隔操作をする側、遠隔操作をされる側の両方（どちらもRustDeskクライアントという）で、自前サーバへ繋ぐ設定をする。<br>RustDeskを起動し、[設定]＞[ネットワーク]＞[認証/中継サーバー]<br>認証サーバ：サーバIPアドレス<br>中継サーバ：サーバIPアドレス<br>APIキー：空欄<br>Key：公開鍵</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="846" height="664" src="https://s-pro4.com/wp-content/uploads/2026/09/RustDesk_server_setup4.jpg" alt="" class="wp-image-1439" srcset="https://s-pro4.com/wp-content/uploads/2026/09/RustDesk_server_setup4.jpg 846w, https://s-pro4.com/wp-content/uploads/2026/09/RustDesk_server_setup4-300x235.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/09/RustDesk_server_setup4-768x603.jpg 768w" sizes="(max-width: 846px) 100vw, 846px" /></figure>



<p class="wp-block-paragraph">サーバでは下記のコマンドでポート21116を監視状態で待機させる。</p>



<p class="wp-block-paragraph">sudo tcpdump -ni any host &lt;サーバIPアドレス> and port 21116</p>



<p class="wp-block-paragraph">すると、下記のような行が出て待機させる。</p>



<p class="wp-block-paragraph">tcpdump: data link type LINUX_SLL2<br>tcpdump: verbose output suppressed, use -v[v]... for full protocol decode<br>listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes</p>



<p class="wp-block-paragraph">ここで、クライアントのRustDeskを再起動すると、ダンプの行が増えていく。<br>----------<br>23:59:45.516564 ens10 In IP &lt;クライアントIPアドレス>.36459 > &lt;サーバIPアドレス>.21116: UDP, length 15 23:59:45.516709 ens10 Out IP &lt;サーバIPアドレス>.21116 > &lt;クライアントIPアドレス>.36459: UDP, length 2 23:59:52.660607 ens10 In IP &lt;クライアントIPアドレス>.23996 > &lt;サーバIPアドレス>.21116: Flags [F.], seq 1, ack 1, win 2057, options [nop,nop,TS val 2888007100 ecr 3963494463], length 0 23:59:52.660828 ens10 Out IP &lt;サーバIPアドレス>.21116 > &lt;クライアントIPアドレス>.23996: Flags [F.], seq 1, ack 2, win 510, options [nop,nop,TS val 3963512531 ecr 2888007100], length 0 23:59:52.685546 ens10 In IP &lt;クライアントIPアドレス>.23996 > &lt;サーバIPアドレス>.21116: Flags [.], ack 2, win 2057, options [nop,nop,TS val 2888007128 ecr 3963512531], length 0 23:59:52.702757 ens10 In IP &lt;クライアントIPアドレス>.23861 > &lt;サーバIPアドレス>.21116: Flags [S], seq 4765219, win 65535, options [mss 1412,nop,wscale 6,nop,nop,TS val 2313083021 ecr 0,sackOK,eol], length 0 23:59:52.702827 ens10 Out IP &lt;サーバIPアドレス>.21116 > &lt;クライアントIPアドレス>.23861: Flags [S.], seq 1059828799, ack 4765220, win 65160, options [mss 1460,sackOK,TS val 3963512573 ecr 2313083021,nop,wscale 7], length 0 23:59:52.730407 ens10 In IP &lt;クライアントIPアドレス>.23861 > &lt;サーバIPアドレス>.21116: Flags [.], ack 1, win 2057, options [nop,nop,TS val 2313083048 ecr 3963512573], length 0<br>----------</p>



<p class="wp-block-paragraph">RustDeskクライアントからhbbs の21116へ通信していることが確認できた。<br>操作する側のクライアントと操作される側のクライアントそれぞれでこの確認を行う。</p>



<p class="wp-block-paragraph">この後は実際にクライアント同士を接続して、遠隔操作できる状態を作る。<br>実際に問題なくつながった。<br>では、「本当に自前サーバを経由しているか」をサーバ上でどう確認するかである。</p>



<p class="wp-block-paragraph">ChatGPTからは、<br>cd ~/RustDesk<br>sudo docker compose logs --tail=50 hbbs hbbr<br>これで、ログに現れるはずだと最初言われた。しかし、何も残らなかったのだ。<br>そこで、P2Pでいけるときは hbbr経由(リレー)しないのではないか？ との推論のもと、<br>compose.ymlに<br>environment:<br>  - ALWAYS_USE_RELAY=Y<br>を「テスト用に」入れた次第だ。</p>



<p class="wp-block-paragraph">ALWAYS_USE_RELAY=Y<br>のときは必ずリレーされ、<br>sudo docker compose logs --tail=50 hbbs hbbr<br>のログに下記のような接続がのこる。</p>



<p class="wp-block-paragraph">----------<br>hbbr | [2026-09-21 05:48:50.573495 +00:00] INFO [src/relay_server.rs:453] New relay request &lt;リクエストID> from [::ffff:&lt;操作する側IPアドレス>]:63750<br>hbbr | [2026-09-21 05:48:50.681926 +00:00] INFO [src/relay_server.rs:437] Relayrequest &lt;リクエストID> from [::ffff:&lt;操作される側IPアドレス>]:14219 got paired<br>hbbr | [2026-09-21 05:48:50.681994 +00:00] INFO [src/relay_server.rs:443] Both are raw<br>----------</p>



<p class="wp-block-paragraph">これで自前サーバを使っていることが確認できた。</p>



<p class="wp-block-paragraph">最終的には、<br>environment:<br>  - ALWAYS_USE_RELAY=Y<br>を削除し、<br>Docker Composeを再起動<br>sudo docker compose up -d</p>



<h2 class="wp-block-heading">Step 7　運用設定・最終確認</h2>



<p class="wp-block-paragraph">サーバ再起動後にも、Dockerが起動されるかどうかの確認。<br>コマンドは下記。</p>



<p class="wp-block-paragraph">sudo systemctl is-enabled docker</p>



<p class="wp-block-paragraph">enabled となれば問題ない。<br>しかし、実際にVPSを再起動してRustDesk再接続まで確認する。<br><br><br></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>VPS利用のためWebARENA Indigoを使用してみる　その2</title>
		<link>https://s-pro4.com/page-1430.html</link>
		
		<dc:creator><![CDATA[stakaha]]></dc:creator>
		<pubDate>Mon, 21 Sep 2026 16:44:07 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://s-pro4.com/?p=1430</guid>

					<description><![CDATA[WebARENAの初期構築について書いた。VPS利用のためWebARENA Indigoを使用してみる その続き。 目的はRustDeskのサーバとして整えること。その途中でVPSサーバが正常に使えることが必須であったた [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">WebARENAの初期構築について書いた。<br><a href="https://s-pro4.com/page-1421.html" data-type="post" data-id="1421">VPS利用のためWebARENA Indigoを使用してみる</a></p>



<p class="wp-block-paragraph">その続き。</p>



<p class="wp-block-paragraph">目的はRustDeskのサーバとして整えること。<br>その途中でVPSサーバが正常に使えることが必須であったため、ちょっと記事をひとつ挟んでおく。</p>



<p class="wp-block-paragraph">WebARENA＋ubuntu用として、ChatGPTに聞くと下記の手順を示された。<br>Step 1　WebARENA側のVPSを確認<br>Step 2　Ubuntuの初期確認・アップデート<br>Step 3　Dockerをインストール<br>Step 4　RustDesk Serverの配置・設定<br>Step 5　RustDesk Serverの起動・動作確認<br>Step 6　RustDeskクライアントを自前サーバーへ接続<br>Step 7　運用設定・最終確認</p>



<p class="wp-block-paragraph">今回はStep 1とStep2について書く。</p>



<h2 class="wp-block-heading">Step 1 WebARENA側のVPSを確認</h2>



<p class="wp-block-paragraph">下記を確認<br>・OS<br>・グローバルIPがわかっていること。<br>・ssh接続ができていること。</p>



<p class="wp-block-paragraph">これらは前回確認できている。</p>



<h2 class="wp-block-heading">Step 2　Ubuntuの初期確認・アップデート</h2>



<p class="wp-block-paragraph">Step 1との重複もあるが、</p>



<p class="wp-block-paragraph">(1)OSとバージョン確認<br>$ lsb_release -a<br>No LSB modules are available.<br>Distributor ID: Ubuntu<br>Description: Ubuntu 24.04 LTS<br>Release: 24.04<br>Codename: noble</p>



<p class="wp-block-paragraph">(2)CPU・メモリ確認<br>$ free -h<br>total used free shared buff/cache available<br>Mem: 961Mi 290Mi 249Mi 976Ki 572Mi 671Mi<br>Swap: 0B 0B 0B</p>



<p class="wp-block-paragraph">(3)ディスク容量確認<br>$ df -h<br>Filesystem Size Used Avail Use% Mounted on<br>tmpfs 97M 964K 96M 1% /run<br>/dev/vda1 19G 1.5G 17G 8% /<br>tmpfs 481M 0 481M 0% /dev/shm<br>tmpfs 5.0M 0 5.0M 0% /run/lock<br>/dev/vda16 881M 61M 758M 8% /boot<br>/dev/vda15 105M 6.1M 99M 6% /boot/efi<br>tmpfs 97M 12K 97M 1% /run/user/1000</p>



<p class="wp-block-paragraph">(4)現在のユーザー確認<br>$ whoami<br>ubuntu</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="572" height="317" src="https://s-pro4.com/wp-content/uploads/2026/09/RustDesk_server_setup.jpg" alt="" class="wp-image-1432" srcset="https://s-pro4.com/wp-content/uploads/2026/09/RustDesk_server_setup.jpg 572w, https://s-pro4.com/wp-content/uploads/2026/09/RustDesk_server_setup-300x166.jpg 300w" sizes="(max-width: 572px) 100vw, 572px" /></figure>



<p class="wp-block-paragraph">(5)時刻とタイムゾーン<br>現在の確認<br>$ date<br>Sat Sep 19 22:00:27 UTC 2026<br>$ timedatectl<br>Local time: Sat 2026-09-19 22:02:45 UTC<br>Universal time: Sat 2026-09-19 22:02:45 UTC<br>RTC time: Sat 2026-09-19 22:02:45<br>Time zone: Etc/UTC (UTC, +0000)<br>System clock synchronized: yes<br>NTP service: active<br>RTC in local TZ: no</p>



<p class="wp-block-paragraph">UTCになっているので、タイムゾーンをTokyoに変更する。<br>$ sudo timedatectl set-timezone Asia/Tokyo</p>



<p class="wp-block-paragraph">変更されたかどうか確認<br>$ date<br>Sun Sep 20 07:05:37 JST 2026<br>$ timedatectl<br>Local time: Sun 2026-09-20 07:05:47 JST<br>Universal time: Sat 2026-09-19 22:05:47 UTC<br>RTC time: Sat 2026-09-19 22:05:47<br>Time zone: Asia/Tokyo (JST, +0900)<br>System clock synchronized: yes<br>NTP service: active<br>RTC in local TZ: no</p>



<p class="wp-block-paragraph">(6)アップデート確認<br>$ sudo apt update<br>Hit:1 <a href="http://security.ubuntu.com/ubuntu">http://security.ubuntu.com/ubuntu</a> noble-security InRelease<br>Hit:2 <a href="http://archive.ubuntu.com/ubuntu">http://archive.ubuntu.com/ubuntu</a> noble InRelease<br>Get:3 <a href="http://archive.ubuntu.com/ubuntu">http://archive.ubuntu.com/ubuntu</a> noble-updates InRelease [126 kB]<br>Hit:4 <a href="http://archive.ubuntu.com/ubuntu">http://archive.ubuntu.com/ubuntu</a> noble-backports InRelease<br>Get:5 <a href="http://archive.ubuntu.com/ubuntu">http://archive.ubuntu.com/ubuntu</a> noble-updates/main amd64 Packages [1275 kB]<br>Fetched 1401 kB in 2s (597 kB/s)<br>Reading package lists... Done<br>Building dependency tree... Done<br>Reading state information... Done<br>343 packages can be upgraded. Run 'apt list --upgradable' to see them.</p>



<p class="wp-block-paragraph">パッケージリストの更新完了。</p>



<p class="wp-block-paragraph">(7)アップグレード実施<br>$ sudo apt upgrade<br>Processing triggers for libc-bin (2.39-0ubuntu8.9) ...<br>Scanning processes... Scanning candidates... Scanning linux images...<br>Pending kernel upgrade!<br>Running kernel version:<br>6.8.0-31-generic<br>Diagnostics:<br>The currently running kernel version is not the expected kernel version 6.8.0-139-generic.</p>



<p class="wp-block-paragraph">Restarting the system to load the new kernel will not be handled automatically, so you should consider rebooting.</p>



<p class="wp-block-paragraph">Restarting services...<br>systemctl restart cron.service</p>



<p class="wp-block-paragraph">Service restarts being deferred:<br>/etc/needrestart/restart.d/dbus.service<br>systemctl restart <a href="mailto:getty@tty1.service">getty@tty1.service</a><br>systemctl restart <a href="mailto:serial-getty@ttyS0.service">serial-getty@ttyS0.service</a><br>systemctl restart systemd-logind.service<br>systemctl restart unattended-upgrades.service</p>



<p class="wp-block-paragraph">No containers need to be restarted.</p>



<p class="wp-block-paragraph">User sessions running outdated binaries:<br>ubuntu @ session #34: apt[2915], sshd[2215,2313]<br>ubuntu @ user manager service: systemd[1873]</p>



<p class="wp-block-paragraph">No VM guests are running outdated hypervisor (qemu) binaries on this host.</p>



<p class="wp-block-paragraph">アップグレードは正常に終了。<br>注意すべきは、<br>「インストールした6.8.0-139-generic.ではなく、古い6.8.0-31-genericが動いている。<br>　新しいカーネルを読み込むには再起動をしなさい。」<br>的なことですね。</p>



<p class="wp-block-paragraph">一応、カーネルバージョンを調べる。<br>$ uname -r<br>6.8.0-31-generic<br>古いまま。</p>



<p class="wp-block-paragraph">再起動をかける。<br>$ sudo shutdown -r now</p>



<p class="wp-block-paragraph">たいして時間がかからず再起動でき、再度ssh接続してカーネルバージョンを再確認。<br>$ uname -r<br>6.8.0-139-generic</p>



<p class="wp-block-paragraph">これでアップグレードが完了。</p>



<p class="wp-block-paragraph">ここまでで、RustDeskサーバとして使用するためのVPSサーバのセットアップが完了。<br>RustDesk関係なくても、OSアップデートは必須だったかな。</p>



<p class="wp-block-paragraph">次はDockerの話などを書く。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>VPS利用のためWebARENA Indigoを使用してみる</title>
		<link>https://s-pro4.com/page-1421.html</link>
		
		<dc:creator><![CDATA[stakaha]]></dc:creator>
		<pubDate>Sat, 19 Sep 2026 16:22:40 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://s-pro4.com/?p=1421</guid>

					<description><![CDATA[お試しぐらいの感じで安価なVPSを探して、WebARENA Indigoを契約してみた。2026年9月現在、メモリ1GBのインスタンスで月額上限449円。従量制としては1時間あたり0.7円。0.7円×24時間×31日 = [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">お試しぐらいの感じで安価なVPSを探して、WebARENA Indigoを契約してみた。<br>2026年9月現在、メモリ1GBのインスタンスで月額上限449円。従量制としては1時間あたり0.7円。<br>0.7円×24時間×31日 = 520.8円<br>最安クラスでしょう。</p>



<p class="wp-block-paragraph">webから申込を行う。<br>途中まで進めて、クレジットカード登録が平日の日中（9:00〜16:00だったかな？）のみとして以降進めなくなる。<br>夜間に登録を進めたらその場で完結できず、後日平日日中にログインしてから決済のみを進めて登録を完了。</p>



<p class="wp-block-paragraph">また、カード登録した直後に10,000円の決済があったかのような速報通知がカード会社からあり焦る。<br>申し込むものを間違えたのかと思った。<br>どうも、オーソリのみと思われ確定通知(決済)は今のところ来ていない。<br>これはFAQに書いて欲しい。</p>



<p class="wp-block-paragraph">以後は、オンラインマニュアルの「スタートアップガイド（Indigo）」に沿って進める。<br><a href="https://help.arena.ne.jp/hc/ja/sections/360009023513-%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%E3%82%AC%E3%82%A4%E3%83%89" target="_blank" rel="noopener">https://help.arena.ne.jp/hc/ja/sections/360009023513-%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%E3%82%AC%E3%82%A4%E3%83%89</a></p>



<p class="wp-block-paragraph">ダッシュボードにログインし、さらにコントロールパネルにログインする。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="415" src="https://s-pro4.com/wp-content/uploads/2026/09/WebARENA-1024x415.jpg" alt="" class="wp-image-1422" srcset="https://s-pro4.com/wp-content/uploads/2026/09/WebARENA-1024x415.jpg 1024w, https://s-pro4.com/wp-content/uploads/2026/09/WebARENA-300x122.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/09/WebARENA-768x311.jpg 768w, https://s-pro4.com/wp-content/uploads/2026/09/WebARENA.jpg 1280w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">まずはSSH鍵の作成。既存の鍵を使うことも可能。<br>新規作成すると、公開鍵がサーバ上に登録され、秘密鍵private_key.txtがローカルにダウンロードされる。</p>



<p class="wp-block-paragraph">次にインスタンスを作成する。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="299" src="https://s-pro4.com/wp-content/uploads/2026/09/WebARENA4-1024x299.jpg" alt="" class="wp-image-1423" srcset="https://s-pro4.com/wp-content/uploads/2026/09/WebARENA4-1024x299.jpg 1024w, https://s-pro4.com/wp-content/uploads/2026/09/WebARENA4-300x88.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/09/WebARENA4-768x224.jpg 768w, https://s-pro4.com/wp-content/uploads/2026/09/WebARENA4.jpg 1355w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">もちろん最初はインスタンスが何もない。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="867" height="1024" src="https://s-pro4.com/wp-content/uploads/2026/09/WebARENA6-867x1024.jpg" alt="" class="wp-image-1424" srcset="https://s-pro4.com/wp-content/uploads/2026/09/WebARENA6-867x1024.jpg 867w, https://s-pro4.com/wp-content/uploads/2026/09/WebARENA6-254x300.jpg 254w, https://s-pro4.com/wp-content/uploads/2026/09/WebARENA6-768x907.jpg 768w, https://s-pro4.com/wp-content/uploads/2026/09/WebARENA6-1300x1536.jpg 1300w, https://s-pro4.com/wp-content/uploads/2026/09/WebARENA6.jpg 1355w" sizes="(max-width: 867px) 100vw, 867px" /></figure>



<p class="wp-block-paragraph">OSはUbuntuを選択。<br>サイズの選択が要注意。まさにここで費用が変わる。今回は最小構成の1vCPU、1GBメモリを選択。<br>あとは、最初に作成（または登録）したSSH鍵を指定、インスタンス名を決める。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="334" src="https://s-pro4.com/wp-content/uploads/2026/09/WebARENA7-1024x334.jpg" alt="" class="wp-image-1425" srcset="https://s-pro4.com/wp-content/uploads/2026/09/WebARENA7-1024x334.jpg 1024w, https://s-pro4.com/wp-content/uploads/2026/09/WebARENA7-300x98.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/09/WebARENA7-768x250.jpg 768w, https://s-pro4.com/wp-content/uploads/2026/09/WebARENA7.jpg 1356w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">次画面でステータスが「OSインストールを実行中です」となる。<br>1分ぐらい後に画面リロードするとステータスが「Stopped」となってインストールが完了した様子。<br>すぐに使えるのは良い。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="335" src="https://s-pro4.com/wp-content/uploads/2026/09/WebARENA8-1024x335.jpg" alt="" class="wp-image-1427" srcset="https://s-pro4.com/wp-content/uploads/2026/09/WebARENA8-1024x335.jpg 1024w, https://s-pro4.com/wp-content/uploads/2026/09/WebARENA8-300x98.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/09/WebARENA8-768x251.jpg 768w, https://s-pro4.com/wp-content/uploads/2026/09/WebARENA8.jpg 1395w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">インスタンスを起動するとステータスが「Running」に変わる。</p>



<p class="wp-block-paragraph">次はsshで接続する。<br>ダウンロードした秘密鍵を適切な場所に置く。<br>自分は~/.sshに置くことにしている。<br>そしてパーミッション600に変える。<br>これを忘れて使おうとすると怒られる。（大抵初回忘れて怒られる）<br>Permissions 0644 for '.ssh/private_key.txt' are too open.<br>It is required that your private key files are NOT accessible by others.<br>This private key will be ignored.<br>Load key ".ssh/private_key.txt": bad permissions</p>



<p class="wp-block-paragraph">ポート番号は22なので省略。<br>インスタンスをUbuntuで作成したので、ユーザ名がubuntuになるとのこと。ユーザ名はOS毎に変わることがマニュアルに書いてある。<br>ssh ubuntu@IPアドレス -i ~/.ssh/private_key.txt<br>問題なくssh接続ができた。</p>



<p class="wp-block-paragraph">次に、ファイアウォール設定を行う。<br>ファイアウォールを有効化すると、pingが通らなることと、ssh接続もできなくなる旨注意事項に記載がある。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="944" src="https://s-pro4.com/wp-content/uploads/2026/09/WebARENA9-1024x944.jpg" alt="" class="wp-image-1428" srcset="https://s-pro4.com/wp-content/uploads/2026/09/WebARENA9-1024x944.jpg 1024w, https://s-pro4.com/wp-content/uploads/2026/09/WebARENA9-300x277.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/09/WebARENA9-768x708.jpg 768w, https://s-pro4.com/wp-content/uploads/2026/09/WebARENA9.jpg 1261w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">インバウンドルールのところに、下記の文言がある。<br>「インバウンドルールを設定することで、指定したポートへのアクセスは指定したIPアドレスからのみアクセスが可能になります。それ以外のアクセスは拒否されます。」<br>sshを通したいのであれば、ポート22を許可する必要がある。<br>タイプ：カスタム<br>プロトコル：TCP<br>ポート：22<br>IPアドレス：アクセスを許容するIPアドレス</p>



<p class="wp-block-paragraph">ファイアウォールの利用は任意であるが、利用しないとあらかたのポートが空いている状態なのだと思う。</p>



<p class="wp-block-paragraph">初期設定として最低限はここまで。<br>次は目的としていた、RustDeskのサーバ構築を試したい。<br></p>



<p class="wp-block-paragraph"><br></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Windowsの起動途中で電源が落ちるのは、電源ユニットの問題だった</title>
		<link>https://s-pro4.com/page-1404.html</link>
		
		<dc:creator><![CDATA[stakaha]]></dc:creator>
		<pubDate>Mon, 24 Aug 2026 05:58:38 +0000</pubDate>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[ハードウェア]]></category>
		<guid isPermaLink="false">https://s-pro4.com/?p=1404</guid>

					<description><![CDATA[Windows 11の起動時にDELLロゴが見えてローディングのくるくるマークが出ている最中、「お待ちください」が表示された後画面が暗くなる。 モニタには信号なし(No Signal)が出る。サインイン画面やデスクトップ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Windows 11の起動時にDELLロゴが見えてローディングのくるくるマークが出ている最中、「お待ちください」が表示された後画面が暗くなる。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="618" src="https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1377-1024x618.jpg" alt="" class="wp-image-1405" srcset="https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1377-1024x618.jpg 1024w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1377-300x181.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1377-768x463.jpg 768w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1377-1536x927.jpg 1536w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1377.jpg 1952w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph"><br>モニタには信号なし(No Signal)が出る。<br>サインイン画面やデスクトップが表示される前だ。<br>スリープしているのか、電源が落ちているのかイマイチわからない。<br>電源ランプは消えて、CPUファンも回っていないので、どちらかといえば落ちているように見える。<br>この状態で、電源ボタンをもう一度おしても電源が入らない。<br>逆に電源が完全には落ちきっていないのでは？と思い電源ボタンを30秒程度長押しするものの、何も反応はない。<br>反応がないのでACケーブルを抜いてもう一度挿す。<br>そうすれば電源ボタンが反応するが、症状は同じ。</p>



<p class="wp-block-paragraph">最終的には、電源ユニットの交換で症状が改善した。<br>たどり着くまでには様々試した。</p>



<p class="wp-block-paragraph">最初の症状を見て、ハードウェア不具合寄りかな？ ソフトウェア側の問題の可能性は低いのではと考えた。</p>



<p class="wp-block-paragraph">はじめに試したこと</p>



<ul class="wp-block-list">
<li>静電気除去</li>



<li>メモリの抜き差し</li>



<li>BIOS電池の交換</li>
</ul>



<p class="wp-block-paragraph">これらでは改善せず</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">ソフトウェア的なこと</p>



<ul class="wp-block-list">
<li>DELLのDiagnostics → 問題は検出されず</li>



<li>回復ドライブ(WinRE)からスタートアップ修復 → 修復できません</li>



<li>回復ドライブからコマンドプロンプトで sfc /scannow</li>



<li>システムの復元 → 復元ポイントがなく実施できず</li>
</ul>



<p class="wp-block-paragraph">ここまでで症状が改善せず。</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">ここから、問題切り分けフェーズへ。</p>



<ul class="wp-block-list">
<li>回復ドライブで起動し40分以上放置 → 症状出ず<br>ということは、ハードウェアの問題ではないかも？</li>



<li>Windowsをセーフモードで起動する → 正常に起動ができてデスクトップが表示される。<br>また、起動途中で「更新が進行中です。コンピュータの電源を入れたままにしてください。」の表示。<br>Windows Updateの途中で電源が落ちたか、失敗して中途半端になっているか？<br>ということで、ソフトウェアの問題かも？</li>



<li>セーフモードのイベントビューアーで Windowsログ＞システムにて、起動ができていなかった時間帯は不穏なログはなかったが、直前には「Trend Micro Security Agent サービスは予期せぬ原因により終了しました。このサービスの強制終了は40回目です。」これが直接の原因かどうかはわからないが、セーフモードでは起動できたということは、疑わしい。</li>



<li>セーフモードで再度 sfc /scannow → 「Windows リソース保護により、破損したファイルが見つかりましたが、それらは正常に修復されました」<br>何かしら破損があったと考えられる。</li>



<li>ファイルシステムが修復されたことを期待して、再度通常起動を試す。 → 同じ症状が発生。<br>sfc /scannow の効果が直接は見られなかった。</li>



<li>セーフモード起動へ戻して、次回のクリーンブートを設定する。つまり、msconifgの「サービス」で「Microsoft のサービスをすべて隠す」にチェックをしたうえで、すべてのサービスをを無効にする。<br>セーフモードでは起動ができて、通常起動では起動できないわけなので、かなり期待をしてクリーンブートでもう一度通常起動を試す。 → 同じ症状が発生。</li>
</ul>



<p class="wp-block-paragraph">セーフモードでは起動できるわけだから、何らかのサービスやドライバロードが原因と推理をしたのに、この辺でたいぶ途方にくれる。<br>手動で無効にしたサービス以外にもセーフモードと通常起動に差があるのか？</p>



<p class="wp-block-paragraph">この後、また状況が少し変わる。</p>



<ul class="wp-block-list">
<li>これまで15回から20回くらい回復ドライブ起動に成功していたが、初めて失敗する。<br>Dell SupportAssistが起動してしまい、「Error: OS_BOOT_FAILURE」の表示。<br>「START REPAIR」へ進むも、失敗。<br>次に複数の復元ポイントが示されて、選択をして進めるも失敗<br></li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1375-1024x768.jpg" alt="" class="wp-image-1406" srcset="https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1375-1024x768.jpg 1024w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1375-300x225.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1375-768x576.jpg 768w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1375-1536x1152.jpg 1536w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1375.jpg 2000w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1376-1024x768.jpg" alt="" class="wp-image-1407" srcset="https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1376-1024x768.jpg 1024w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1376-300x225.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1376-768x576.jpg 768w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1376-1536x1152.jpg 1536w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1376.jpg 2000w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1381-1024x768.jpg" alt="" class="wp-image-1408" srcset="https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1381-1024x768.jpg 1024w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1381-300x225.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1381-768x576.jpg 768w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1381-1536x1152.jpg 1536w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1381.jpg 2000w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">「RESET OPTIONS」は初期化させられるかもしれないのでやめておいた。</p>



<ul class="wp-block-list">
<li>次は、ブートログをとることにした。</li>
</ul>



<p class="wp-block-paragraph">bcdedit /set {default} bootlog Yes<br></p>



<p class="wp-block-paragraph">BOOTLOG_LOADED \SystemRoot\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_4505016f6d2dbeec\igdkmd64.sys<br>BOOTLOG_LOADED \SystemRoot\System32\Drivers\fastfat.SYS<br>BOOTLOG_LOADED \SystemRoot\system32\drivers\ucx01000.sys<br>BOOTLOG_LOADED \SystemRoot\System32\drivers\USBXHCI.SYS<br>BOOTLOG_LOADED \SystemRoot\System32\DriverStore\FileRepository\heci.inf_amd64_e0e9fcf6c047b9a7\x64\TeeDriverW10x64.sys<br>BOOTLOG_LOADED \SystemRoot\System32\Drivers\ExecutionContext.sys<br>BOOTLOG_LOADED \SystemRoot\system32\drivers\netadaptercx.sys<br>BOOTLOG_LOADED \SystemRoot\System32\DriverStore\FileRepository\rt68cx21x64.inf_amd64_3c5d2ae8aa766e19\rt68cx21x64.sys<br>BOOTLOG_LOADED \SystemRoot\System32\drivers\RtsPer.sys<br>BOOTLOG_LOADED \SystemRoot\system32\DRIVERS\wdiwifi.sys<br>BOOTLOG_LOADED \SystemRoot\System32\drivers\Netwtw04.sys<br>BOOTLOG_LOADED \SystemRoot\System32\DriverStore\FileRepository\netvwifibus.inf_amd64_ab4e111fe8221178\vwifibus.sys<br>BOOTLOG_LOADED \SystemRoot\System32\drivers\HDAudBus.sys<br>BOOTLOG_LOADED \SystemRoot\System32\Drivers\msgpioclx.sys<br>BOOTLOG_LOADED \SystemRoot\System32\drivers\iaLPSS2i_GPIO2.sys<br>BOOTLOG_LOADED \SystemRoot\System32\drivers\intelppm.sys<br>BOOTLOG_LOADED \SystemRoot\System32\DriverStore\FileRepository\acpipagr.inf_amd64_d1093347a27ff89c\acpipagr.sys<br>BOOTLOG_LOADED \SystemRoot\System32\drivers\wmiacpi.sys<br>BOOTLOG_LOADED \SystemRoot\System32\DriverStore\FileRepository\uefi.inf_amd64_8681c4be783af156\UEFI.sys<br>BOOTLOG_LOADED \SystemRoot\System32\drivers\DellInstrumentation.sys<br>BOOTLOG_LOADED \SystemRoot\System32\drivers\NdisVirtualBus.sys<br>BOOTLOG_LOADED \SystemRoot\System32\DriverStore\FileRepository\swenum.inf_amd64_8b9dd76f362e3ec6\swenum.sys<br>BOOTLOG_LOADED \SystemRoot\System32\drivers\rdpbus.sys<br>BOOTLOG_LOADED \SystemRoot\System32\drivers\UsbHub3.sys<br>BOOTLOG_LOADED \SystemRoot\system32\drivers\RTKVHD64.sys<br>BOOTLOG_LOADED \SystemRoot\system32\drivers\ksthunk.sys<br>BOOTLOG_LOADED \SystemRoot\System32\DriverStore\FileRepository\intcdaud.inf_amd64_14fc346f005b7296\IntcDAud.sys<br>BOOTLOG_LOADED \SystemRoot\System32\DriverStore\FileRepository\ibtusb.inf_amd64_930110eceb58f65b\ibtusb.sys<br>BOOTLOG_LOADED \SystemRoot\System32\drivers\BTHport.sys<br>BOOTLOG_LOADED \SystemRoot\System32\drivers\BTHUSB.sys<br>BOOTLOG_LOADED \SystemRoot\System32\drivers\USBSTOR.SYS<br>BOOTLOG_LOADED \SystemRoot\System32\drivers\hidusb.sys<br>BOOTLOG_LOADED \SystemRoot\System32\drivers\kbdhid.sys<br>BOOTLOG_LOADED \SystemRoot\System32\drivers\kbdclass.sys<br>BOOTLOG_LOADED \SystemRoot\System32\drivers\mouhid.sys<br>BOOTLOG_LOADED \SystemRoot\System32\drivers\mouclass.sys<br>BOOTLOG_NOT_LOADED \SystemRoot\System32\drivers\dxgkrnl.sys<br>BOOTLOG_LOADED \SystemRoot\System32\drivers\rfcomm.sys<br>BOOTLOG_LOADED \SystemRoot\System32\drivers\BthEnum.sys<br>BOOTLOG_LOADED \SystemRoot\System32\drivers\bthpan.sys<br>BOOTLOG_LOADED \SystemRoot\System32\drivers\Microsoft.Bluetooth.Legacy.LEEnumerator.sys<br>BOOTLOG_LOADED \SystemRoot\System32\drivers\HfAudio.sys<br>BOOTLOG_LOADED \SystemRoot\System32\drivers\ScrHIDDriver2.sys<br>BOOTLOG_LOADED \SystemRoot\System32\drivers\monitor.sys<br>BOOTLOG_LOADED \SystemRoot\System32\cdd.dll<br>BOOTLOG_NOT_LOADED \SystemRoot\System32\drivers\dxgkrnl.sys</p>



<p class="wp-block-paragraph">終わりの方を抜粋してChatGPTへ相談すると、通常起動のかなり後ろの方まで進んでいるとのこと。</p>



<p class="wp-block-paragraph">画面が暗くなったことから、グラフィックドライバの問題か？ の疑いに対しては、<br>Intel UHD Graphicsドライバ (igdkmd64.sys) が正常にロードされている。<br>ロードされているものの、その後の初期化に失敗しているのか？<br>に対しては、デバイスマネージャーでIntel UHD Graphicsを無効化して通常起動を試す。→ 変わらず問題発生。<br>グラフィックドライバの不具合は排除できそうだ。</p>



<p class="wp-block-paragraph"></p>



<ul class="wp-block-list">
<li>CBS.logを確認する → 決定的なログはなし<br>findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log > "%USERPROFILE%\Desktop\SFC_Detail.txt"</li>
</ul>



<p class="wp-block-paragraph">もう一度まとめる。</p>



<p class="wp-block-paragraph">・BIOS Diagnostics：問題なし<br>・WinRE（回復環境）：40分以上安定<br>・WinRE（回復環境）：起動せずにSupportAssistが起動することがあった、別の機会では同じくロードの手前で落ちることがあった<br>・セーフモード：起動できる<br>・クリーンブート：改善なし<br>・sfc /scannow：修復済み<br>・ブートログ：カーネル・主要ドライバは読み込み済み<br>・Intel UHD Graphics無効：改善なし<br>・CBS.log：決定的な異常なし<br>・chkdsk：改善なし</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">ソフトウェア要因については、もうできることが少なくなってきた。</p>



<p class="wp-block-paragraph">たまたま互換の電源ユニットがあったため、交換をしてみたら通常起動できた。</p>



<p class="wp-block-paragraph">今回の対象機種<br>Vostro 3681、電源 MODEL NO：H200EBS-00</p>



<p class="wp-block-paragraph">交換電源<br>Vostro 3470、電源 MODEL NO：L200EBS-00</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">通常起動では問題が発生し、セーフモードや回復ドライブ起動では問題発生確率が低い点については、</p>



<p class="wp-block-paragraph">電源ユニットの電源低下、容量低下等の問題で、途中で落ちていたのではないかという仮説。<br>通常起動ではセーフモードに比べて各種ロードが一斉に発生し、耐えられなかったのではないか。</p>



<p class="wp-block-paragraph">電源が落ちた後で入れ直す時、電源ボタンを普通に押しても反応がなく、30秒程度長押しをしても何も起こらずACケーブルを拭き挿ししないと反応しなかった点については、異常状態が発生したため保護回路が動いたのではないかという仮説。</p>



<p class="wp-block-paragraph">過電流、過電圧、低電圧、過熱などの異常で、電源ユニットが出力を止めることがあるらしい。<br>ACケーブルを抜かなければ回復しなかったのは理解できた。</p>



<p class="wp-block-paragraph">「ACを抜かないと電源ボタンが反応しない」が大きなカギだったわけだ。保護回路の動きを知っていれば、早い段階で電源ユニットを疑うことができたかなと。まぁこれも経験か。<br></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Windows 11をセーフモードで起動する</title>
		<link>https://s-pro4.com/page-1395.html</link>
		
		<dc:creator><![CDATA[stakaha]]></dc:creator>
		<pubDate>Sat, 22 Aug 2026 05:14:01 +0000</pubDate>
				<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">https://s-pro4.com/?p=1395</guid>

					<description><![CDATA[パソコンにトラブルがあるとき、セーフモードで解決するかどうかを試すときがある。セーフモードでは、システムを最低限の構成で起動、アプリや一部のドライバを読み込まないため、原因の切り分けにつかう。 (1)起動方法1　設定から [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">パソコンにトラブルがあるとき、セーフモードで解決するかどうかを試すときがある。<br>セーフモードでは、システムを最低限の構成で起動、アプリや一部のドライバを読み込まないため、原因の切り分けにつかう。</p>



<p class="wp-block-paragraph">(1)起動方法1　設定から</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="474" src="https://s-pro4.com/wp-content/uploads/2026/08/safemode-1024x474.jpg" alt="" class="wp-image-1396" srcset="https://s-pro4.com/wp-content/uploads/2026/08/safemode-1024x474.jpg 1024w, https://s-pro4.com/wp-content/uploads/2026/08/safemode-300x139.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/08/safemode-768x355.jpg 768w, https://s-pro4.com/wp-content/uploads/2026/08/safemode.jpg 1401w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">設定＞システム＞回復で<br>「PCの起動をカスタマイズ」の今すぐ再起動をクリックする。</p>



<p class="wp-block-paragraph">青い画面の回復メニューから</p>



<p class="wp-block-paragraph">トラブルシューティング＞詳細オプション＞スタートアップ設定＞再起動＞数字の4<br>とたどる。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1392-1024x768.jpg" alt="" class="wp-image-1397" srcset="https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1392-1024x768.jpg 1024w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1392-300x225.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1392-768x576.jpg 768w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1392-1536x1152.jpg 1536w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1392.jpg 2000w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">トラブルシューティング</p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1393-1024x768.jpg" alt="" class="wp-image-1398" srcset="https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1393-1024x768.jpg 1024w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1393-300x225.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1393-768x576.jpg 768w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1393-1536x1152.jpg 1536w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1393.jpg 2000w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">詳細オプション</p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1394-1024x768.jpg" alt="" class="wp-image-1399" srcset="https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1394-1024x768.jpg 1024w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1394-300x225.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1394-768x576.jpg 768w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1394-1536x1152.jpg 1536w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1394.jpg 2000w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">スタートアップ設定</p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1395-1024x768.jpg" alt="" class="wp-image-1400" srcset="https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1395-1024x768.jpg 1024w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1395-300x225.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1395-768x576.jpg 768w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1395-1536x1152.jpg 1536w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1395.jpg 2000w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">再起動</p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1396-1024x768.jpg" alt="" class="wp-image-1401" srcset="https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1396-1024x768.jpg 1024w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1396-300x225.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1396-768x576.jpg 768w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1396-1536x1152.jpg 1536w, https://s-pro4.com/wp-content/uploads/2026/08/th_IMG_1396.jpg 2000w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">数字の4を押す。</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">(2)起動方法2　Shift+再起動</p>



<p class="wp-block-paragraph">Windows のスタートメニューから再起動を行う時、キーボードのShift(シフト)キーを押しながら再起動をクリックする。<br>そうすると、(1)と同じく回復メニューが起動する。</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">さて、上記2つの起動方法はWindowsが起動できているときにできること。つまりOSは起動できているが何か不調があるときに、セーフモードでも発生するかどうかを見極める場合。<br>問題はWindowsが通常起動できないときにセーフモードを起動したい場合。これは、セーフモードならば起動するのではないかと見極める場合。</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">(3)起動方法3　USB回復ドライブから起動モードを変更する</p>



<p class="wp-block-paragraph">事前に回復ドライブを作成しておく。まぁ経験上、別の端末で作成した回復ドライブでも動かなかったことはない。</p>



<p class="wp-block-paragraph">USBでWinREを起動する。ここで(1)、(2)の手順と同じく「スタートアップ設定」があればもちろんそれを選んで進めば良い。<br>「スタートアップ設定」がない場合には、詳細オプションの後にコマンドプロンプトと起動する。</p>



<p class="wp-block-paragraph">まずは、Windowsがどのドライブに入っているかを調べる。Windowsが通常起動できてるときはc:ドライブであることがほとんどだが、USBブートした時には復旧対象ドライブがc:以外になっていることがある。<br>diskpartを起動して<br>list volume<br>で調べても良いし、dir c:、dir d:、dir e:・・と見ていってそれらしいドライブにあたりを付けても良い。</p>



<p class="wp-block-paragraph">対象がc:ドライブであるとき、<br>cd c:<br>c:<br>bcdedit /set {default} safeboot minimal<br>exit　※任意</p>



<p class="wp-block-paragraph">を実行する</p>



<p class="wp-block-paragraph">通常はドライブ変更はプロンプトで c: のみで良さそうなところ、cd c: を入れないとうまく行かなかった（ことがあった）</p>



<p class="wp-block-paragraph">bcdeditを使って、次回以降必ずセーフモードで起動となる。<br>諸々おわったら、通常起動へ戻す必要がある。</p>



<p class="wp-block-paragraph">以下セーフモード関連のコマンド。</p>



<p class="wp-block-paragraph">★セーフモードを有効にする<br>bcdedit /set {default} safeboot minimal</p>



<p class="wp-block-paragraph">★セーフモード起動を通常起動へ戻す<br>bcdedit /deletevalue {default} safeboot</p>



<p class="wp-block-paragraph">★セーフモードとネットワークを有効にする。スタートアップ設定では「5」に相当。<br>bcdedit /set {default} safeboot network</p>



<p class="wp-block-paragraph">★セーフモードとコマンドプロンプトを有効にする。スタートアップ設定では「6」に相当。<br>bcdedit /set {default} safeboot minimal<br>bcdedit /set {default} safebootalternateshell yes</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">ついでに起動のログをとる場合のコマンド<br>bcdedit /set {default} bootlog Yes</p>



<p class="wp-block-paragraph">ログは<br>C:\Windows\ntbtlog.txt</p>



<p class="wp-block-paragraph">内容は下記のような。ロードされたドライバー、ロードされなかったドライバーなどが記録されている。</p>



<p class="wp-block-paragraph">BOOTLOG_LOADED \SystemRoot\System32\drivers\ScrHIDDriver2.sys BOOTLOG_LOADED \SystemRoot\System32\drivers\monitor.sys BOOTLOG_LOADED \SystemRoot\System32\cdd.dll BOOTLOG_NOT_LOADED \SystemRoot\System32\drivers\dxgkrnl.sys</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Outlookから送信されるwinmail.datが開けない問題をいま一度考察する</title>
		<link>https://s-pro4.com/page-1387.html</link>
		
		<dc:creator><![CDATA[stakaha]]></dc:creator>
		<pubDate>Thu, 30 Jul 2026 14:44:00 +0000</pubDate>
				<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">https://s-pro4.com/?p=1387</guid>

					<description><![CDATA[自分がこの問題を知ったのはおそらく20年くらい前、2006年頃ではないか。Mac のMailアプリで受け取ったメールに中身がわからない winmail.dat というデータが付属している。添付ファイルが何か特殊な形式で送 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">自分がこの問題を知ったのはおそらく20年くらい前、2006年頃ではないか。<br>Mac のMailアプリで受け取ったメールに中身がわからない winmail.dat というデータが付属している。添付ファイルが何か特殊な形式で送られたのか「申し訳ないですが・・・」と送信者に送り直してもらうよう依頼していたかな。<br>当時は Macの方が悪いと思っていた。ユーザ数が少ないから、Mac側が対応できていないのではないか。メールの話でいうとwinmail.datの他にも本文に文字化けが起きたり、ワード、エクセルでもWindowsとMac間の互換性には問題があった。</p>



<p class="wp-block-paragraph">winmail.datの件は受け取る側の問題であると、当時は思っていた。</p>



<p class="wp-block-paragraph">もう少し時間が経ち、2010年から11年頃、WindowsのWindwos Live Mailでも同じ問題が起きていると知る。<br>添付ファイルを送ったと本文に書いてあるが、何も付いていない、winmail.datがあるだけそして開けないということがよく起きていた。</p>



<p class="wp-block-paragraph">OutlookもWindows Live Mailも同じ会社が作っているはずなのに、こんなことがあるのだろうか。</p>



<p class="wp-block-paragraph">まぁ、文字化けについては本文がshift-jisのままcharsetをjisで送るとか、機種依存文字の問題とかやっぱり送る側に原因があった可能性が高いが。<br>そんなことを考えていたが、winmail.dat問題は2026年まだ起きている。</p>



<p class="wp-block-paragraph">ChatGPTに聞くと30年以上前1990年代から30年以上も続いている問題とのこと。</p>



<p class="wp-block-paragraph">本質としては、Outlookがインターネット標準ではない独自形式（TNEF）を使い続けていることにある。Outlook同士であれば問題が起きない。というか問題があることに送る側も受ける側も気が付かない。</p>



<p class="wp-block-paragraph">winmail.datは単なる添付ファイルではなく、Microsoft独自形式のコンテナ、TNEF (Transport Neutral Encapsulation Format)だというのだ。</p>



<p class="wp-block-paragraph">中身は、<br>本文の書式、フォント情報、添付ファイル、会議出席依頼、Outlook独自のプロパティ、投票ボタン、重要度、Outlook専用フラグ</p>



<p class="wp-block-paragraph">こんなものが人まとまりになったデータとのことだ。</p>



<p class="wp-block-paragraph">送る側がOutlookのオプションでメッセージを「リッチテキスト」ではなく「HTML形式」にすると直る、という対応指南をよく見かける。</p>



<figure class="wp-block-image size-full is-style-vk-image-border"><img loading="lazy" decoding="async" width="929" height="672" src="https://s-pro4.com/wp-content/uploads/2026/07/winmail4.png" alt="" class="wp-image-1388" srcset="https://s-pro4.com/wp-content/uploads/2026/07/winmail4.png 929w, https://s-pro4.com/wp-content/uploads/2026/07/winmail4-300x217.png 300w, https://s-pro4.com/wp-content/uploads/2026/07/winmail4-768x556.png 768w" sizes="(max-width: 929px) 100vw, 929px" /></figure>



<p class="wp-block-paragraph">しかし、現実には、これだけでは直らない。</p>



<p class="wp-block-paragraph">メッセージ形式を「HTML形式」にしていても、Microsoft Exchange、連絡先（アドレス帳）の形式、組織ポリシーといった別の要因により、Outlookが勝手にまたは独自のルールで判定して TNEF で送ってしまうことがあるようだ。<br>つまり、送る側にとってもよほど詳しい人でないと、対応はできない。</p>



<p class="wp-block-paragraph">最初の頃は、受け取る側の私が悪いと思っていた。<br>前述の通り、当時の対処は「再送をお願いする」だった。どちらかというと謝る感じ。</p>



<p class="wp-block-paragraph">次の時期には、Outlookの設定が悪いと考え、やはり再送を依頼していた。この頃はどちらかというと相手のせいだと思って、設定と送付方法をちゃんとして送り直してくださいという意味合いに変わった。</p>



<p class="wp-block-paragraph">その次は、MacのTNEF's Enoughでwinmail.datを開くようになった。再送依頼は面倒だし、この頃はもうあきらめている。</p>



<p class="wp-block-paragraph">さらに進み、それすら面倒になるため、Windowsの端末にOutlookで同じメールを受信することにした。あきらめというよりはもはや迎合。</p>



<p class="wp-block-paragraph">自分自身については、この迎合で良いと思っている。</p>



<p class="wp-block-paragraph">ただ、Outlook（Classic）を持っていない、あるいは会社の方針や何かの思いを持ってThunderbirdを使っている方に、押し付けることはできない。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="862" height="832" src="https://s-pro4.com/wp-content/uploads/2026/07/winmail1.png" alt="" class="wp-image-1389" srcset="https://s-pro4.com/wp-content/uploads/2026/07/winmail1.png 862w, https://s-pro4.com/wp-content/uploads/2026/07/winmail1-300x290.png 300w, https://s-pro4.com/wp-content/uploads/2026/07/winmail1-768x741.png 768w" sizes="(max-width: 862px) 100vw, 862px" /></figure>



<p class="wp-block-paragraph">やはりいまだに 「winmail.datというファイルが送られてきて開けない」という問い合わせは一定数ある。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="434" height="311" src="https://s-pro4.com/wp-content/uploads/2026/07/winmail2.png" alt="" class="wp-image-1390" srcset="https://s-pro4.com/wp-content/uploads/2026/07/winmail2.png 434w, https://s-pro4.com/wp-content/uploads/2026/07/winmail2-300x215.png 300w" sizes="(max-width: 434px) 100vw, 434px" /></figure>



<p class="wp-block-paragraph">そういうときは、Winmail Openerを紹介したりインストールしたりする。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="95" height="77" src="https://s-pro4.com/wp-content/uploads/2026/07/winmail5.jpg" alt="" class="wp-image-1392"/></figure>



<p class="wp-block-paragraph">2026年の今、ネットで検索すると、Winmail Opener以外にはThunderbirdのアドオン Lookout (fix version)が使えるという記事を見かける。</p>



<figure class="wp-block-image size-large is-style-vk-image-border"><img loading="lazy" decoding="async" width="883" height="1024" src="https://s-pro4.com/wp-content/uploads/2026/07/winmail3-883x1024.png" alt="" class="wp-image-1391" srcset="https://s-pro4.com/wp-content/uploads/2026/07/winmail3-883x1024.png 883w, https://s-pro4.com/wp-content/uploads/2026/07/winmail3-259x300.png 259w, https://s-pro4.com/wp-content/uploads/2026/07/winmail3-768x891.png 768w, https://s-pro4.com/wp-content/uploads/2026/07/winmail3.png 1008w" sizes="(max-width: 883px) 100vw, 883px" /></figure>



<p class="wp-block-paragraph">実際には、互換性の問題でインストールできなかった。<br>そのうち対応されるだろうか。わからなかった。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Macで複数ファイルを同時に開くスクリプトを書く</title>
		<link>https://s-pro4.com/page-1378.html</link>
		
		<dc:creator><![CDATA[stakaha]]></dc:creator>
		<pubDate>Sun, 19 Jul 2026 22:08:05 +0000</pubDate>
				<category><![CDATA[Mac]]></category>
		<guid isPermaLink="false">https://s-pro4.com/?p=1378</guid>

					<description><![CDATA[Macで複数フォルダに保存された5〜6個くらいのエクセルファイルを同時に開くことを月に数度やっている。Finderからフォルダを開いてファイルをクリックで開くのを繰り返して実現しているのだが、1分以内には終わるけど少々面 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Macで複数フォルダに保存された5〜6個くらいのエクセルファイルを同時に開くことを月に数度やっている。<br>Finderからフォルダを開いてファイルをクリックで開くのを繰り返して実現しているのだが、1分以内には終わるけど少々面倒さがある。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="786" height="432" src="https://s-pro4.com/wp-content/uploads/2026/07/script.jpg" alt="" class="wp-image-1379" srcset="https://s-pro4.com/wp-content/uploads/2026/07/script.jpg 786w, https://s-pro4.com/wp-content/uploads/2026/07/script-300x165.jpg 300w, https://s-pro4.com/wp-content/uploads/2026/07/script-768x422.jpg 768w" sizes="(max-width: 786px) 100vw, 786px" /></figure>



<p class="wp-block-paragraph"><br>フォルダとファイルの命名規則は決めており、スクリプト化することにした。<br>うっすらと、Automator、AppleScriptかなと考えていたけど、シェルスクリプトでできそう。</p>



<p class="wp-block-paragraph">ルールは<br>YYYY(西暦4桁)＞フォルダ名＞YYYYMM_ファイル名.xlsx<br>という感じで、年次でフォルダ月次でファイルが増えていく。</p>



<p class="wp-block-paragraph">単純化すると下記のような感じ<br>2026＞A＞202601_A_報告書.xlsx<br>             ＞202602_A_報告書.xlsx<br>             ＞202603_A_報告書.xlsx<br>             ….<br>             ＞202607_A_報告書.xlsx<br>             ＞202608_A_報告書.xlsx<br>             ….<br>2026＞B＞202601_B_報告書.xlsx<br>             ＞202602_B_報告書.xlsx<br>             ＞202603_B_報告書.xlsx<br>             ….<br>             ＞202607_B_報告書.xlsx<br>             ＞202608_B_報告書.xlsx<br>             ….<br>2026＞C＞202601_C_報告書.xlsx<br>             ＞202602_C_報告書.xlsx<br>             ＞202603_C_報告書.xlsx<br>             ….<br>             ＞202607_C_報告書.xlsx<br>             ＞202608_C_報告書.xlsx<br>             ….</p>



<p class="wp-block-paragraph">A、B、Cは案件名だったり顧客名だったりして、5〜6個ある。<br>それぞれのフォルダ下の同じ年月のファイルを同時に開きたい。</p>



<p class="wp-block-paragraph">以下はコード</p>



<pre class="wp-block-code"><code>#!/bin/bash

# 第一引数：年を指定　例）2026
# 　指定がない場合は実行時の年
# 第二引数：月を指定　例）07または7
# 　指定がない場合は実行時の月

if &#091;&#091; -z "$1" ]]; then
  # 引数指定なし
  yyyy=$(date +%Y)
elif &#091;&#091; "$1" =~ ^&#091;0-9]{4}$ ]]; then
  # 引数で指定
  yyyy="$1"
else
  echo "エラー: 第1引数は4桁の西暦を指定してください。"
  exit 1
fi

if &#091;&#091; -z "$2" ]]; then
  mm=$(date +%m)
elif &#091;&#091; "$2" =~ ^(0?&#091;1-9]|1&#091;0-2])$ ]]; then
  mm=$(printf "%02d" "$2")
else
  echo "エラー: 第2引数は1～12の月を指定してください。"
  exit 1
fi

echo ${yyyy}
echo ${mm}

yyyymm=${yyyy}${mm}

open &lt;path>/${yyyy}/A/${yyyymm}_A_報告書.xlsx
open &lt;path>/${yyyy}/B/${yyyymm}_B_報告書.xlsx
open &lt;path>/${yyyy}/C/${yyyymm}_C_報告書.xlsx</code></pre>



<p class="wp-block-paragraph">引数で年と月を受け取ることにした。<br>ただし引数指定がなければ実行時の年月を使うことにした。</p>



<p class="wp-block-paragraph">引数の月は7でも07でも、つまり一桁で強いていしても二桁で指定してもOKにした。それ以外の桁数や数字以外の指定は正規表現で判定してエラーにした。</p>



<p class="wp-block-paragraph">こんなに単純なプログラムでも、業務効率化できるのは嬉しい。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
