<?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>PowerShell | リョクちゃの電脳日記</title>
	<atom:link href="https://dreamparadaisu.com/tag/powershell/feed/" rel="self" type="application/rss+xml" />
	<link>https://dreamparadaisu.com</link>
	<description>今まで学んできたことや、新たに学んだこと、趣味を通して様々な人と共有できたらなと思いはじめた電脳日記。</description>
	<lastBuildDate>Thu, 20 Nov 2025 21:04:21 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<atom:link rel='hub' href='https://dreamparadaisu.com/?pushpress=hub'/>
<site xmlns="com-wordpress:feed-additions:1">180489529</site>	<item>
		<title>【保存版】PowerShell 入門シリーズ完全まとめ｜基本〜実務コマンド・自動化まで総合ガイド</title>
		<link>https://dreamparadaisu.com/saving_powershell_series/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=saving_powershell_series</link>
		
		<dc:creator><![CDATA[リョクちゃ]]></dc:creator>
		<pubDate>Mon, 17 Nov 2025 22:10:16 +0000</pubDate>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[まとめ]]></category>
		<category><![CDATA[ネットワーク診断]]></category>
		<category><![CDATA[パイプライン]]></category>
		<category><![CDATA[入門]]></category>
		<category><![CDATA[実務コマンド]]></category>
		<guid isPermaLink="false">https://dreamparadaisu.com/?p=8234</guid>

					<description><![CDATA[<p>【保存版】PowerShell 入門シリーズ｜基本操作〜実務コマンド・自動化まで完全まとめ Windows の強力な自動化ツール PowerShell を体系的に学べる 「PowerShell 入門シリーズ」のまとめペー...</p>
The post <a href="https://dreamparadaisu.com/saving_powershell_series/">【保存版】PowerShell 入門シリーズ完全まとめ｜基本〜実務コマンド・自動化まで総合ガイド</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-template-list'>
<!-- YARPP List -->
<h3>関連記事</h3><ol>
<li><a href="https://dreamparadaisu.com/infla_basic_full/" rel="bookmark" title="【ネットワーク基礎編まとめ】初心者から学ぶOSI参照モデルまでの全記事リンク集">【ネットワーク基礎編まとめ】初心者から学ぶOSI参照モデルまでの全記事リンク集</a></li>
<li><a href="https://dreamparadaisu.com/com_ipconfig/" rel="bookmark" title="【Windowsコマンド入門】ipconfigの使い方｜IPアドレス・DNSを一瞬で確認">【Windowsコマンド入門】ipconfigの使い方｜IPアドレス・DNSを一瞬で確認</a></li>
<li><a href="https://dreamparadaisu.com/com_test_connection/" rel="bookmark" title="【PowerShellコマンド入門】test-connectionの使い方｜Pingとの違いと通信確認方法">【PowerShellコマンド入門】test-connectionの使い方｜Pingとの違いと通信確認方法</a></li>
<li><a href="https://dreamparadaisu.com/network_matome/" rel="bookmark" title="【保存版】ネットワーク診断コマンド6選まとめ｜通信トラブルを即解決！">【保存版】ネットワーク診断コマンド6選まとめ｜通信トラブルを即解決！</a></li>
<li><a href="https://dreamparadaisu.com/infla_gateway/" rel="bookmark" title="デフォルトゲートウェイとは？通信の出口と役割を理解しよう">デフォルトゲートウェイとは？通信の出口と役割を理解しよう</a></li>
</ol>
</div>
]]></description>
										<content:encoded><![CDATA[<h1>【保存版】PowerShell 入門シリーズ｜基本操作〜実務コマンド・自動化まで完全まとめ</h1>
<p>Windows の強力な自動化ツール <strong>PowerShell</strong> を体系的に学べる<br />
「<strong>PowerShell 入門シリーズ</strong>」のまとめページです。</p>
<p>基本文法、変数、ファイル操作、CSV処理、ネットワーク診断、自動化スクリプトまで<br />
実務で役立つ内容をカテゴリ別に整理しています。</p>
<p>これから PowerShell を学びたい方、<br />
実務で必要な部分だけサッと調べたい方、<br />
どちらにも役立つ構成です。</p>
<hr />
<h2>🔍 PowerShell 入門シリーズ一覧（カテゴリ別・折り畳み）</h2>
<!-- 基礎編 -->
<h3>🧩 基礎編</h3>
<details>
<summary><strong>▼ クリックで展開</strong></summary>

<table class="command-table">

<thead>

<tr>

<th>No</th>

<th>記事タイトル</th>

<th>主なテーマ</th>
    </tr>
  </thead>

<tbody>

<tr>

<td>01</td>

<td><a href="https://dreamparadaisu.com/powershell_01/">〖PowerShell〗フォルダ名一覧を取得してテキストファイルとして出力～ことはじめ～</a></td>

<td>フォルダ名一覧取得 / 基本</td>
    </tr>

<tr>

<td>02</td>

<td><a href="https://dreamparadaisu.com/powershell_02/">〖PowerShell〗変数や定数そして関数の宣言・作り方～基礎を固めよう～</a></td>

<td>変数 / 定数 / 関数の宣言</td>
    </tr>

<tr>

<td>03</td>

<td><a href="https://dreamparadaisu.com/powershell_03/">〖PowerShell〗変数に代入された情報をファイルとして出力する方法～変数に学ぶ～</a></td>

<td>変数の中身をファイル出力</td>
    </tr>

<tr>

<td>07</td>

<td><a href="https://dreamparadaisu.com/powershell_07/">〖PowerShell〗変数のデータの型を調べる～データの型を学んで一歩前進～</a></td>

<td>型情報 / GetType()</td>
    </tr>
  </tbody>
</table>

</details>
<hr />
<!-- 文字列操作編 -->
<h3>✏️ 文字列操作編</h3>
<details>
<summary><strong>▼ クリックで展開</strong></summary>

<table class="command-table">

<thead>

<tr>

<th>No</th>

<th>記事タイトル</th>

<th>主なテーマ</th>
    </tr>
  </thead>

<tbody>

<tr>

<td>04</td>

<td><a href="https://dreamparadaisu.com/powershell_04/">〖PowerShell〗文字列をいろんな角度から扱ってみる～文字列に学ぶ～</a></td>

<td>文字列操作全般</td>
    </tr>

<tr>

<td>17</td>

<td><a href="https://dreamparadaisu.com/powershell_17/">〖PowerShell〗正規表現を使って電話番号をマッチングさせてみた</a></td>

<td>正規表現 / 電話番号チェック</td>
    </tr>
  </tbody>
</table>

</details>
<hr />
<!-- 配列・データ構造編 -->
<h3>📦 配列・データ構造編</h3>
<details>
<summary><strong>▼ クリックで展開</strong></summary>

<table class="command-table">

<thead>

<tr>

<th>No</th>

<th>記事タイトル</th>

<th>主なテーマ</th>
    </tr>
  </thead>

<tbody>

<tr>

<td>05</td>

<td><a href="https://dreamparadaisu.com/powershell_05/">〖PowerShell〗辞書(ハッシュテーブル)について考えてみる～ステップアップ編～</a></td>

<td>ハッシュテーブルの基礎</td>
    </tr>

<tr>

<td>06</td>

<td><a href="https://dreamparadaisu.com/powershell_06/">〖PowerShell〗ハッシュテーブルにおけるContainsの罠～気を付けよう～</a></td>

<td>ハッシュテーブル / Contains の注意点</td>
    </tr>

<tr>

<td>08</td>

<td><a href="https://dreamparadaisu.com/powershell_08/">〖PowerShell〗配列とforeachを使って個々のデータを取り出す～ステップアップ～</a></td>

<td>配列 + foreach</td>
    </tr>

<tr>

<td>09</td>

<td><a href="https://dreamparadaisu.com/powershell_09/">〖PowerShell〗配列に学び・そして極める～値の追加をしてみよう～</a></td>

<td>配列への追加・操作</td>
    </tr>

<tr>

<td>10</td>

<td><a href="https://dreamparadaisu.com/powershell_10/">〖PowerShell〗配列から値を取り出す効率的な方法と重複削除してみる～ステップアップ～</a></td>

<td>配列の取り出し / 重複削除</td>
    </tr>

<tr>

<td>12</td>

<td><a href="https://dreamparadaisu.com/powershell_12/">〖PowerShell〗配列の要素をカウントする時には戻り値の気を付けよう～配列の罠～</a></td>

<td>配列のCount / 罠</td>
    </tr>
  </tbody>
</table>

</details>
<hr />
<!-- パス・ファイル・環境編 -->
<h3>📁 パス・ファイル・環境編</h3>
<details>
<summary><strong>▼ クリックで展開</strong></summary>

<table class="command-table">

<thead>

<tr>

<th>No</th>

<th>記事タイトル</th>

<th>主なテーマ</th>
    </tr>
  </thead>

<tbody>

<tr>

<td>13</td>

<td><a href="https://dreamparadaisu.com/powershell_13/">〖PowerShell〗ファイルのフルパスを取得しテキストファイルに出力～パスに学ぶ～</a></td>

<td>フルパス取得 / 出力</td>
    </tr>

<tr>

<td>18</td>

<td><a href="https://dreamparadaisu.com/powershell_18/">〖PowerShell〗任意のファイルのフルパスを取得する～Resolve-Path～</a></td>

<td>Resolve-Path / パス解決</td>
    </tr>

<tr>

<td>19</td>

<td><a href="https://dreamparadaisu.com/powershell_19/">〖PowerShell〗WindowsコマンドでいうCDに倣い作業ディレクトリをSet-Locationで変えてみた</a></td>

<td>カレントディレクトリ移動 / Set-Location</td>
    </tr>

<tr>

<td>14</td>

<td><a href="https://dreamparadaisu.com/powershell_14/">〖PowerShell〗.NetFrameworkのバージョンを確認する方法～意外と使える～</a></td>

<td>.NET Framework バージョン確認</td>
    </tr>

<tr>

<td>15</td>

<td><a href="https://dreamparadaisu.com/powershell_15/">〖PowerShell〗外部アプリケーションを呼び出してみよう～.exeを実行させる～</a></td>

<td>外部exe起動</td>
    </tr>
  </tbody>
</table>

</details>
<hr />
<!-- 条件分岐・制御構文編 -->
<h3>🔀 条件分岐・制御構文編</h3>
<details>
<summary><strong>▼ クリックで展開</strong></summary>

<table class="command-table">

<thead>

<tr>

<th>No</th>

<th>記事タイトル</th>

<th>主なテーマ</th>
    </tr>
  </thead>

<tbody>

<tr>

<td>11</td>

<td><a href="https://dreamparadaisu.com/powershell_11/">〖PowerShell〗複数条件が並ぶ時の効率的な条件分岐について学ぶ～Switch文～</a></td>

<td>switch 文 / 条件分岐</td>
    </tr>

<tr>

<td>16</td>

<td><a href="https://dreamparadaisu.com/powershell_16/">〖PowerShell〗関数を1行で2回関数を呼び出すには？！～その策は邪道なのか～</a></td>

<td>関数呼び出しテクニック</td>
    </tr>

<tr>

<td>21</td>

<td><a href="https://dreamparadaisu.com/powershell_21/">〖PowerShell〗条件分岐を使ってみた～こんなこともできるぞ～</a></td>

<td>if 文など条件分岐</td>
    </tr>
  </tbody>
</table>

</details>
<hr />
<!-- CSV・データ処理編 -->
<h3>📊 CSV・データ処理編</h3>
<details>
<summary><strong>▼ クリックで展開</strong></summary>

<table class="command-table">

<thead>

<tr>

<th>No</th>

<th>記事タイトル</th>

<th>主なテーマ</th>
    </tr>
  </thead>

<tbody>

<tr>

<td>20</td>

<td><a href="https://dreamparadaisu.com/powershell_20/">〖Powershell〗CSVファイルをカッコよく扱ってみる！</a></td>

<td>CSV 読み書き / 加工</td>
    </tr>
  </tbody>
</table>

</details>
<hr />
<!-- ネットワーク診断・応用編 -->
<h3>🌐 ネットワーク診断・応用編</h3>
<details open>
<summary><strong>▼ クリックで展開（おすすめ）</strong></summary>

<table class="command-table">

<thead>

<tr>

<th>No</th>

<th>記事タイトル</th>

<th>主なテーマ</th>
    </tr>
  </thead>

<tbody>

<tr>

<td>31</td>

<td><a href="https://dreamparadaisu.com/com_test_connection/">〖PowerShellコマンド入門〗test-connectionの使い方｜Pingとの違いと通信確認方法</a></td>

<td>Test-Connection / 疎通確認</td>
    </tr>

<tr>

<td>32</td>

<td><a href="https://dreamparadaisu.com/study_powershell_advance001/">〖PowerShell応用編〗pingが通らない？ICMP禁止環境で疎通確認する3つの方法</a></td>

<td>ICMP禁止環境での疎通 / 応用</td>
    </tr>

<tr>

<td>33</td>

<td><a href="https://dreamparadaisu.com/study_nslookup/">〖Windowsコマンド入門〗nslookupの使い方｜DNSトラブルを見抜く方法</a></td>

<td>DNS調査 / nslookup</td>
    </tr>
  </tbody>
</table>

</details>
<hr />
<h2>&#x1f51a; <strong>おわりに｜シリーズ随時更新中</strong></h2>
<p>PowerShell は Windows 業務の効率化に欠かせないスキルです。<br />
シリーズは随時追加していくので、ブックマークしておくと便利です。</p>
<blockquote>
<p><strong>&#x2714; 記事が追加され次第、このページにも反映します。</strong><br />
&#x2714; 体系的に学びたい方は本ページを起点にどうぞ。</p>
</blockquote>		<div class="wpulike wpulike-default " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="8234"
					data-ulike-nonce="bc9c69cd9c"
					data-ulike-type="post"
					data-ulike-template="wpulike-default"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_8234"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>The post <a href="https://dreamparadaisu.com/saving_powershell_series/">【保存版】PowerShell 入門シリーズ完全まとめ｜基本〜実務コマンド・自動化まで総合ガイド</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-template-list'>
<!-- YARPP List -->
<h3>関連記事</h3><ol>
<li><a href="https://dreamparadaisu.com/infla_basic_full/" rel="bookmark" title="【ネットワーク基礎編まとめ】初心者から学ぶOSI参照モデルまでの全記事リンク集">【ネットワーク基礎編まとめ】初心者から学ぶOSI参照モデルまでの全記事リンク集</a></li>
<li><a href="https://dreamparadaisu.com/com_ipconfig/" rel="bookmark" title="【Windowsコマンド入門】ipconfigの使い方｜IPアドレス・DNSを一瞬で確認">【Windowsコマンド入門】ipconfigの使い方｜IPアドレス・DNSを一瞬で確認</a></li>
<li><a href="https://dreamparadaisu.com/com_test_connection/" rel="bookmark" title="【PowerShellコマンド入門】test-connectionの使い方｜Pingとの違いと通信確認方法">【PowerShellコマンド入門】test-connectionの使い方｜Pingとの違いと通信確認方法</a></li>
<li><a href="https://dreamparadaisu.com/network_matome/" rel="bookmark" title="【保存版】ネットワーク診断コマンド6選まとめ｜通信トラブルを即解決！">【保存版】ネットワーク診断コマンド6選まとめ｜通信トラブルを即解決！</a></li>
<li><a href="https://dreamparadaisu.com/infla_gateway/" rel="bookmark" title="デフォルトゲートウェイとは？通信の出口と役割を理解しよう">デフォルトゲートウェイとは？通信の出口と役割を理解しよう</a></li>
</ol>
</div>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8234</post-id>	</item>
		<item>
		<title>【PowerShell応用編】ネットワーク監視を自動化する方法｜ping不要の死活監視スクリプト</title>
		<link>https://dreamparadaisu.com/study_powershell_advance002/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=study_powershell_advance002</link>
		
		<dc:creator><![CDATA[リョクちゃ]]></dc:creator>
		<pubDate>Mon, 03 Nov 2025 22:00:10 +0000</pubDate>
				<category><![CDATA[インフラ/ネットワーク]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[トラブルシューティング]]></category>
		<category><![CDATA[ネットワーク]]></category>
		<category><![CDATA[応用]]></category>
		<guid isPermaLink="false">https://dreamparadaisu.com/?p=8207</guid>

					<description><![CDATA[<p>【PowerShell応用編】ネットワーク監視を自動化する方法｜ping不要の死活監視スクリプト ネットワーク障害の早期発見やサーバ死活確認を自動化したい場合、 PowerShellを使えばシンプルに実現できます。 本記...</p>
The post <a href="https://dreamparadaisu.com/study_powershell_advance002/">【PowerShell応用編】ネットワーク監視を自動化する方法｜ping不要の死活監視スクリプト</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-template-list'>
<!-- YARPP List -->
<h3>関連記事</h3><ol>
<li><a href="https://dreamparadaisu.com/study_powershell_advance001/" rel="bookmark" title="【PowerShell応用編】pingが通らない？ICMP禁止環境で疎通確認する3つの方法">【PowerShell応用編】pingが通らない？ICMP禁止環境で疎通確認する3つの方法</a></li>
<li><a href="https://dreamparadaisu.com/com_test_connection/" rel="bookmark" title="【PowerShellコマンド入門】test-connectionの使い方｜Pingとの違いと通信確認方法">【PowerShellコマンド入門】test-connectionの使い方｜Pingとの違いと通信確認方法</a></li>
<li><a href="https://dreamparadaisu.com/infla_rooting_trouble/" rel="bookmark" title="ルーティングトラブルシュート：ping・tracerouteで障害を切り分ける方法">ルーティングトラブルシュート：ping・tracerouteで障害を切り分ける方法</a></li>
<li><a href="https://dreamparadaisu.com/infla_more_network/" rel="bookmark" title="高度なネットワーク冗長化設計入門：STP＋リンクアグリゲーション＋VRRPで止まらないネットワークを作る">高度なネットワーク冗長化設計入門：STP＋リンクアグリゲーション＋VRRPで止まらないネットワークを作る</a></li>
<li><a href="https://dreamparadaisu.com/study_netstat/" rel="bookmark" title="【Windowsコマンド入門】netstatの使い方｜通信ポートとプロセスを確認する方法">【Windowsコマンド入門】netstatの使い方｜通信ポートとプロセスを確認する方法</a></li>
</ol>
</div>
]]></description>
										<content:encoded><![CDATA[<h1>【PowerShell応用編】ネットワーク監視を自動化する方法｜ping不要の死活監視スクリプト</h1>
<p>ネットワーク障害の早期発見やサーバ死活確認を自動化したい場合、<br />
PowerShellを使えばシンプルに実現できます。</p>
<p>本記事では、<strong>ICMPが禁止されている環境でも動作するPowerShell監視スクリプト</strong>を紹介します。<br />
定期実行により、Web・DB・APIサーバなどの稼働状態を自動でチェック可能です。</p>
<hr />
<h2>🧭 概要</h2>
<p>多くの企業ネットワークでは、セキュリティ上の理由から <strong>ICMP（ping）通信が遮断</strong> されています。<br />
そのため、従来の <code>ping</code> コマンドによる監視が使えないケースもあります。</p>
<p>しかし PowerShell 7 以降の <code>Test-Connection -Port</code> を使えば、<br /><strong>TCPレベルでの疎通確認</strong> が可能です。<br />
これを活用して、<strong>ping不要の自動監視スクリプト</strong>を構築していきます。</p>
<hr />
<h2>⚙️ 1. 監視対象リストの作成</h2>
<p>まず、監視対象となるホストとポートを配列として定義します。</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">$targets = @(
    @{Name=&quot;Web&quot;; Host=&quot;web01&quot;; Port=443},
    @{Name=&quot;DB&quot;; Host=&quot;db01&quot;; Port=1433},
    @{Name=&quot;API&quot;; Host=&quot;api01&quot;; Port=8080}
)</pre><p></p>
<hr />
<h2>🧩 2. TCPレベルの疎通チェック</h2>
<p><code>Test-Connection -Port</code> を利用して、ポート単位で死活確認を行います。<br />
ICMPが禁止されていても、TCP通信が通れば「OK」と判定できます。</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">foreach ($t in $targets) {
    $result = Test-Connection $t.Host -Port $t.Port -Quiet
    $status = if ($result) { &quot;OK&quot; } else { &quot;NG&quot; }
    Write-Output &quot;$(Get-Date -Format 'yyyy/MM/dd HH:mm:ss') $($t.Name): $status&quot;
}</pre><p></p>
<p>出力例：</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">2025/11/01 08:30:00 Web: OK
2025/11/01 08:30:00 DB: NG
2025/11/01 08:30:00 API: OK</pre><p></p>
<hr />
<h2>📦 3. ログファイルへの出力</h2>
<p>監視結果をファイルに追記して履歴に残します。</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">$logPath = &quot;C:\Scripts\NetworkMonitor.log&quot;
foreach ($t in $targets) {
    $result = Test-Connection $t.Host -Port $t.Port -Quiet
    $status = if ($result) { &quot;OK&quot; } else { &quot;NG&quot; }
    &quot;$((Get-Date).ToString('yyyy/MM/dd HH:mm:ss')),$($t.Name),$($t.Host),$($t.Port),$status&quot; | Out-File -Append -FilePath $logPath
}</pre><p></p>
<p>結果例（CSV形式）：</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">2025/11/01 08:30:00,Web,web01,443,OK
2025/11/01 08:30:00,DB,db01,1433,NG
2025/11/01 08:30:00,API,api01,8080,OK</pre><p></p>
<hr />
<h2>📬 4. メール通知を追加（オプション）</h2>
<p>障害検知時に自動メール通知する場合は<code>Send-MailMessage</code>を使います。</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">if ($status -eq &quot;NG&quot;) {
    Send-MailMessage `
        -From &quot;monitor@domain.local&quot; `
        -To &quot;admin@domain.local&quot; `
        -Subject &quot;【アラート】$($t.Name) サーバ接続不可&quot; `
        -Body &quot;Host: $($t.Host) Port: $($t.Port) がNGです。&quot; `
        -SmtpServer &quot;mail.domain.local&quot;
}</pre><p></p>
<blockquote>
  💡 TeamsやSlackに通知する場合は、Webhook URLに<code>Invoke-RestMethod</code>を使えばOKです。
</blockquote>
<hr />
<h2>⏰ 5. 定期実行（Windowsタスクスケジューラ）</h2>
<p>作成したスクリプトを<code>.ps1</code>ファイルとして保存し、<br />
タスクスケジューラで自動実行を設定します。</p>
<table>
<thead>
<tr>

<th>項目</th>

<th>内容</th>
</tr>
</thead>
<tbody>
<tr>

<td>トリガー</td>

<td>1時間ごと</td>
</tr>
<tr>

<td>操作</td>

<td><code>powershell.exe -File &quot;C:\Scripts\NetworkMonitor.ps1&quot;</code></td>
</tr>
<tr>

<td>実行時の権限</td>

<td>「最上位の特権で実行」にチェック</td>
</tr>
</tbody>
</table>
<p>これで、サーバの死活状態が定期的に監視され、<br />
障害発生時は即座に検知できます。</p>
<hr />
<h2>🧠 応用：HTTPレスポンス監視</h2>
<p>Webサーバの応答確認には<code>Invoke-WebRequest</code>を使う方法も有効です。</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">$response = Invoke-WebRequest &quot;https://example.com&quot; -UseBasicParsing -ErrorAction SilentlyContinue
if ($response.StatusCode -eq 200) {
    &quot;Webサーバ稼働中&quot;
} else {
    &quot;応答異常：$($response.StatusCode)&quot;
}</pre><p></p>
<blockquote>
  <code>StatusCode 200</code> が返れば正常稼働。<br>
  API監視やWebアプリ死活確認にも応用可能です。
</blockquote>
<hr />
<h2>🔗 関連記事</h2>
<ul>
<li><a href="https://dreamparadaisu.com/study_powershell_advance001/">ICMP禁止環境で疎通確認する3つの方法</a></li>
<li><a href="https://dreamparadaisu.com/com_test_connection/">Test-Connectionの基本使い方｜Pingとの違いと応用</a></li>
<li><a href="https://dreamparadaisu.com/study_netstat/">netstatで通信ポートを確認する方法</a></li>
<li><a href="https://">PowerShellでログ出力を自動化する方法（予定）</a></li>
</ul>
<hr />
<h2>🧾 まとめ</h2>
<ul>
<li><code>Test-Connection -Port</code>を使えば、ICMP禁止環境でも死活確認可能</li>
<li>ログ出力やメール通知で、自動監視をシンプルに構築可能</li>
<li>スケジューラ設定で運用自動化が実現</li>
</ul>
<blockquote>
  PowerShellは「運用監視の自動化ツール」としても強力です。<br>
  小さく始めて、徐々にログ解析・通知連携などに拡張していきましょう。
</blockquote>
<hr />		<div class="wpulike wpulike-default " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="8207"
					data-ulike-nonce="a5e41e484f"
					data-ulike-type="post"
					data-ulike-template="wpulike-default"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_8207"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>The post <a href="https://dreamparadaisu.com/study_powershell_advance002/">【PowerShell応用編】ネットワーク監視を自動化する方法｜ping不要の死活監視スクリプト</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-template-list'>
<!-- YARPP List -->
<h3>関連記事</h3><ol>
<li><a href="https://dreamparadaisu.com/study_powershell_advance001/" rel="bookmark" title="【PowerShell応用編】pingが通らない？ICMP禁止環境で疎通確認する3つの方法">【PowerShell応用編】pingが通らない？ICMP禁止環境で疎通確認する3つの方法</a></li>
<li><a href="https://dreamparadaisu.com/com_test_connection/" rel="bookmark" title="【PowerShellコマンド入門】test-connectionの使い方｜Pingとの違いと通信確認方法">【PowerShellコマンド入門】test-connectionの使い方｜Pingとの違いと通信確認方法</a></li>
<li><a href="https://dreamparadaisu.com/infla_rooting_trouble/" rel="bookmark" title="ルーティングトラブルシュート：ping・tracerouteで障害を切り分ける方法">ルーティングトラブルシュート：ping・tracerouteで障害を切り分ける方法</a></li>
<li><a href="https://dreamparadaisu.com/infla_more_network/" rel="bookmark" title="高度なネットワーク冗長化設計入門：STP＋リンクアグリゲーション＋VRRPで止まらないネットワークを作る">高度なネットワーク冗長化設計入門：STP＋リンクアグリゲーション＋VRRPで止まらないネットワークを作る</a></li>
<li><a href="https://dreamparadaisu.com/study_netstat/" rel="bookmark" title="【Windowsコマンド入門】netstatの使い方｜通信ポートとプロセスを確認する方法">【Windowsコマンド入門】netstatの使い方｜通信ポートとプロセスを確認する方法</a></li>
</ol>
</div>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8207</post-id>	</item>
		<item>
		<title>【PowerShell応用編】pingが通らない？ICMP禁止環境で疎通確認する3つの方法</title>
		<link>https://dreamparadaisu.com/study_powershell_advance001/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=study_powershell_advance001</link>
		
		<dc:creator><![CDATA[リョクちゃ]]></dc:creator>
		<pubDate>Sat, 01 Nov 2025 23:59:39 +0000</pubDate>
				<category><![CDATA[インフラ/ネットワーク]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[トラブルシューティング]]></category>
		<category><![CDATA[ネットワーク]]></category>
		<category><![CDATA[応用]]></category>
		<guid isPermaLink="false">https://dreamparadaisu.com/?p=8184</guid>

					<description><![CDATA[<p>【PowerShell応用編】pingが通らない？ICMP禁止環境で疎通確認する3つの方法 ネットワークの疎通確認といえば「ping」。 しかし、セキュリティポリシーの厳しい環境では ICMP（ping通信）がファイアウ...</p>
The post <a href="https://dreamparadaisu.com/study_powershell_advance001/">【PowerShell応用編】pingが通らない？ICMP禁止環境で疎通確認する3つの方法</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-template-list'>
<!-- YARPP List -->
<h3>関連記事</h3><ol>
<li><a href="https://dreamparadaisu.com/com_test_connection/" rel="bookmark" title="【PowerShellコマンド入門】test-connectionの使い方｜Pingとの違いと通信確認方法">【PowerShellコマンド入門】test-connectionの使い方｜Pingとの違いと通信確認方法</a></li>
<li><a href="https://dreamparadaisu.com/infla_rooting_trouble/" rel="bookmark" title="ルーティングトラブルシュート：ping・tracerouteで障害を切り分ける方法">ルーティングトラブルシュート：ping・tracerouteで障害を切り分ける方法</a></li>
<li><a href="https://dreamparadaisu.com/infla_more_network/" rel="bookmark" title="高度なネットワーク冗長化設計入門：STP＋リンクアグリゲーション＋VRRPで止まらないネットワークを作る">高度なネットワーク冗長化設計入門：STP＋リンクアグリゲーション＋VRRPで止まらないネットワークを作る</a></li>
<li><a href="https://dreamparadaisu.com/study_netstat/" rel="bookmark" title="【Windowsコマンド入門】netstatの使い方｜通信ポートとプロセスを確認する方法">【Windowsコマンド入門】netstatの使い方｜通信ポートとプロセスを確認する方法</a></li>
<li><a href="https://dreamparadaisu.com/study_nslookup/" rel="bookmark" title="【Windowsコマンド入門】nslookupの使い方｜DNSトラブルを見抜く方法">【Windowsコマンド入門】nslookupの使い方｜DNSトラブルを見抜く方法</a></li>
</ol>
</div>
]]></description>
										<content:encoded><![CDATA[<h1>【PowerShell応用編】pingが通らない？ICMP禁止環境で疎通確認する3つの方法</h1>
<p>ネットワークの疎通確認といえば「ping」。<br />
しかし、セキュリティポリシーの厳しい環境では <strong>ICMP（ping通信）がファイアウォールで禁止</strong> されているケースも少なくありません。</p>
<p>この記事では、そんな「pingが通らない環境」で通信確認を行う方法を3つ紹介します。<br /><strong>Test-Connection -Port</strong> の活用例を中心に、実務で役立つ切り分けテクニックを解説します。</p>
<hr />
<h2>🚫 なぜpingが通らないのか？</h2>
<p>ping は ICMP（Internet Control Message Protocol）を利用して通信確認を行います。<br />
多くのFWやルータでは、セキュリティ上の理由からこのICMP通信が遮断されています。</p>
<ul>
<li>ICMPを許可すると、ネットワーク構成の推測（ポートスキャン）に悪用される恐れ</li>
<li>外部からのDoS攻撃（ICMP Flood）対策のため</li>
</ul>
<p>結果として、pingが「Request timed out」になっても、実際はTCP通信が正常に行えている場合があります。</p>
<hr />
<h2>✅ 方法①：PowerShellのTest-Connection -Portを使う</h2>
<p>PowerShell 7以降で利用可能な <code>Test-Connection -Port</code> は、<strong>TCPレベルで疎通確認</strong>を行えます。<br />
つまり、ping(ICMP)が禁止されていても、<strong>対象ポートが開いていれば通信可能</strong>です。</p>
<h3>例：Web・DB・SSHなどの確認</h3>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">Test-Connection web01 -Port 80
Test-Connection web01 -Port 443
Test-Connection db01 -Port 1433
Test-Connection server01 -Port 22</pre><p></p>
<p>結果：</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">TcpTestSucceeded : True
ComputerName     : web01
RemotePort       : 443
RoundtripTime    : 12</pre><p></p>
<table>
<thead>
<tr>

<th>項目</th>

<th>説明</th>
</tr>
</thead>
<tbody>
<tr>

<td>TcpTestSucceeded</td>

<td>Trueなら疎通成功</td>
</tr>
<tr>

<td>RemotePort</td>

<td>指定したTCPポート</td>
</tr>
<tr>

<td>RoundtripTime</td>

<td>応答時間（ms）</td>
</tr>
</tbody>
</table>
<hr />
<h2>🧩 方法②：アプリ層でのHTTP通信テスト（Invoke-WebRequest）</h2>
<p>Webサーバの応答を確認したい場合は、HTTPリクエストを送る方法もあります。</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">Invoke-WebRequest https://www.google.com -UseBasicParsing</pre><p></p>
<ul>
<li>ステータスコード <code>200 OK</code> → 正常応答</li>
<li>ステータスコード <code>403 / 500</code> → Webアプリまたは認証エラー</li>
</ul>
<blockquote>
  💡 Invoke-WebRequest はAPIやWebシステムの死活確認にも活用できます。
</blockquote>
<hr />
<h2>🧠 方法③：特定ポートの開閉を確認（Test-NetConnection）</h2>
<p>もう1つの便利なコマンドが<code>Test-NetConnection</code> (Windows標準搭載)。<br />
PowerShell 5以降で利用でき、ICMPが使えない環境でもポートを指定して通信確認が可能です。</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">Test-NetConnection db01 -Port 1433</pre><p></p>
<p>結果：</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">ComputerName     : db01
RemoteAddress    : 192.168.1.100
RemotePort       : 1433
TcpTestSucceeded : True</pre><p></p>
<p>→ <code>TcpTestSucceeded : True</code>で疎通成功。<br />
アプリケーション層(DBサーバやAPIサーバなど)との通信可否を簡単に判定できます。</p>
<hr />
<h2>🔍 実務での切り分けシナリオ</h2>
<table>
<thead>
<tr>

<th>症状</th>

<th>想定原因</th>

<th>確認コマンド</th>

<th>対処</th>
</tr>
</thead>
<tbody>
<tr>

<td>pingが通らないがWebは見られる</td>

<td>ICMP遮断のみ</td>

<td><code>Test-Connection -Port 443</code></td>

<td>問題なし（FW仕様）</td>
</tr>
<tr>

<td>pingもTCPも通らない</td>

<td>FWで全通信遮断</td>

<td>ネットワーク設定・ACL確認</td>

<td>通信ルール修正</td>
</tr>
<tr>

<td>ping通るがDB接続不可</td>

<td>TCPポート閉塞</td>

<td><code>Test-Connection -Port 1433</code></td>

<td>ポート開放またはサービス再起動</td>
</tr>
<tr>

<td>ICMP禁止環境で死活監視したい</td>

<td>ICMP不可だがTCP許可</td>

<td><code>Test-Connection -Port</code> + スクリプト化</td>

<td>定期監視バッチを作成</td>
</tr>
</tbody>
</table>
<hr />
<h2>💻 自動監視スクリプト例（PowerShell）</h2>
<p>以下のスクリプトをタスクスケジューラに登録しておけば、ミドルウェアの死活を定期的チェックできます。</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">$targets = @(
    @{Name=&quot;Web&quot;; Host=&quot;web01&quot;; Port=443},
    @{Name=&quot;DB&quot;; Host=&quot;db01&quot;; Port=1433},
    @{Name=&quot;API&quot;; Host=&quot;api01&quot;; Port=8080}
)

foreach ($t in $targets) {
    $result = Test-Connection $t.Host -Port $t.Port -Quiet
    $status = if ($result) { &quot;OK&quot; } else { &quot;NG&quot; }
    Write-Output &quot;$(Get-Date -Format 'yyyy/MM/dd HH:mm:ss') $($t.Name): $status&quot;
}</pre><p></p>
<p>出力例：</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">2025/11/01 08:30:00 Web: OK
2025/11/01 08:30:00 DB: NG
2025/11/01 08:30:00 API: OK</pre><p></p>
<hr />
<h2>🔗 関連記事</h2>
<ul>
<li><a href="https://dreamparadaisu.com/com_test_connection/">Test-Connectionの基本使い方｜Pingとの違いと応用</a></li>
<li><a href="https://dreamparadaisu.com/study_netstat/">netstatで通信ポートを確認する方法</a></li>
<li><a href="https://">PowerShellでネットワーク監視を自動化する方法</a></li>
</ul>
<hr />
<h2>🧾 まとめ</h2>
<p>ファイアウォールでICMPが禁止されている環境でも、<br />
PowerShellの<code>Test-Connection -Port</code>や<code>Test-NetConnection</code>を使えば、<br />
TCPレベルでの疎通確認が可能です。</p>
<blockquote>
  <strong>pingが通らない = 通信できない ではない！</strong>
<br>
  TCPポートが開いているかどうかを確認することで、正確な原因切り分けができます。
</blockquote>
<hr />		<div class="wpulike wpulike-default " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="8184"
					data-ulike-nonce="eb44612f20"
					data-ulike-type="post"
					data-ulike-template="wpulike-default"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_8184"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>The post <a href="https://dreamparadaisu.com/study_powershell_advance001/">【PowerShell応用編】pingが通らない？ICMP禁止環境で疎通確認する3つの方法</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-template-list'>
<!-- YARPP List -->
<h3>関連記事</h3><ol>
<li><a href="https://dreamparadaisu.com/com_test_connection/" rel="bookmark" title="【PowerShellコマンド入門】test-connectionの使い方｜Pingとの違いと通信確認方法">【PowerShellコマンド入門】test-connectionの使い方｜Pingとの違いと通信確認方法</a></li>
<li><a href="https://dreamparadaisu.com/infla_rooting_trouble/" rel="bookmark" title="ルーティングトラブルシュート：ping・tracerouteで障害を切り分ける方法">ルーティングトラブルシュート：ping・tracerouteで障害を切り分ける方法</a></li>
<li><a href="https://dreamparadaisu.com/infla_more_network/" rel="bookmark" title="高度なネットワーク冗長化設計入門：STP＋リンクアグリゲーション＋VRRPで止まらないネットワークを作る">高度なネットワーク冗長化設計入門：STP＋リンクアグリゲーション＋VRRPで止まらないネットワークを作る</a></li>
<li><a href="https://dreamparadaisu.com/study_netstat/" rel="bookmark" title="【Windowsコマンド入門】netstatの使い方｜通信ポートとプロセスを確認する方法">【Windowsコマンド入門】netstatの使い方｜通信ポートとプロセスを確認する方法</a></li>
<li><a href="https://dreamparadaisu.com/study_nslookup/" rel="bookmark" title="【Windowsコマンド入門】nslookupの使い方｜DNSトラブルを見抜く方法">【Windowsコマンド入門】nslookupの使い方｜DNSトラブルを見抜く方法</a></li>
</ol>
</div>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8184</post-id>	</item>
		<item>
		<title>【PowerShellコマンド入門】test-connectionの使い方｜Pingとの違いと通信確認方法</title>
		<link>https://dreamparadaisu.com/com_test_connection/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=com_test_connection</link>
		
		<dc:creator><![CDATA[リョクちゃ]]></dc:creator>
		<pubDate>Sat, 01 Nov 2025 22:39:29 +0000</pubDate>
				<category><![CDATA[インフラ/ネットワーク]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[トラブルシューティング]]></category>
		<category><![CDATA[ネットワーク]]></category>
		<category><![CDATA[入門]]></category>
		<guid isPermaLink="false">https://dreamparadaisu.com/?p=8174</guid>

					<description><![CDATA[<p>【PowerShellコマンド入門】test-connectionの使い方｜Pingとの違いと通信確認方法 ネットワークが繋がらないとき、まず思い浮かぶのが「ping」ですが、PowerShell環境ではより高機能な t...</p>
The post <a href="https://dreamparadaisu.com/com_test_connection/">【PowerShellコマンド入門】test-connectionの使い方｜Pingとの違いと通信確認方法</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-template-list'>
<!-- YARPP List -->
<h3>関連記事</h3><ol>
<li><a href="https://dreamparadaisu.com/infla_rooting_trouble/" rel="bookmark" title="ルーティングトラブルシュート：ping・tracerouteで障害を切り分ける方法">ルーティングトラブルシュート：ping・tracerouteで障害を切り分ける方法</a></li>
<li><a href="https://dreamparadaisu.com/study_powershell_advance001/" rel="bookmark" title="【PowerShell応用編】pingが通らない？ICMP禁止環境で疎通確認する3つの方法">【PowerShell応用編】pingが通らない？ICMP禁止環境で疎通確認する3つの方法</a></li>
<li><a href="https://dreamparadaisu.com/study_nslookup/" rel="bookmark" title="【Windowsコマンド入門】nslookupの使い方｜DNSトラブルを見抜く方法">【Windowsコマンド入門】nslookupの使い方｜DNSトラブルを見抜く方法</a></li>
<li><a href="https://dreamparadaisu.com/infla_gateway/" rel="bookmark" title="デフォルトゲートウェイとは？通信の出口と役割を理解しよう">デフォルトゲートウェイとは？通信の出口と役割を理解しよう</a></li>
<li><a href="https://dreamparadaisu.com/infla_nat/" rel="bookmark" title="NATとは？プライベートIPとグローバルIPを変換する仕組みを解説">NATとは？プライベートIPとグローバルIPを変換する仕組みを解説</a></li>
</ol>
</div>
]]></description>
										<content:encoded><![CDATA[<h1>【PowerShellコマンド入門】test-connectionの使い方｜Pingとの違いと通信確認方法</h1>
<p>ネットワークが繋がらないとき、まず思い浮かぶのが「ping」ですが、<br /><strong>PowerShell環境ではより高機能な <code>test-connection</code> コマンド</strong>を使うことができます。</p>
<p>この記事では、<code>test-connection</code> の基本的な使い方から、<code>ping</code> との違い、実際のトラブルシュート例までをわかりやすく解説します。</p>
<hr />
<h2>🔍 test-connectionとは？</h2>
<p><code>test-connection</code> は、<strong>PowerShell版のPingコマンド</strong>です。<br />
通信の疎通確認だけでなく、<strong>応答時間・成功率・経路情報</strong>なども取得できます。</p>
<blockquote>
  💡 PowerShell環境では「ping」の代わりに「test-connection」を使うのが推奨です。
</blockquote>
<hr />
<h2>🧭 基本構文</h2>
<p><code>Test-Connection &lt;宛先&gt;</code></p>
<p>例：</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">Test-Connection www.google.com</pre><p></p>
<p>結果(例)：</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">Source        Destination     IPV4Address      IPV6Address  Bytes    Time(ms)
------        -----------     -----------      -----------  -----    --------
PC01          www.google.com  142.250.196.132               32       15
PC01          www.google.com  142.250.196.132               32       16</pre><p></p>
<ul>
<li><strong>Source</strong> : 送信元ホスト名</li>
<li><strong>Destination</strong> : 通信先ホスト名</li>
<li><strong>Time(ms)</strong> : 応答時間(ミリ秒)</li>
</ul>
<hr />
<h2>⚙️ 回数を指定して送信（-Count）</h2>
<p>デフォルトでは4回パケットを送信しますが、<code>-Count</code>で回数を指定できます。</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">Test-Connection www.google.com -Count 2</pre><p></p>
<hr />
<h2>🧩 結果を簡潔に出す（-Quiet）</h2>
<p>成功・失敗だけを判定したい場合は、<code>-Quiet</code>オプションを使用します。</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">Test-Connection www.google.com -Quiet</pre><p></p>
<p>結果例：</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">True</pre><p></p>
<p>→ True = 通信成功<br />
→ False = 通信不可</p>
<blockquote>
  🔸 スクリプトで疎通確認を行いたいときに便利です。
</blockquote>
<hr />
<h2>📊 結果を変数に格納する</h2>
<p>PowerShellの強みは、出力をオブジェクトとして扱えることです。</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">$result = Test-Connection www.google.com -Count 4
$result | Select-Object Address, ResponseTime</pre><p></p>
<p>→ これで応答時間だけを抽出することも可能。</p>
<hr />
<h2>🚪 特定ポートの疎通を確認する（-Port）</h2>
<p>PowerShell 7以降では、<code>-Port</code>オプションを使って<br /><strong>特定のTCPポートへの疎通確認</strong>が可能です。<br />
これは、<strong>アプリケーション層の通信確認</strong>にも役立ちます。</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">Test-Connection 192.168.1.100 -Port 1433 -InformationLevel Detailed</pre><p></p>
<p>出力例：</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">TcpTestSucceeded : True
ComputerName     : 192.168.1.100
RemotePort       : 1433
RoundtripTime    : 12</pre><p></p>
<table>
<thead>
<tr>

<th>項目</th>

<th>説明</th>
</tr>
</thead>
<tbody>
<tr>

<td>TcpTestSucceeded</td>

<td>接続成功(True)または失敗(False)</td>
</tr>
<tr>

<td>RemotePort</td>

<td>指定したポート番号</td>
</tr>
<tr>

<td>RoundtripTime</td>

<td>応答時間（ms）</td>
</tr>
</tbody>
</table>
<blockquote>
  💡 例：<br>
  ・ &#8220;Webサーバ(HTTP/HTTPS) : <code>-Port 80</code> または <code>-Port 443</code>&#8220;<br>
  ・ &#8220;SQL Server : <code>-Port 1433</code>&#8220;<br>
  ・ &#8220;MySQL : <code>-Port 3306</code>&#8220;<br>
  ・ &#8220;SSH : <code>-Port 22</code>&#8221;
</blockquote>
<p>このオプションを使えば、<strong>ICMPが遮断された環境でもTCPポートレベルで疎通確認</strong>ができます。<br />
つまり、<strong>ミドルウェア(DB・Web・APIサーバなど)の死活確認</strong>にも活用可能です。</p>
<hr />
<h2>🧠 pingとの違いまとめ</h2>
<table>
<thead>
<tr>

<th>比較項目</th>

<th>ping</th>

<th>test-connection</th>
</tr>
</thead>
<tbody>
<tr>

<td>実行環境</td>

<td>CMD</td>

<td>PowerShell</td>
</tr>
<tr>

<td>出力形式</td>

<td>テキスト</td>

<td>オブジェクト</td>
</tr>
<tr>

<td>オプション指定</td>

<td>少ない</td>

<td>豊富（例：-Port, -Count, -Quiet）</td>
</tr>
<tr>

<td>出力の加工</td>

<td>手動</td>

<td>パイプで自在に加工可能</td>
</tr>
<tr>

<td>成功判定の自動化</td>

<td>不可</td>

<td><code>-Quiet</code>で容易</td>
</tr>
<tr>

<td>TCPポート確認</td>

<td>不可</td>

<td><code>-Port</code>で可能（PowerShell 7以降）</td>
</tr>
</tbody>
</table>
<hr />
<h2>🧩 トラブルシュートの例</h2>
<table>
<thead>
<tr>

<th>状況</th>

<th>コマンド</th>

<th>判定</th>
</tr>
</thead>
<tbody>
<tr>

<td>サーバに疎通できない</td>

<td><code>Test-Connection server01 -Count 4</code></td>

<td>失敗でネットワーク断線の可能性</td>
</tr>
<tr>

<td>Webアプリが応答しない</td>

<td><code>Test-Connection 192.168.1.10 -Port 443</code></td>

<td>ポート閉塞またはアプリ停止の可能性</td>
</tr>
<tr>

<td>外部サイトに繋がらない</td>

<td><code>Test-Connection www.google.com</code></td>

<td>成功なら内部DNSまたはプロキシ問題</td>
</tr>
<tr>

<td>成功/失敗を判定して処理分岐</td>

<td><code>if (Test-Connection 8.8.8.8 -Quiet) { &quot;OK&quot; } else { &quot;NG&quot; }</code></td>

<td>自動チェック可能</td>
</tr>
</tbody>
</table>
<hr />
<h2>🔗 関連記事</h2>
<ul>
<li><a href="https://dreamparadaisu.com/com_ipconfig/">ipconfig｜ネットワーク設定の確認</a></li>
<li><a href="https://dreamparadaisu.com/study_nslookup/">nslookup｜DNSトラブルを調べる方法</a></li>
<li><a href="https://dreamparadaisu.com/study_netstat/">netstat｜通信ポートとプロセスを確認する方法</a></li>
</ul>
<h2>🧾 まとめ</h2>
<p><code>test-connection</code>は、<strong>PowerShell環境での通信確認の定番コマンド</strong>です。<br />
シンプルな疎通確認から、スクリプトによる自動監視まで幅広く使えます。<br />
特に<code>-Port</code>オプションを活用すれば、<strong>特定ミドルウェアやアプリケーションのTCPレベルの疎通確認</strong>が可能になります。</p>
<hr />
<p><strong>次の記事</strong> → <a href="https://dreamparadaisu.com/study_nslookup/">nslookup｜DNSトラブルを調べる方法</a></p>
<hr />		<div class="wpulike wpulike-default " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="8174"
					data-ulike-nonce="492698f21b"
					data-ulike-type="post"
					data-ulike-template="wpulike-default"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_8174"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>The post <a href="https://dreamparadaisu.com/com_test_connection/">【PowerShellコマンド入門】test-connectionの使い方｜Pingとの違いと通信確認方法</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-template-list'>
<!-- YARPP List -->
<h3>関連記事</h3><ol>
<li><a href="https://dreamparadaisu.com/infla_rooting_trouble/" rel="bookmark" title="ルーティングトラブルシュート：ping・tracerouteで障害を切り分ける方法">ルーティングトラブルシュート：ping・tracerouteで障害を切り分ける方法</a></li>
<li><a href="https://dreamparadaisu.com/study_powershell_advance001/" rel="bookmark" title="【PowerShell応用編】pingが通らない？ICMP禁止環境で疎通確認する3つの方法">【PowerShell応用編】pingが通らない？ICMP禁止環境で疎通確認する3つの方法</a></li>
<li><a href="https://dreamparadaisu.com/study_nslookup/" rel="bookmark" title="【Windowsコマンド入門】nslookupの使い方｜DNSトラブルを見抜く方法">【Windowsコマンド入門】nslookupの使い方｜DNSトラブルを見抜く方法</a></li>
<li><a href="https://dreamparadaisu.com/infla_gateway/" rel="bookmark" title="デフォルトゲートウェイとは？通信の出口と役割を理解しよう">デフォルトゲートウェイとは？通信の出口と役割を理解しよう</a></li>
<li><a href="https://dreamparadaisu.com/infla_nat/" rel="bookmark" title="NATとは？プライベートIPとグローバルIPを変換する仕組みを解説">NATとは？プライベートIPとグローバルIPを変換する仕組みを解説</a></li>
</ol>
</div>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8174</post-id>	</item>
		<item>
		<title>【PowerShell】条件分岐を使ってみた～こんなこともできるぞ～</title>
		<link>https://dreamparadaisu.com/powershell_21/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=powershell_21</link>
		
		<dc:creator><![CDATA[リョクちゃ]]></dc:creator>
		<pubDate>Sun, 25 Dec 2022 17:15:25 +0000</pubDate>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windowsコマンド]]></category>
		<category><![CDATA[パソコン]]></category>
		<guid isPermaLink="false">https://dreamparadaisu.com/?p=4927</guid>

					<description><![CDATA[<p>どうも！リョクちゃです。 &#160; 今回は、PowerShellで入力値に基づいて処理を分岐させる、いわゆる条件分岐について、 コードを書いて、紹介していきます。 &#160; プログラミングにおいては、基本中の基本...</p>
The post <a href="https://dreamparadaisu.com/powershell_21/">【PowerShell】条件分岐を使ってみた～こんなこともできるぞ～</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>

この投稿の関連記事が見つかりませんでした。
</div>
]]></description>
										<content:encoded><![CDATA[<p>どうも！リョクちゃです。</p>
<p>&nbsp;</p>
<p>今回は、PowerShellで入力値に基づいて処理を分岐させる、いわゆる条件分岐について、</p>
<p>コードを書いて、紹介していきます。</p>
<p>&nbsp;</p>
<p>プログラミングにおいては、基本中の基本となるところであり、</p>
<p>割と行き詰まってしまうところでもあります。</p>
<p>&nbsp;</p>
<h1>if文</h1>
<p>一般的にプログラミング言語において条件分岐は、if文という文法で</p>
<p>表されており、if文の中に条件式を記述することで、処理を分岐させることができます。</p>
<p>&nbsp;</p>
<h2>if文の構文</h2>
<p>PowerShellにおけるif文の構文は、以下に示される形となります。</p>
<p>&nbsp;
</p><pre class="urvanov-syntax-highlighter-plain-tag">if ( 条件式 ) {

    処理

}</pre><p>
&nbsp;</p>
<p>条件式の結果が満たされるのであれば、処理が行われます。一方で条件式の結果が満たされない場合は、処理が行われません。</p>
<p>&nbsp;</p>
<p>例えば、整数の1が2よりも小さい場合には、処理としてHello Worldと返すといった動作を行わせたい場合、
</p><pre class="urvanov-syntax-highlighter-plain-tag">if ( 1 -lt 2 ) {
    Write-Host "Hello World"
}</pre><p>
&nbsp;</p>
<p>一方で、整数の1が2よりも小さくなかった場合(本来ありえないですが。。。)に処理を</p>
<p>行わせたいときは、以下の構文を利用します。
</p><pre class="urvanov-syntax-highlighter-plain-tag">if ( 条件式 ) {
    処理
} else {
    処理(条件式が成立しなかった場合)
}</pre><p>
&nbsp;</p>
<p>構文に則って記述すると、
</p><pre class="urvanov-syntax-highlighter-plain-tag">if ( 1 -lt 2 ) {
    Write-Host "Hello World"
} else {
    Write-Host "Not Hello World"
}</pre><p>
となります。</p>
<p>&nbsp;</p>
<p>PowerShellでは、以上のようにしてif文を記述することで、</p>
<p>条件式によって処理を分岐することができます。</p>
<p>&nbsp;</p>
<p>複数の条件がある場合については、以下の記事でもまとめているのでご参照ください。</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/powershell_11/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2022/02/powershell_27-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2022/02/powershell_27-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2022/02/powershell_27-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2022/02/powershell_27-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/powershell_11/" class="blog-card-title-link">【PowerShell】複数条件が並ぶ時の効率的な条件分岐について学ぶ～Switch文～</a></div><div class="blog-card-excerpt">条件が複数ある時、ひたすらif文を書いてはいませんか？条件が多くなるにつれて書いていくと複雑に且つわかりづらくなってきますよね。そんな時に使えるSwitch文について簡単に例を出しながら紹介しています。参考になれば嬉しいです。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/powershell_11/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/powershell_11/" alt="" /></a></div><div class="blog-card-date">2022-02-10 03:01</div></div></div>
<p>&nbsp;</p>
<h1>条件式で使われる主な比較演算子</h1>
<p>条件式の中で用いられる比較演算子には、主に以下の表にて示される演算子を記述することで、式の判定ができます。</p>

<table id="tablepress-70" class="tablepress tablepress-id-70">
<thead>
<tr class="row-1">
	<th class="column-1">No</th><th class="column-2">比較演算子</th><th class="column-3">意味</th>
</tr>
</thead>
<tbody class="row-striping row-hover">
<tr class="row-2">
	<td class="column-1">1</td><td class="column-2">-eq, -ieq, -ceq</td><td class="column-3">等しい</td>
</tr>
<tr class="row-3">
	<td class="column-1">2</td><td class="column-2">-ne, -ine, -cne</td><td class="column-3">等しくない</td>
</tr>
<tr class="row-4">
	<td class="column-1">3</td><td class="column-2">-gt, -igt, -cgt</td><td class="column-3">(左辺が右辺)より大きい</td>
</tr>
<tr class="row-5">
	<td class="column-1">4</td><td class="column-2">-ge, -ige, -cge</td><td class="column-3">(左辺が右辺)以上</td>
</tr>
<tr class="row-6">
	<td class="column-1">5</td><td class="column-2">-lt, -ilt, -clt</td><td class="column-3">(左辺が右辺)より小さい</td>
</tr>
<tr class="row-7">
	<td class="column-1">6</td><td class="column-2">-le, -ile, -cle</td><td class="column-3">(左辺が右辺)以下</td>
</tr>
<tr class="row-8">
	<td class="column-1">7</td><td class="column-2">-like, -ilike, -clike</td><td class="column-3">ワイルドカード(*)と等しい</td>
</tr>
<tr class="row-9">
	<td class="column-1">8</td><td class="column-2">-notlike, -inotlike, -cnotlike</td><td class="column-3">ワイルドカード(*)と等しくない</td>
</tr>
<tr class="row-10">
	<td class="column-1">9</td><td class="column-2">-match, -imatch, -cmatch</td><td class="column-3">正規表現と等しい</td>
</tr>
<tr class="row-11">
	<td class="column-1">10</td><td class="column-2">-notmatch, -inotmatch, -cnotmatch</td><td class="column-3">正規表現と等しくない</td>
</tr>
<tr class="row-12">
	<td class="column-1">11</td><td class="column-2">-contains, -contains, -ccontains</td><td class="column-3">コレクションに含まれている</td>
</tr>
<tr class="row-13">
	<td class="column-1">12</td><td class="column-2">-notcontains, -inotcontains, -cnotcontains</td><td class="column-3">コレクションに含まれていない</td>
</tr>
<tr class="row-14">
	<td class="column-1">13</td><td class="column-2">-in</td><td class="column-3">コレクションの中にある</td>
</tr>
<tr class="row-15">
	<td class="column-1">14</td><td class="column-2">-notin</td><td class="column-3">コレクションの中にない</td>
</tr>
</tbody>
</table>

<p>&nbsp;</p>
<h1>まとめ</h1>
<p>PowerShellにおいてif文を使った条件分岐をするには、を簡単にまとめてみました。</p>
<p>&nbsp;</p>
<p>PowerShellで条件分岐を記述することってあまりないかと思いますが、</p>
<p>スクリプトを作成して、定常処理を自動的に処理をさせたいときなどに使える時が来るので、</p>
<p>参考にしていただけたらと思います。</p>
<p>&nbsp;</p>
<p>最後までお読みいただき、ありがとうございます。</p>
<p>&nbsp;</p>

<p>&nbsp;</p>		<div class="wpulike wpulike-default " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="4927"
					data-ulike-nonce="62c6033a8e"
					data-ulike-type="post"
					data-ulike-template="wpulike-default"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_4927"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>The post <a href="https://dreamparadaisu.com/powershell_21/">【PowerShell】条件分岐を使ってみた～こんなこともできるぞ～</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>
<p>この投稿の関連記事が見つかりませんでした。</p>
</div>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4927</post-id>	</item>
		<item>
		<title>【Powershell】CSVファイルをカッコよく扱ってみる！</title>
		<link>https://dreamparadaisu.com/powershell_20/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=powershell_20</link>
		
		<dc:creator><![CDATA[リョクちゃ]]></dc:creator>
		<pubDate>Thu, 01 Dec 2022 20:57:10 +0000</pubDate>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windowsコマンド]]></category>
		<category><![CDATA[パソコン]]></category>
		<guid isPermaLink="false">https://dreamparadaisu.com/?p=4864</guid>

					<description><![CDATA[<p>どうも！リョクちゃです。 &#160; 今回は、CSVファイルをPowershellで読み込んで、 カッコよく扱った気になれる方法を紹介していきます。 &#160; あまりPowerShellでCSVファイルを読み取って...</p>
The post <a href="https://dreamparadaisu.com/powershell_20/">【Powershell】CSVファイルをカッコよく扱ってみる！</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>

この投稿の関連記事が見つかりませんでした。
</div>
]]></description>
										<content:encoded><![CDATA[<p>どうも！リョクちゃです。</p>
<p>&nbsp;</p>
<p>今回は、CSVファイルをPowershellで読み込んで、</p>
<p>カッコよく扱った気になれる方法を紹介していきます。</p>
<p>&nbsp;</p>
<p>あまりPowerShellでCSVファイルを読み取って、何かすることってないかもしれないですが、</p>
<p>覚えておくと、こんな使い方もあるのかといった知識の向上につながればと思います。</p>
<p>&nbsp;</p>
<p>前回はこちらになります。</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/powershell_19/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2022/05/titel2-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2022/05/titel2-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2022/05/titel2-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2022/05/titel2-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/powershell_19/" class="blog-card-title-link">【PowerShell】WindowsコマンドでいうCDに倣い作業ディレクトリをSet-Locationで変えてみた</a></div><div class="blog-card-excerpt">Windowsコマンドでは、作業ディレクトリを変更するのにCDコマンドを使用していました。PowerShellでも似たコマンドがあり、それはSet-Locationになります。もちろんPowerShellでもCDコマンドは使用できますが、せっかくなので、Set-Locationを使って作業ディレクトリを変えてみました。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/powershell_19/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/powershell_19/" alt="" /></a></div><div class="blog-card-date">2022-05-20 12:47</div></div></div>
<p>&nbsp;</p>
<h1>【準備】CSVファイルの作成</h1>
<p>以下のCSVファイルを事前に作成します。</p>
<p>以降は、作成したCSVファイルを使用していきます。</p>
<figure id="attachment_mmd_4872" class="wp-block-image aligncenter"><img decoding="async" width="260" height="149" src="https://dreamparadaisu.com/wp-content/uploads/2022/11/powershell_csv.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>ファイル名は、test_kakaku.csvとしました。</p>
<p>※ヘッダーはあえて設定していません。</p>
<p>ヘッダー：1行目の列の見出し・タイトル</p>
<p>&nbsp;</p>
<p>ちなみに実行環境には、VSCodeを使用しております。</p>
<p>&nbsp;</p>
<h1>CSVファイルを読込む</h1>
<p>&nbsp;</p>
<p>PowerShellでCSVファイルを読込む方法としてはいくつかあります。</p>

<table id="tablepress-68" class="tablepress tablepress-id-68">
<thead>
<tr class="row-1">
	<th class="column-1">No</th><th class="column-2">コマンド</th><th class="column-3">詳細</th>
</tr>
</thead>
<tbody class="row-striping row-hover">
<tr class="row-2">
	<td class="column-1">1</td><td class="column-2">ConvertFrom-Csv</td><td class="column-3">CSVファイルのデータをオブジェクトとして作成</td>
</tr>
<tr class="row-3">
	<td class="column-1">2</td><td class="column-2">Import-Csv</td><td class="column-3">CSVファイルのデータをカスタムオブジェクトとして作成</td>
</tr>
</tbody>
</table>
<!-- #tablepress-68 from cache -->
<p>&nbsp;</p>
<p>ここでは、Import-Csvを使っていきます。</p>
<p>&nbsp;</p>
<p>使い方は簡単です。</p>
<p>&nbsp;</p>
<p>以下の構文となっており、基本的にはCSVファイルのパスをオプションである</p>
<p>引数に渡してあげることで簡単にCSVファイルの中身を読み取ってくれます。</p>
<p>&nbsp;
</p><pre class="urvanov-syntax-highlighter-plain-tag">Import-Csv -Path -Delimiter -Header -Encoding</pre><p>
&nbsp;</p>
<ul>

<li>-Path : CSVファイルのパス</li>

<li>-Delimiter : 区切り文字　デフォルトは,(カンマ)</li>

<li>-Header : ヘッダーの設定ができます。</li>

<li>-Encoding : エンコードの指定ができます。</li>
</ul>
<p>&nbsp;</p>
<p>先ほど作成した、CSVファイルをまずは読み込んでみるには、</p>
<p>&nbsp;
</p><pre class="urvanov-syntax-highlighter-plain-tag">Import-Csv -Path "C:\work\csv\test_kakaku.csv" -Encoding utf8</pre><p>
&nbsp;</p>
<p>上述になり、-PathでCSVファイルの保存されているパスを渡しています。筆者の環境では、</p>
<p>Cドライブにworkフォルダを作成し、更にcsvフォルダを作成し、その中にCSVファイルを</p>
<p>保存しています。</p>
<p>&nbsp;</p>
<p>-Encodingには、csvファイルを保存した時のエンコードである、utf8を指定しています。</p>
<p>&nbsp;</p>
<p>以下のような結果として、Import-Csvの戻り値を受け取ることができます。</p>
<p>&nbsp;
</p><pre class="urvanov-syntax-highlighter-plain-tag">@{りんご=ばなな; 96=106} @{りんご=みかん; 96=238} @{りんご=ゆず; 96=100} @{りんご=れもん; 96=96}</pre><p>
&nbsp;</p>
<h1>カッコよく扱う？！</h1>
<p>Import-Csvの使い方がわかったので、次はカッコよく読み取った結果を扱えるように</p>
<p>していきます。</p>
<p>&nbsp;</p>
<p>結論としては、読み取った結果を辞書型の変数に格納して扱う方法になります。</p>
<p>何かと便利で、辞書に格納しておくことで、効率的に値を取り出すことができます。</p>
<p>※辞書型:PowerShellでは連想配列(ハッシュ、hash)と言われています。</p>
<p>&nbsp;</p>
<p>今回作成したCSVファイルのように2つの列で構成されており、1列目の内容が2列目の内容に意味のあるものの場合や同様の法則性がある且つ1列目が重複していなければ、辞書型変数に格納することができ、前述したようにカッコよく扱える?!はずです。</p>
<p>&nbsp;</p>
<p>順を追って解説していきます。</p>
<p>&nbsp;</p>
<h2>ヘッダーがないCSVファイルにヘッダーを付加して取得</h2>
<p>作成したCSVファイルには各列にタイトル、いわゆるヘッダーが付加されていませんでした。</p>
<p>このままでは、後々の処理が手間になるので、Import-CSVにオプションを加えて、</p>
<p>ヘッダーを付加します。</p>
<p>&nbsp;
</p><pre class="urvanov-syntax-highlighter-plain-tag">Import-Csv -Path "C:\work\csv\test_kakaku.csv" -Header "id", "name" -Encoding utf8</pre><p>
&nbsp;</p>
<p>ヘッダーを付加するには、-Headerの後に、カンマ区切りで列名を</p>
<p>&#8220;&#8221;(ダブルクウォーテーション)で囲んだタイトルを設定していきます。</p>
<p>今回は、1列目をid、2列目をnameとしています。</p>
<p>&nbsp;</p>
<p>実行結果は以下のようになります。
</p><pre class="urvanov-syntax-highlighter-plain-tag">@{id=りんご; name=96} @{id=ばなな; name=106} @{id=みかん; name=238} @{id=ゆず; name=100} @{id=れもん; name=96}</pre><p>
&nbsp;</p>
<h2>辞書型変数への格納準備</h2>
<p>辞書型変数へ格納するために事前に空の辞書型変数を作成しておきます。
</p><pre class="urvanov-syntax-highlighter-plain-tag">$dict_res = @{}</pre><p>
&nbsp;</p>
<h2>行ごとの繰り返し処理はforeachで</h2>
<p>CSVファイルは1行ごとに処理をしていくの、foreach文を活用します。
</p><pre class="urvanov-syntax-highlighter-plain-tag">foreach ($line in $test_csv) {
    Write-Host $line.id
    Write-Host $line.name
}</pre><p>
&nbsp;</p>
<p>Write-Hostでは、行ごとの-Headerオプションで設定した名称を使い、</p>
<p>記述されている内容を出力しています。</p>
<p>&nbsp;</p>
<p>$line変数には、行ごとの内容が1行ずつ格納されています。</p>
<div class="sp-info">$line.-Headerオプションで設定した名称</div>
<p>とすることで、列ごとの情報が取得できます。</p>
<p>&nbsp;</p>
<p>実行結果は以下のようになります。
</p><pre class="urvanov-syntax-highlighter-plain-tag">#-----1行目-----
りんご
96
#-----2行目-----
ばなな
106
#-----3行目-----
みかん
238
#-----4行目-----
ゆず
100
#-----5行目-----
れもん
96</pre><p>
&nbsp;</p>
<h2>辞書型変数へ格納</h2>
<p>辞書型変数への格納は、foreach文内で行います。</p>
<p>念のため、格納前に既に同じキーを持つ値が格納されていないか、</p>
<p>1列目に対してチェックする処理も織り交ぜていきます。</p>
<p>&nbsp;</p>
<p>※今回の例ではありませんが、実践で活用する際にはあると</p>
<p>異常値をはじけるので助かります。</p>
<p>&nbsp;
</p><pre class="urvanov-syntax-highlighter-plain-tag">foreach ($line in $test_csv) {
    if ($dict_res.ContainsKey($line.id) -ne $true) {
        $dict_res[$line.id] = $line.name
    }
}</pre><p>
dict_res.ContainsKey($line.id)で辞書型変数に1列目の情報が含まれているか、</p>
<p>どうかをチェックしています。</p>
<p>&nbsp;</p>
<p>含まれていなければ、辞書型変数へ格納し、含まれている場合は格納しません。</p>
<p>※既に含まれている場合は、最初の情報を正とするので、実は後の情報が正だった場合には、</p>
<p>気をつけないといけません。</p>
<p>&nbsp;</p>
<p>実行結果として、&#8221;りんご&#8221;と指定して値を取り出してみます。
</p><pre class="urvanov-syntax-highlighter-plain-tag">Write-Host $dict_res['りんご']

#-----実行結果-----
96</pre><p>
&nbsp;</p>
<h1>まとめ</h1>
<p>CSVファイルを読込んでカッコよく?!扱う方法を簡単に紹介しました。</p>
<p>辞書型変数に格納することで値の取り出しはわかりやすく且つシンプルな表現に</p>
<p>なったのではないでしょうか？</p>
<p>&nbsp;</p>
<p>プログラミング言語において、様々な文法や書き方を学ぶことは、いろいろな個所で</p>
<p>応用出来たり、工夫次第で化けたりするので、日頃から頭にとどめておくことができればいいのかなと思っています。</p>
<p>&nbsp;</p>
<p>最後まで、お読みいただき、ありがとうございます。</p>

<p>&nbsp;</p>
<p>&nbsp;</p>		<div class="wpulike wpulike-default " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="4864"
					data-ulike-nonce="2a3e685a9c"
					data-ulike-type="post"
					data-ulike-template="wpulike-default"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_4864"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>The post <a href="https://dreamparadaisu.com/powershell_20/">【Powershell】CSVファイルをカッコよく扱ってみる！</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>
<p>この投稿の関連記事が見つかりませんでした。</p>
</div>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4864</post-id>	</item>
		<item>
		<title>【PowerShell】WindowsコマンドでいうCDに倣い作業ディレクトリをSet-Locationで変えてみた</title>
		<link>https://dreamparadaisu.com/powershell_19/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=powershell_19</link>
		
		<dc:creator><![CDATA[リョクちゃ]]></dc:creator>
		<pubDate>Fri, 20 May 2022 03:47:28 +0000</pubDate>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windowsコマンド]]></category>
		<category><![CDATA[パソコン]]></category>
		<guid isPermaLink="false">https://dreamparadaisu.com/?p=4256</guid>

					<description><![CDATA[<p>どうも！リョクちゃです。 &#160; 今回は、Windowsコマンドにもある、CDコマンド これをPowerShellでも似たコマンドレットが提供されているので 紹介していきます。 ※コマンドレット ⇒　PowerSh...</p>
The post <a href="https://dreamparadaisu.com/powershell_19/">【PowerShell】WindowsコマンドでいうCDに倣い作業ディレクトリをSet-Locationで変えてみた</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>

この投稿の関連記事が見つかりませんでした。
</div>
]]></description>
										<content:encoded><![CDATA[<p>どうも！リョクちゃです。</p>
<p>&nbsp;</p>
<p>今回は、Windowsコマンドにもある、CDコマンド</p>
<p>これをPowerShellでも似たコマンドレットが提供されているので</p>
<p>紹介していきます。</p>
<p>※コマンドレット ⇒　PowerShellのコマンドはコマンドレットと呼ばれるそうです。</p>
<p>&nbsp;</p>
<p>ちなみに前回はこちら</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/powershell_18/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2022/05/powershell_title_18-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2022/05/powershell_title_18-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2022/05/powershell_title_18-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2022/05/powershell_title_18-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/powershell_18/" class="blog-card-title-link">【PowerShell】任意のファイルのフルパスを取得する～Resolve-Path～</a></div><div class="blog-card-excerpt">PowerShellでフルパスを取得する方法として、(Get-ChildItem).Fullnameを使った方法を以前に紹介しました。今回は、Resolve-Pathを使った方法を紹介します。使い方は至ってシンプルですが異なる方法として、一方が使えなくなった時の活用方法として覚えていただければと思います。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/powershell_18/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/powershell_18/" alt="" /></a></div><div class="blog-card-date">2022-05-06 04:47</div></div></div>
<p><a href="https://px.a8.net/svt/ejp?a8mat=3HKUAR+C37VZM+4TE8+5Z6WX" rel="nofollow">
<img decoding="async" class="aligncenter" src="https://www26.a8.net/svt/bgt?aid=210924387731&amp;wid=001&amp;eno=01&amp;mid=s00000022472001004000&amp;mc=1" alt="" width="468" height="60" border="0" /></a></p>
<img decoding="async" class="aligncenter" src="https://www11.a8.net/0.gif?a8mat=3HKUAR+C37VZM+4TE8+5Z6WX" alt="" width="1" height="1" border="0" />
<p>&nbsp;</p>
<h1>CDコマンドとは……？</h1>
<p>&nbsp;</p>
<p>こちらについては、以下記事でも以前に取り上げました。</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/windows_command_bat_01/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2021/05/bat_mkdi_10-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2021/05/bat_mkdi_10-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2021/05/bat_mkdi_10-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2021/05/bat_mkdi_10-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/windows_command_bat_01/" class="blog-card-title-link">【Windowsコマンド】フォルダの作成・移動をバッチでしてみる</a></div><div class="blog-card-excerpt">Windowsコマンドを使用して、フォルダを作成、フォルダの移動(変更)について、バッチファイルを作成しながら簡単に紹介しています。Windowsコマンドを使って作業時間の短縮化を目指しましょう。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/windows_command_bat_01/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/windows_command_bat_01/" alt="" /></a></div><div class="blog-card-date">2021-05-19 17:30</div></div></div>
<p>&nbsp;</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/windows_command_bat_07/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2022/02/windows_cmd_1-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2022/02/windows_cmd_1-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2022/02/windows_cmd_1-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2022/02/windows_cmd_1-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/windows_command_bat_07/" class="blog-card-title-link">【Windowsコマンド】ドライブ間の移動をするにはどうしたらいいか～CDコマンドに学ぶ～</a></div><div class="blog-card-excerpt">以前にフォルダ間の移動・作業ディレクトリの移動については、CDコマンドを使うと記事で触れました()。ドライブ内でフォルダの移動はできますが、ドライブを超えたフォルダには移動することができなかったと思います。今回はCDコマンドを使ってドライブ間を移動する方法を簡単に紹介しています。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/windows_command_bat_07/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/windows_command_bat_07/" alt="" /></a></div><div class="blog-card-date">2022-02-08 02:36</div></div></div>
<p>&nbsp;</p>
<p>使い方としては、</p>
<ol>

<li>Windows環境でコマンドプロンプトを起動します。</li>

<li>立ち上がったウィンドウに cd を入力後、Enterキー押下</li>

<li>作業ディレクトリを移動することができます。</li>
</ol>
<div class="sp-info">cd </div>
<p>&nbsp;</p>
<p>例) デスクトップに移動したい場合
</p><pre class="urvanov-syntax-highlighter-plain-tag">cd C:\Users\Test_1\Desktop</pre><p>
&nbsp;</p>
<p>※Test_1はユーザー名になります。</p>
<p>&nbsp;</p>
<p>以降、例えば、mkdirでフォルダ作成する場合は</p>
<p>パス指定なしでフォルダを作成すると、作業ディレクトリ内で作成されます。</p>
<p>&nbsp;</p>
<p>ちなみに作業ディレクトリに作りたくない場合は、</p>
<p><span class="marker-under">パス指定してフォルダを作成する必要</span>があります。</p>
<p>&nbsp;</p>
<h1>Set-Locationを使ったディレクトリ移動</h1>
<p>さて、ここからはPowerShellで作業ディレクトリを変更する場合に使える、</p>
<p>Set-Locationについて述べていきます。</p>
<p>&nbsp;</p>
<p>もちろん、先ほど説明したWindowsコマンドのCDコマンドも使えます。</p>
<p>せっかくなので、Set-Locationも使ってみましょう。</p>
<p>&nbsp;</p>
<p>PowerShellでは、作業ディレクトリを変更する場合に、前述したSet-Locationが</p>
<p>提供されています。</p>
<p>&nbsp;</p>
<p>これは、変更先のロケーションを作業ディレクトリとして設定をしてくれます。</p>
<p>&nbsp;</p>
<p><span style="text-decoration: underline"><strong>使い方</strong></span></p>
<div class="sp-info">Set-Location </div>
<div></div>
<div>例えば、デスクトップを設定したい場合</div>
<div>
<pre class="urvanov-syntax-highlighter-plain-tag">Set-Location C:\Users\Test_1\Desktop</pre>
</div>
<p>となります。</p>
<h1>まとめ</h1>
<p>WindowsコマンドでいうCDのPowerShell版のコマンドレット</p>
<p>Set-Locationについて、ざっくりと紹介しました。</p>
<p>&nbsp;</p>
<p>もしPowerShellを使ってみようと思っているなら、ぜひ使った際に
今回のコマンドレットであるSet-Locationを使ってみて下さい。</p>
<p>&nbsp;</p>
<p>最後までお読みいただき、ありがとうございます。</p>

<p>&nbsp;</p>		<div class="wpulike wpulike-default " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="4256"
					data-ulike-nonce="6dbb1be782"
					data-ulike-type="post"
					data-ulike-template="wpulike-default"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_4256"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>The post <a href="https://dreamparadaisu.com/powershell_19/">【PowerShell】WindowsコマンドでいうCDに倣い作業ディレクトリをSet-Locationで変えてみた</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>
<p>この投稿の関連記事が見つかりませんでした。</p>
</div>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4256</post-id>	</item>
		<item>
		<title>【PowerShell】正規表現を使って電話番号をマッチングさせてみた</title>
		<link>https://dreamparadaisu.com/powershell_17/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=powershell_17</link>
		
		<dc:creator><![CDATA[リョクちゃ]]></dc:creator>
		<pubDate>Wed, 27 Apr 2022 23:49:16 +0000</pubDate>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[正規表現]]></category>
		<guid isPermaLink="false">https://dreamparadaisu.com/?p=4135</guid>

					<description><![CDATA[<p>どうも！リョクちゃです。 ご無沙汰しております。 &#160; 月日が流れてなんと1カ月更新できていなかったです。。。すみません！ 気を取り直して、今回は正規表現をなんとPowerShellで使ってみた記事になります。 ...</p>
The post <a href="https://dreamparadaisu.com/powershell_17/">【PowerShell】正規表現を使って電話番号をマッチングさせてみた</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>

この投稿の関連記事が見つかりませんでした。
</div>
]]></description>
										<content:encoded><![CDATA[<p>どうも！リョクちゃです。</p>
<p>ご無沙汰しております。</p>
<p>&nbsp;</p>
<p>月日が流れてなんと1カ月更新できていなかったです。。。すみません！</p>
<p>気を取り直して、今回は正規表現をなんとPowerShellで使ってみた記事になります。</p>
<p>&nbsp;</p>
<p>ちなみに前回はこちら</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/powershell_16/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2022/02/powershell_39-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2022/02/powershell_39-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2022/02/powershell_39-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2022/02/powershell_39-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/powershell_16/" class="blog-card-title-link">【PowerShell】関数を1行で2回関数を呼び出すには？！～その策は邪道なのか～</a></div><div class="blog-card-excerpt">ふとPowerShellでスクリプトを書いていると行数を短くしたいという欲に駆られることはないでしょうか？例えば、いくつか関数を作っていて、1つの変数にいくつかの関数を組み合わせた答えを代入したいときとか。そういったときに1行で2回関数を呼び出す記述を紹介していきます。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/powershell_16/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/powershell_16/" alt="" /></a></div><div class="blog-card-date">2022-02-27 18:56</div></div></div>
<p>&nbsp;</p>
<p style="text-align: center"><a href="//af.moshimo.com/af/c/click?a_id=3389582&amp;p_id=2181&amp;pc_id=4554&amp;pl_id=29594&amp;guid=ON" rel="nofollow"><img fetchpriority="high" decoding="async" alt="" style="border: none" src="//image.moshimo.com/af-img/1597/000000029594.png" width="640" height="100"></a>
<img loading="lazy" decoding="async" alt="" style="border: none" src="//i.moshimo.com/af/i/impression?a_id=3389582&amp;p_id=2181&amp;pc_id=4554&amp;pl_id=29594" width="1" height="1"></p>
<p>&nbsp;</p>
<h1>正規表現とは？</h1>
<p>&nbsp;</p>
<p>調べてみると</p>
<blockquote><b>正規表現</b>（せいきひょうげん、<a title="英語" href="https://ja.wikipedia.org/wiki/%E8%8B%B1%E8%AA%9E">英</a>: <span lang="en">regular expression</span>）は、<a title="文字列" href="https://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97%E5%88%97">文字列</a>の集合を一つの文字列で表現する方法の一つである。<ruby class="yomigana"><b>正則表現</b>
<span class="rp">（</span>
<rt>せいそくひょうげん</rt>
<span class="rp">）</span></ruby>とも呼ばれ、<a title="形式言語" href="https://ja.wikipedia.org/wiki/%E5%BD%A2%E5%BC%8F%E8%A8%80%E8%AA%9E">形式言語</a>理論の分野では比較的こちらの訳語の方が使われる。まれに<ruby class="yomigana"><b>正規式</b>
<span class="rp">（</span>
<rt>せいきしき</rt>
<span class="rp">）</span></ruby>と呼ばれることもある。
<p style="text-align: right"><a href="https://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE">出典：フリー百科事典『ウィキペディア（Wikipedia）』</a></p>
</blockquote>
<p>となっています。</p>
<p>&nbsp;</p>
<p>かいつまんで、解釈すると</p>
<p>とある<strong>文字列</strong>の中から<strong>あるパターン</strong>(<span style="text-decoration: underline">正規表現のパターン</span>)に</p>
<p><strong>一致する文字列</strong>を検索する際に活用される<span style="text-decoration: underline">表現法のひとつ</span>になります。</p>
<p>&nbsp;</p>
<p>正規表現については、おそらく下記URLの記事がとても参考になります。</p>
<p>あえて、ここでは<span style="text-decoration: underline">詳細には記載していませんのでご了承ください</span>。</p>
<p><a href="https://userweb.mnet.ne.jp/nakama/#about">サルにもわかる正規表現入門</a></p>
<p>&nbsp;</p>
<h2>他言語での正規表現に関する記事</h2>
<p>正規表現については、他の言語でも活用した記事を紹介していました。</p>
<p>&nbsp;</p>
<h3>VB.Net</h3>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/visualbasic_32/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2020/11/regular_expression_3-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2020/11/regular_expression_3-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2020/11/regular_expression_3-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2020/11/regular_expression_3-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/visualbasic_32/" class="blog-card-title-link">【VB.Net】正規表現を使ってMACアドレスを判定する</a></div><div class="blog-card-excerpt">MACアドレスを正規表現を使って判定する方法を紹介しています。MACアドレスは、0~9の半角数字にA~F(a~f)の半角英字で構成されます。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/visualbasic_32/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/visualbasic_32/" alt="" /></a></div><div class="blog-card-date">2020-11-08 01:43</div></div></div>
<p>&nbsp;</p>
<h1>PowerShellで正規表現を使うには？</h1>
<p>&nbsp;</p>
<p>正規表現をPowerShellで使うには、</p>
<p>&nbsp;</p>
<div class="sp-info">&#8220;検索したい文字列&#8221; -match &#8220;正規表現パターン&#8221;</div>
<p>&nbsp;</p>
<p>と記述することで検索したい文字列が正規表現のパターンにマッチしているか</p>
<p>どうかを判定し、True/Falseで結果を返してくれます。</p>
<p>&nbsp;</p>
<p><strong>-match</strong>が肝です。</p>
<h2>電話番号</h2>
<p>電話番号には、<strong>固定電話</strong>や<strong>携帯電話、PHS</strong>などがあります。</p>
<p>&nbsp;</p>
<h3>固定電話</h3>
<p>&nbsp;</p>
<p><a href="https://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/q_and_a.html#q2">総務省のページ</a>より</p>
<p>初めの0、国内プレフィックスから始まり。</p>
<p>&nbsp;</p>
<p>・市外局番(1～4桁)</p>
<p>・市内局番(1～4桁)</p>
<p>&nbsp;</p>
<p>・加入者番号(4桁)</p>
<p>&nbsp;</p>
<p>となっています。</p>
<p>つまりは、</p>
<p>&nbsp;</p>
<div class="sp-primary">0 -【市外局番(1～4桁)市内局番(1~4桁)】- 加入者番号(4桁)</div>
<p>&nbsp;</p>
<ul>

<li>
<div class="sp-info"><span style="font-size: 20px">0-▲-××××-□□□□</span></div></li>

<li>
<div class="sp-info"><span style="font-size: 20px">0-▲▲-×××-□□□□</span></div></li>

<li>
<div class="sp-info"><span style="font-size: 20px">0-▲▲▲-××-□□□□</span></div></li>

<li>
<div class="sp-info"><span style="font-size: 20px">0-▲▲▲▲-×-□□□□</span></div></li>
</ul>
<p>&nbsp;</p>
<p>0 ⇒ 国内プレフィックス</p>
<p>▲ ⇒ 市外局番</p>
<p>× ⇒ 市内局番</p>
<p>□ ⇒ 加入者番号</p>
<p>&nbsp;</p>
<p>のパターンが現在あるようです。</p>
<p>&nbsp;</p>
<h3>携帯電話・PHS</h3>
<p>&nbsp;</p>
<p>こちらも<a href="https://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/q_and_a.html#q5">総務省のページより</a></p>
<p>070、080や090から始まる11桁の番号を携帯電話・PHSとしているようです。</p>
<p>&nbsp;</p>
<p>元々070はPHSで使われていた番号なのですが、最近は携帯電話の番号を変更することなく、</p>
<p>移すことができる制度、MNP(携帯電話番号ポータビリティ)によって</p>
<p>携帯電話との区別がなくなってきました。<span style="font-size: 14px">※平成26年10月1日施行</span></p>
<p>&nbsp;</p>
<p>パターンとしては</p>
<ul>

<li>
<div class="sp-info"><span style="font-size: 20px">070 &#8211; ○○○○ &#8211; ○○○○</span></div></li>

<li>
<div class="sp-info"><span style="font-size: 20px">080 &#8211; ○○○○ &#8211; ○○○○</span></div></li>

<li>
<div class="sp-info"><span style="font-size: 20px">090 &#8211; ○○○○ &#8211; ○○○○</span></div></li>
</ul>
<p>になります。</p>
<p>&nbsp;</p>
<h1>電話番号の正規表現</h1>
<p>&nbsp;</p>
<p>ここからは前述した固定電話と携帯電話・PHSの正規表現を構築していきます。</p>
<p>&nbsp;</p>
<h2>固定電話の正規表現</h2>
<p>&nbsp;</p>
<p>固定電話の場合は、4パターンありました。</p>
<p>そのため正規表現は、以下のような形になります。</p>
<p>&nbsp;</p>
<p><strong>^0(<span style="color: #ff9900">(</span>[0-9]-[0-9]{4}<span style="color: #339966">|</span>[0-9]{2}-[0-9]{3}<span style="color: #339966">|</span>[0-9]{3}-[0-9]{2}<span style="color: #339966">|</span>[0-9]{4}-[0-9]<span style="color: #ff9900">)</span></strong></p>
<p><strong>-[0-9]{4})$</strong></p>
<p>&nbsp;</p>
<p>正規表現に使われる主な記号は以下の表にまとめています。</p>

<table id="tablepress-67" class="tablepress tablepress-id-67">
<thead>
<tr class="row-1">
	<th class="column-1">No</th><th class="column-2">記号</th><th class="column-3">機能</th>
</tr>
</thead>
<tbody class="row-striping row-hover">
<tr class="row-2">
	<td class="column-1">1</td><td class="column-2">^</td><td class="column-3">始まりを表す。</td>
</tr>
<tr class="row-3">
	<td class="column-1">2</td><td class="column-2">$</td><td class="column-3">終わりを表す。</td>
</tr>
<tr class="row-4">
	<td class="column-1">3</td><td class="column-2">[0-9]</td><td class="column-3">マッチする文字列の範囲を指定。<br />
(今回の場合、文字列内に0～9が含まれているか)</td>
</tr>
<tr class="row-5">
	<td class="column-1">4</td><td class="column-2">|</td><td class="column-3">ORのようなもの<br />
右辺と左辺に書かれたパターンのどれかにマッチするかどうか。</td>
</tr>
<tr class="row-6">
	<td class="column-1">5</td><td class="column-2">{n}</td><td class="column-3">n回の繰り返しにマッチするか</td>
</tr>
<tr class="row-7">
	<td class="column-1">6</td><td class="column-2">-</td><td class="column-3">ハイフンがマッチするか。</td>
</tr>
</tbody>
</table>
<!-- #tablepress-67 from cache -->
<p>&nbsp;</p>
<p>最初は国内プレフィックスから始まるため、0を記述しています。</p>
<p><span style="color: #ff6600">オレンジ()</span>で囲まれた部分が、<span style="text-decoration: underline">市外局番/市内局番の組み合わせを表す</span>正規表現になります。</p>
<p>以降に続く、<strong>-[0-9]{4}</strong>が加入者番号を表現した記述になります。</p>
<p>&nbsp;</p>
<h2>携帯電話・PHSの正規表現</h2>
<p>一方で携帯電話・PHSは以下のような形になります。</p>
<p>&nbsp;</p>
<p><strong>^((070|080|090)-[0-9]{4}-[0-9]{4})$</strong></p>
<p>&nbsp;</p>
<p>となります。</p>
<p>&nbsp;</p>
<p><strong>(070|080|090)</strong>では、はじまりが<strong>070</strong>、<strong>080</strong>、<strong>090</strong>であるかどうかを表しています。</p>
<p>後続の<strong>-[0-9]{4}</strong>でハイフンから始まり<span style="text-decoration: underline">4桁の0～9で始まる数字</span>か</p>
<p>どうかを判定する表現になります。</p>
<p>&nbsp;</p>
<h1>正規表現を使って電話番号をマッチング</h1>
<p>&nbsp;</p>
<p>先で構築した正規表現のパターンを使って、実際に入力された情報が</p>
<p>固定電話か携帯電話・PHSかどうか試してみます。</p>
<p>&nbsp;</p>
<p>固定電話：01-1234-5678を例にコードを書いていきます。
</p><pre class="urvanov-syntax-highlighter-plain-tag">$input = "01-1234-5678"
$tel_ptr = "^0(([0-9]-[0-9]{4}|[0-9]{2}-[0-9]{3}|[0-9]{3}-[0-9]{2}|[0-9]{4}-[0-9])-[0-9]{4})$"

Write-Host $input -match $tel_ptr
# True/Falseが返されます。 ←　今回の場合、 True</pre><p>
&nbsp;</p>
<p>固定電話：012-234-5678
</p><pre class="urvanov-syntax-highlighter-plain-tag">$input = "012-234-5678"
$tel_ptr = "^0(([0-9]-[0-9]{4}|[0-9]{2}-[0-9]{3}|[0-9]{3}-[0-9]{2}|[0-9]{4}-[0-9])-[0-9]{4})$"

Write-Host $input -match $tel_ptr
# True/Falseが返されます。 ←　今回の場合、 True</pre><p>
&nbsp;</p>
<p>固定電話の正規表現で携帯電話をマッチングさせてみると</p>
<p>&nbsp;</p>
<p>固定電話：012-3456-7890
</p><pre class="urvanov-syntax-highlighter-plain-tag">$input = "012-3456-7890"
$tel_ptr = "^0(([0-9]-[0-9]{4}|[0-9]{2}-[0-9]{3}|[0-9]{3}-[0-9]{2}|[0-9]{4}-[0-9])-[0-9]{4})$"

Write-Host $input -match $tel_ptr
# True/Falseが返されます。 ←　今回の場合、 False</pre><p>
Falseとなります。</p>
<p>&nbsp;</p>
<p>次は、携帯電話・PHSのパターンを使って試していきます。</p>
<p>&nbsp;</p>
<p>携帯電話：012-3456-7890
</p><pre class="urvanov-syntax-highlighter-plain-tag">$input = "012-3456-7890"
$tel_ptr = "^((070|080|090)-[0-9]{4}-[0-9]{4})$"

Write-Host $input -match $tel_ptr
# True/Falseが返されます。 ←　今回の場合、 False</pre><p>
&nbsp;</p>
<p>携帯電話：070-3456-7890
</p><pre class="urvanov-syntax-highlighter-plain-tag">$input = "070-3456-7890"
$tel_ptr = "^((070|080|090)-[0-9]{4}-[0-9]{4})$"

Write-Host $input -match $tel_ptr
# True/Falseが返されます。 ←　今回の場合、 True</pre><p>
&nbsp;</p>
<p>このような形で正規表現にマッチングしていれば、Trueを返し、</p>
<p>マッチングしていなければ、Falseを返します。</p>
<p>&nbsp;</p>
<h1>まとめ</h1>
<p>以上、PowerShellで正規表現を使って電話番号をマッチングさせてみました。</p>
<p>&nbsp;</p>
<p>正規表現、最初は戸惑いや難しくってついていけないといった問題に直面しますが、</p>
<p>慣れてくると、意外と便利ではないか。これは使えるな！となってくると思うので</p>
<p>諦めずに学びを止めないでください。</p>
<p>&nbsp;</p>
<p>電話番号以外にも法則性のある文字列であれば、正規表現が作りやすいので</p>
<p>一度読者の方も試していただけたらなと思います。</p>
<p>&nbsp;</p>
<p>代表例で言うと、郵便番号やMACアドレス、西暦などでしょうか。</p>
<p>&nbsp;</p>
<p>最後までお読みいただき、ありがとうございます。</p>
<p>引き続きよろしくお願いいたします。</p>

<p>&nbsp;</p>		<div class="wpulike wpulike-default " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="4135"
					data-ulike-nonce="0b69f98358"
					data-ulike-type="post"
					data-ulike-template="wpulike-default"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_4135"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>The post <a href="https://dreamparadaisu.com/powershell_17/">【PowerShell】正規表現を使って電話番号をマッチングさせてみた</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>
<p>この投稿の関連記事が見つかりませんでした。</p>
</div>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4135</post-id>	</item>
		<item>
		<title>【PowerShell】関数を1行で2回関数を呼び出すには？！～その策は邪道なのか～</title>
		<link>https://dreamparadaisu.com/powershell_16/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=powershell_16</link>
		
		<dc:creator><![CDATA[リョクちゃ]]></dc:creator>
		<pubDate>Sun, 27 Feb 2022 09:56:08 +0000</pubDate>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[パソコン]]></category>
		<category><![CDATA[プログラム]]></category>
		<guid isPermaLink="false">https://dreamparadaisu.com/?p=4002</guid>

					<description><![CDATA[<p>どうも！リョクちゃです。 &#160; 今回は、PowerShellのスクリプト内で複数の関数を作成して活用する場合に、 効率的？コードをスッキリとできる方法を紹介していきます。 &#160; 何かとプログラムを書いてい...</p>
The post <a href="https://dreamparadaisu.com/powershell_16/">【PowerShell】関数を1行で2回関数を呼び出すには？！～その策は邪道なのか～</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>

この投稿の関連記事が見つかりませんでした。
</div>
]]></description>
										<content:encoded><![CDATA[<p>どうも！リョクちゃです。</p>
<p>&nbsp;</p>
<p>今回は、PowerShellのスクリプト内で複数の関数を作成して活用する場合に、</p>
<p>効率的？コードをスッキリとできる方法を紹介していきます。</p>
<p>&nbsp;</p>
<p>何かとプログラムを書いていると、コードをもう少し短くできないか？</p>
<p>といったことを考える時がくるのではないでしょうか？</p>
<p>そんな時にこんな方法もあったなと頭の片隅にでも残していただけたらなと思います。</p>
<p>&nbsp;</p>
<p>ちなみに前回はこちら</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/powershell_15/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2022/02/powershell_38-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2022/02/powershell_38-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2022/02/powershell_38-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2022/02/powershell_38-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/powershell_15/" class="blog-card-title-link">【PowerShell】外部アプリケーションを呼び出してみよう～.exeを実行させる～</a></div><div class="blog-card-excerpt">Windowsコマンド同様、batでも外部アプリケーションが呼び出せるようにPowerShellでも実は外部アプリケーションを呼び出すことができます。ふと外部アプリケーションを呼び出したいときにPowerShellでもできる方法を紹介していきます。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/powershell_15/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/powershell_15/" alt="" /></a></div><div class="blog-card-date">2022-02-19 11:24</div></div></div>
<p>&nbsp;</p>
<p><a href="https://px.a8.net/svt/ejp?a8mat=3HKUAR+C37VZM+4TE8+5Z6WX" rel="nofollow">
<img loading="lazy" decoding="async" class="aligncenter" src="https://www26.a8.net/svt/bgt?aid=210924387731&amp;wid=001&amp;eno=01&amp;mid=s00000022472001004000&amp;mc=1" alt="" width="468" height="60" border="0" /></a></p>
<img loading="lazy" decoding="async" class="aligncenter" src="https://www11.a8.net/0.gif?a8mat=3HKUAR+C37VZM+4TE8+5Z6WX" alt="" width="1" height="1" border="0" />
<h1>1行で関数を2度呼ぶ</h1>
<h2>関数のおさらい</h2>
<p>PowerShellにおける関数は以下のような記述で作成することができました。
</p><pre class="urvanov-syntax-highlighter-plain-tag">function 関数名(引数1,引数2) {
    処理
}</pre><p>
&nbsp;</p>
<p>関数については、以下の記事でも紹介していました。</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/powershell_02/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2022/01/powershell_7-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2022/01/powershell_7-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2022/01/powershell_7-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2022/01/powershell_7-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/powershell_02/" class="blog-card-title-link">【PowerShell】変数や定数そして関数の宣言・作り方～基礎を固めよう～</a></div><div class="blog-card-excerpt">PowerShellにも変数や定数、そして関数といったプログラミングにおける基本となる手法や技法があります。そんな中でも触りとなるモノについてまとめています。意外と何でもできてしまうPowerShell、何らかの参考になれば嬉しいです。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/powershell_02/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/powershell_02/" alt="" /></a></div><div class="blog-card-date">2022-01-20 06:15</div></div></div>
<p>&nbsp;</p>
<p>関数は、同じ処理が1つのスクリプトで何回も続くときに作ったり、</p>
<p>処理を細かくわけて、わかりやすくしたいときに作ります。(一般的には)</p>
<p>&nbsp;</p>
<p>例えば、</p>
<p>スクリプト内で値の足し算を行いたい場合、
</p><pre class="urvanov-syntax-highlighter-plain-tag">function Add-Value($val1, $val2) {
    return  $val1 + $val2
}</pre><p>
&nbsp;</p>
<p>こんな関数を作っておくことで、後は同様の処理が来た時に、</p>
<p>この関数を呼べば同じ処理を何回も書かなくて済みますね。(例が悪かったかもです。)</p>
<p>&nbsp;</p>
<p>下の関数の方がわかりやすいかもです。
</p><pre class="urvanov-syntax-highlighter-plain-tag">feunction Find-Even($val1) {
    if ( $val1 % 2 -eq 0) {
        return 1
    } else {
        return 0
    }
}</pre><p>
これだったら関数として作る意味はありそうですね。</p>
<p>何回も条件分岐を書いていくよりは、1つ関数として作っておいた方が便利ですね。</p>
<p>コードも短くなりますね。</p>
<p>&nbsp;</p>
<p>このようにして関数を駆使して、スクリプトを作っていく方が、複雑な処理になる場合は</p>
<p>おススメです。</p>
<p>&nbsp;</p>
<p>処理を分けて関数を作っていくと、いろんな関数ができてきて、</p>
<p>ときに変数に、値を&#8221;ある値から加工した状態&#8221;で</p>
<p>変数に格納したいといった場合が出てくるかと思います。</p>
<p>&nbsp;</p>
<p>このような場合、一方の処理は<strong>関数A</strong>、関数Aでの戻り値を使って</p>
<p>別の処理を<strong>関数B</strong>に行わせて、最終的な戻り値を変数Cに格納するとします。</p>
<p>&nbsp;</p>
<p>この時、段階的に処理を記述していくと、以下のようになるかと思います。
</p><pre class="urvanov-syntax-highlighter-plain-tag">$変数A = 関数A
$変数B = 関数B
$変数C = 関数C</pre><p>
ただ、こういった書き方をしていると読み手にはわかりやすいですが、</p>
<p>どうしてもコードが長くなってしまいますね。</p>
<p>&nbsp;</p>
<p>そんな時、1行に関数を呼び出す処理を凝縮してしまいたくなります。</p>
<p>以下の方法で実は短くできてしまいます。
</p><pre class="urvanov-syntax-highlighter-plain-tag">$変数C = 関数B( 関数A 引数1 引数2 )</pre><p>
&nbsp;</p>
<p>このように書くことで、<span class="marker-under">関数Aを先に呼び出し、その結果を関数Bの引数に当てています</span>。</p>
<p>コードを短くはできますが、若干わかりづらくなるかもしれませんね。</p>
<p>&nbsp;</p>
<h1>まとめ</h1>
<p>コードを短くスッキリさせる方法として、</p>
<p>1行で関数を2度呼び出す方法を紹介していきました。</p>
<p>&nbsp;</p>
<p>時に便利な書き方になるので、覚えてもらえたらなと思います。</p>
<p>&nbsp;</p>
<p>１つの処理内で全てを書くのではなく、処理を細かくわけて関数を作っていくことで、</p>
<p>バグが起きた際に修正範囲を減らせるといったメリットもあります。</p>
<p>&nbsp;</p>
<p>最後までお読みいただき、ありがとうございます。</p>
<p>&nbsp;</p>

<p>&nbsp;</p>		<div class="wpulike wpulike-default " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="4002"
					data-ulike-nonce="46cd17cf48"
					data-ulike-type="post"
					data-ulike-template="wpulike-default"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_4002"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>The post <a href="https://dreamparadaisu.com/powershell_16/">【PowerShell】関数を1行で2回関数を呼び出すには？！～その策は邪道なのか～</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>
<p>この投稿の関連記事が見つかりませんでした。</p>
</div>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4002</post-id>	</item>
		<item>
		<title>【PowerShell】外部アプリケーションを呼び出してみよう～.exeを実行させる～</title>
		<link>https://dreamparadaisu.com/powershell_15/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=powershell_15</link>
		
		<dc:creator><![CDATA[リョクちゃ]]></dc:creator>
		<pubDate>Sat, 19 Feb 2022 02:24:54 +0000</pubDate>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[パソコン]]></category>
		<category><![CDATA[プログラム]]></category>
		<guid isPermaLink="false">https://dreamparadaisu.com/?p=3967</guid>

					<description><![CDATA[<p>どうも！リョクちゃです。 &#160; 今回は、PowerShellで外部アプリケーションを呼び出す方法を紹介していきます。 外部アプリケーションは例えば、自身で作成した.exeファイルや、 Pythonのスクリプトも該...</p>
The post <a href="https://dreamparadaisu.com/powershell_15/">【PowerShell】外部アプリケーションを呼び出してみよう～.exeを実行させる～</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>

この投稿の関連記事が見つかりませんでした。
</div>
]]></description>
										<content:encoded><![CDATA[<p>どうも！リョクちゃです。</p>
<p>&nbsp;</p>
<p>今回は、PowerShellで外部アプリケーションを呼び出す方法を紹介していきます。</p>
<p>外部アプリケーションは例えば、自身で作成した.exeファイルや、</p>
<p>Pythonのスクリプトも該当しますね。</p>
<p>&nbsp;</p>
<p>Windowsコマンドでも呼び出すことはできるのですが、</p>
<p>PowerShellでももちろん、呼び出すことができるので</p>
<p>ここで学んでしまいましょう。</p>
<p>ちなみに前回はこちら</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/powershell_14/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2022/02/powershell_33-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2022/02/powershell_33-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2022/02/powershell_33-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2022/02/powershell_33-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/powershell_14/" class="blog-card-title-link">【PowerShell】.NetFrameworkのバージョンを確認する方法～意外と使える～</a></div><div class="blog-card-excerpt">現在の.NetFrameworkを知りたいときってありませんか？いろんな方法でバージョンを確認することはできますが、実はPowerShellでもできるとのことなので今回はPowerShellで確認する方法を紹介していきます。参考になれば嬉しいです。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/powershell_14/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/powershell_14/" alt="" /></a></div><div class="blog-card-date">2022-02-16 02:36</div></div></div>
<p>&nbsp;</p>
<p><a href="https://px.a8.net/svt/ejp?a8mat=3HKUAR+C37VZM+4TE8+5Z6WX" rel="nofollow">
<img loading="lazy" decoding="async" class="aligncenter" src="https://www26.a8.net/svt/bgt?aid=210924387731&amp;wid=001&amp;eno=01&amp;mid=s00000022472001004000&amp;mc=1" alt="" width="468" height="60" border="0" /></a></p>
<img loading="lazy" decoding="async" class="aligncenter" src="https://www11.a8.net/0.gif?a8mat=3HKUAR+C37VZM+4TE8+5Z6WX" alt="" width="1" height="1" border="0" />
<p>&nbsp;</p>
<h1>PowerShellで外部アプリケーションを呼び出す</h1>
<p>&nbsp;</p>
<p>外部アプリケーションを呼び出すには、既にコマンドがサポートされており、</p>
<p>以下のコマンドを使用することで外部アプリケーションを呼び出すことができます。</p>
<div class="sp-info">Start-Process -FilePath </div>
<p>&nbsp;</p>
<p><span class="marker-under"><strong>Start-Process</strong></span>を使用することで、外部アプリケーションを呼び出すことが可能です。</p>
<p>&nbsp;</p>
<p>例) メモ帳を開いてみます。</p>
<p>メモ帳はWindowsでは&#8221;<span class="marker-under"><strong>notepad</strong></span>&#8220;という名称でインストールされています。
</p><pre class="urvanov-syntax-highlighter-plain-tag">Start-Process -FilePath "notepad"</pre><p>
&nbsp;</p>
<p>実行すると、メモ帳が開きます。</p>
<p>&nbsp;</p>
<p>例えば、引数を渡したい場合もあると思います。</p>
<p>そんな時は、<span class="marker-under"><strong>Start-Process</strong>コマンドのオプションに<strong>-ArgumentList</strong></span>というのがあります。</p>
<p>このオプションを設定することで外部アプリケーションに引数を渡すことができます。
</p><pre class="urvanov-syntax-highlighter-plain-tag">Start-Process -ArgumentList "引数1", "引数2"</pre><p>
&nbsp;</p>
<h1>他の呼び出し方</h1>
<p><span class="marker-under"><strong>Start-Process</strong></span>で呼び出してもいいんですが、こちらで呼び出すと</p>
<p>外部アプリケーションが終了したときに返される終了コードを受け取ることができません。</p>
<p>&nbsp;</p>
<p>そこで終了コードを受け取るには、以下の呼び出し方を検討してみましょう。</p>
<div class="sp-info">System.Diagnostics.ProcessStartInfo</div>
<div class="sp-info">System.Diagnostics.Process</div>
<p>&nbsp;</p>
<p>これらを使って、外部アプリケーションを呼び出します。</p>
<p>&nbsp;</p>
<p>例) 外部アプリケーションを呼び出す、一連の流れ
</p><pre class="urvanov-syntax-highlighter-plain-tag">$変数名(ProcessStartInfo) = New-Object System.Diagnostics.ProcessStartInfo
$変数名(ProcessStartInfo).FileName = "呼び出したい外部アプリケーション名"
# 引数を渡したい場合　→　$変数名(ProcessStartInfo).Arguments = "引数"
$変数名(ProcessStartInfo).UseShellExecute = $false  # 外部アプリケーションを起動するときにシェルを使用するか否か

$変数名(Process) = New-Object System.Diagnostics.Process
$変数名(Process).StartInfo = $変数名(ProcessStartInfoのインスタンスを生成した変数)
[void]$変数名(Process).Start()  # 外部アプリケーションの実行
$変数名(Process).WaitForExit()  # 外部アプリケーションの実行が終了するまで待機

$変数名(終了コードを受け取る) = $変数名(Process).ExitCode  # 0以外の受け取り値はNGになります。</pre><p>
&nbsp;</p>
<p>例)　メモ帳を呼び出す流れ
</p><pre class="urvanov-syntax-highlighter-plain-tag"># System.Diagnostics.ProcessStartInfoの設定
$testInfo = New-Object System.Diagnostics.ProcessStartInfo
$testInfo.FileName = "notepad"
$testInfo.UseShellExecute = $false

$ System.Diagnostics.Processの設定
$test = New-Object System.Diagnostics.Process
$test.StartInfo = $testInfo
[void]$test.Start()
$test.WaitForExit()

# 終了コードを受け取る
$exit = $test.ExitCode
$exit</pre><p>
実行すると、メモ帳が開き、何もせず終了すると</p>
<p>終了コード0が受け取れると思います。</p>
<p>&nbsp;</p>
<h1>まとめ</h1>
<p>PowerShellで外部アプリケーションを呼び出す方法について、紹介していきました。</p>
<p>&nbsp;</p>
<p>終了コードを受け取りたい場合には、Start-Processではなく、</p>
<p><span class="marker-under"><strong>System.Diagnostics.ProcessStartInfo</strong></span>と</p>
<p><span class="marker-under"><strong>System.Diagnostics.Process</strong></span>を検討しましょう。</p>
<p>&nbsp;</p>
<p>使い方を覚えるとPowerShellだけで外部アプリケーションを呼び出せるようになるので、</p>
<p>便利っちゃ便利です。</p>
<p>&nbsp;</p>
<p>また、外部アプリケーションを呼んで処理を任せたいときなんかにも有効ですね。</p>
<p>&nbsp;</p>
<p>最後までお読みいただき、ありがとうございます。</p>

<p>&nbsp;</p>		<div class="wpulike wpulike-default " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="3967"
					data-ulike-nonce="9200743e63"
					data-ulike-type="post"
					data-ulike-template="wpulike-default"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_3967"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>The post <a href="https://dreamparadaisu.com/powershell_15/">【PowerShell】外部アプリケーションを呼び出してみよう～.exeを実行させる～</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>
<p>この投稿の関連記事が見つかりませんでした。</p>
</div>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3967</post-id>	</item>
	</channel>
</rss>
