tag:crieit.net,2005:https://crieit.net/tags/Windows/feed 「Windows」の記事 - Crieit Crieitでタグ「Windows」に投稿された最近の記事 2023-11-01T01:41:31+09:00 https://crieit.net/tags/Windows/feed tag:crieit.net,2005:PublicArticle/18636 2023-11-01T01:41:31+09:00 2023-11-01T01:41:31+09:00 https://crieit.net/posts/PC-Manager PC Manager をオフラインやプロキシ環境下でインストールする <p>システム最適化ソフト「Microsoft PC Manager」が、 v3.1.3 で日本語に対応したらしい。<br /> → <a target="_blank" rel="nofollow noopener" href="https://forest.watch.impress.co.jp/docs/news/1542944.html">Microsoft純正のシステム最適化アプリが日本語に対応、「PC Manager」v3.1 - 窓の杜</a></p> <p>元々中国向けに提供されていたものが、英語、それ以外の言語と順次展開が拡大されおり、今回めでたく日本語対応したようだ。<br /> …あれ? こないだまで最新ベータ版は v3.2 だったような…?<br /> まぁいいか。</p> <p>Windows 11 だと何かとメモリを食いつぶされて、 16~32GB 程度のメモリでは VM や WSL の起動に失敗することが多々あるので、 Windows 98 や Me の時代を思い出すようなメモリクリーンアップ機能は、今の時代でも重宝される。</p> <p>さて、この Microsoft PC Manager だが <a target="_blank" rel="nofollow noopener" href="https://pcmanager.microsoft.com/ja-JP">Microsoft の公式ページ</a> からインストーラをダウンロードして実行しても、オフライン環境やプロキシ環境下だと「インストール ファイルをダウンロードできませんでした。後でもう一度お試しください。」等と表示されて、インストールに失敗する。<br /> <a target="_blank" rel="nofollow noopener" href="https://aquasoftware.net/blog/wp-content/uploads/2023/11/install-pc-manager-offline-01.png"><img src="https://aquasoftware.net/blog/wp-content/uploads/2023/11/install-pc-manager-offline-01.png" alt="" /></a></p> <p>インストーラ (<code>MSPCManagerSetup.exe</code>) が実行時に実プログラムをダウンロードする必要があるからだ。</p> <p>どこかにオフライン版のインストーラはないものか…<br /> と調べていたら、 FANDOM の Wiki にオフラインインストーラのリンクの作り方が書いてあった。</p> <blockquote> <p><a target="_blank" rel="nofollow noopener" href="https://microsoft.fandom.com/wiki/Microsoft_PC_Manager#Online/offline/upgrade_packages">Microsoft PC Manager | Microsoft Wiki | Fandom</a><br /> <code>aka.ms/PCManager[ChannelNo.]</code></p> </blockquote> <p>2023年11月現在、 前述の公式サイトからオンラインインストーラをダウンロードしようとすると、 以下のリンク先 (に認証用のシグネチャのパラメータが付いたもの) へリダイレクトされてダウンロードされる。<br /> <code>https://pcmdistributestorage.blob.core.windows.net/mvp/500000/56784/MSPCManagerSetup.exe</code></p> <p>このことから、最新版系統は Channel 500000 のようだ。</p> <p>つまり、以下のリンク先からダウンロードすれば、 v3.1 系統のオフライン版インストーラが手に入るようだ。</p> <p><code>https://aka.ms/PCManagerOFL500000</code></p> <p>しっかりマイクロソフトによるデジタル署名がついたインストーラが手に入るので、ウイルスなどが仕込まれたファイルであるリスクは低そうだ。<br /> <a target="_blank" rel="nofollow noopener" href="https://aquasoftware.net/blog/wp-content/uploads/2023/11/install-pc-manager-offline-02.png"><img src="https://aquasoftware.net/blog/wp-content/uploads/2023/11/install-pc-manager-offline-02.png" alt="" /></a></p> advanceboy tag:crieit.net,2005:PublicArticle/18421 2023-04-01T01:43:53+09:00 2023-04-01T17:00:53+09:00 https://crieit.net/posts/Windows-MBR-SSD-GPT [Windows] MBR パーティションの SSD を GPT へコピーする <p>突然だが、超久々に自作 PC を組んだ。<br /> 前回は Windows 7 登場の 2009年に、 第1世代 Core i5 750 で組んだ時なので、約14年ぶりとなる。</p> <p>ハードは一度、中古でもらった 第3世代 Core i7 3770 に置換えているのだが、その際もストレージや Windows 7 Pro のライセンスはそのまま流用していてる。<br /> その後も、ストレージをクローンしたり「初期状態に戻す」で再インストールしながら、脈々と使い続けているものとなる。</p> <p>このため今回も、 旧PCに入っている SATA SSD に入っている Windows 10 を、新PC の NVMe SSD にコピーして、その状態で起動させてから(ライセンスにハード構成覚えさせてから)、 Windows 11 に上げようと考えた。</p> <p>ところが、 NVMe SSD で起動するのに結構苦戦したので、その解決策のメモ。</p> <h2 id="とりあえず最初に試したこと"><a href="#%E3%81%A8%E3%82%8A%E3%81%82%E3%81%88%E3%81%9A%E6%9C%80%E5%88%9D%E3%81%AB%E8%A9%A6%E3%81%97%E3%81%9F%E3%81%93%E3%81%A8">とりあえず最初に試したこと</a></h2> <p><a target="_blank" rel="nofollow noopener" href="https://www.ventoy.net/en/index.html">Ventoy</a> をインストールしたブータブル USB メモリに GParted live を入れ、 GParted を使い、</p> <ul> <li>新NVMe SSD をパーティションテーブル GPT で初期化</li> <li>旧SATA SSD から 新NVMe SSD へ雑にパーティションをコピー</li> </ul> <p>を行った。</p> <p>この状態で試したところ、 ブルースクリーンすら表示されず、 UEFI から何もブートできない。<br /> USB メモリ内の Windows ISO からブートして、回復コンソールからスタートアップ修復などを試しても駄目だった。</p> <h2 id="根本的な原因"><a href="#%E6%A0%B9%E6%9C%AC%E7%9A%84%E3%81%AA%E5%8E%9F%E5%9B%A0">根本的な原因</a></h2> <p>原因は言わずもがな、パーティション弄った際のお馴染みのトラブルである、ブートレコードまわりの問題だ。<br /> 今回は、パーティションテーブルの違い (MBR と GPT) もあって、少々ややこしいことになっていた。</p> <p>この PC の系譜の元祖を組んだ 2009年 当時も UEFI は存在はしていたものの、当時サポートしていた M/B (マザボ) なんぞ殆どなく、そこから脈々とクローンしている旧 PC の SATA SSD のパーティションテーブルは MBR のままだ。</p> <p>一応、 M/B には CSM Support という BIOS 互換モードの設定があるので、 新SSD も MBR でパーティション作り直し、 セキュアブートを無効にすれば起動はできるはず?<br /> …とは思ったのだが…、</p> <p>なんと最近の CPU, チップセット は Legacy BIOS のブートに対応しない方針らしい。</p> <p><a target="_blank" rel="nofollow noopener" href="https://blog.tsukumo.co.jp/tokyo/2020/09/legacy_boot.html">【サポート情報】最新世代のマザーボードでのLegacy BOOTには注意しよう - ツクモ東京地区 店舗BLOG</a></p> <p>あまりに長いこと自作マシンから距離を置いていたせいで全然知らなかった…<br /> パーティションテーブルが MBR なら Legacy BIOS ブート、 GPT なら UEFI ブートにしようみたいなところで知識が止まっていたぞ。</p> <p>MBR でのブート対応しない Windows 11 に今後更新することを想定すれば、 GPT に変更しておくべきだろう。<br /> どうせ今回は 旧SATA SSD から 新NVMe SSD へのパーティションのクローンもしなくてはならないので、 MBR から GPT への切替をしながらクローンを進める方向で考える。</p> <p>ところが、 色々調べても MiniTool, EaseUS, AOMEI の広告記事の機械翻訳といったゴミ情報ばかりでなかなか情報にたどり着けず。<br /> ChatGPT や "新しい Bing" に聞いてみても、残念ながらあんまり役に立つ回答が得られなかったし。</p> <h2 id="兎にも角にもクリーンインストール"><a href="#%E5%85%8E%E3%81%AB%E3%82%82%E8%A7%92%E3%81%AB%E3%82%82%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">兎にも角にもクリーンインストール</a></h2> <p>UEFI ベースのデバイスに GUIDパーティションテーブル (GPT) の ファイルシステムで Windows を起動させる場合、 EFI システムパーティション (ESP) というものが必要になる。<br /> こいつは MBR では存在しなかったものなので、別途作ってやらなければならない。</p> <p>また、 Windows 側でパーティション管理しやすくするため、 Microsoft 予約パーティション (MSR) というものも必要らしい。</p> <p><a target="_blank" rel="nofollow noopener" href="https://learn.microsoft.com/ja-jp/windows-hardware/manufacture/desktop/configure-uefigpt-based-hard-drive-partitions?view=windows-11">UEFI/GPT ベースのハード ドライブ パーティション | Microsoft Learn</a></p> <p>ちまちまパーティションを作るのは面倒なので、 新NVMe SSD の中身を綺麗さっぱり削除し、 Windows 10 のクリーンインストール → 旧SATA SSD の Windows パーティションで上書き ……という方法を取る。</p> <ol> <li>Ventoy に Windows 10 インストーラ ISO イメージを書き込んでブート</li> <li>手順に従って、 Windows 10 を新規インストール <ul> <li>ココで入れた Windows はすぐ消すので、プロダクトキーは入れずに進めて良い</li> </ul></li> <li>起動するパーティションを覚えさせるため、インストール完了後一度 Windows を起動させる</li> <li>再び Ventory に入れた GParted をブート</li> <li>旧SATA SSD の Windows パーティションを、 新NVMe SSD の Windows パーティションにコピー<br /> <a target="_blank" rel="nofollow noopener" href="https://aquasoftware.net/blog/wp-content/uploads/2023/04/mbr-partition-table-to-gpt-02.jpg"><img src="https://aquasoftware.net/blog/wp-content/uploads/2023/04/mbr-partition-table-to-gpt-02.jpg" alt="" /></a><br /> <a target="_blank" rel="nofollow noopener" href="https://aquasoftware.net/blog/wp-content/uploads/2023/04/mbr-partition-table-to-gpt-01.jpg"><img src="https://aquasoftware.net/blog/wp-content/uploads/2023/04/mbr-partition-table-to-gpt-01.jpg" alt="" /></a> <ul> <li>コピーの方向逆にするとデータが全部飛ぶので要注意</li> </ul></li> </ol> <p>うまく行けば、この状態で再起動すれば問題なく Windows が起動するだろう。</p> <h2 id="それでもブルースクリーンが出る場合"><a href="#%E3%81%9D%E3%82%8C%E3%81%A7%E3%82%82%E3%83%96%E3%83%AB%E3%83%BC%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%81%8C%E5%87%BA%E3%82%8B%E5%A0%B4%E5%90%88">それでもブルースクリーンが出る場合</a></h2> <p>少なくとも、上記の手順で ESP はブートするはずなので、悪くてもブルースクリーンぐらいは出るはずだ。</p> <p>ここでもしエラーコード <code>0xc000000e</code> などが出ている場合、 ESP 内の Boot Configuration Data (BCD) や M/B の NVRAM にあるブートオプションが、次に起動する Windows パーティションを適切に指せていない可能性がある。</p> <p>この場合、回復コンソール上で <code>echo list volume | diskpart</code> と実行して Windows が入っているとみられるパーティションのドライブレターを確認し、 (ラベルやサイズで判断する)</p> <p>```text/plain<br /> X:\Sources>echo list volume | diskpart</p> <p>Microsoft DiskPart バージョン 10.0.19041.964</p> <p>Copyright (C) Microsoft Corporation.</p> <p>Volume ### Ltr Label Fs Type Size Status Info</p> <hr /> <p>Volume 0 C Windows NTFS Partition 461 GB Healthy<br /> Volume 1 BOOT FAT32 Partition 499 MB Healthy<br /> Volume 2 Recovery NTFS Partition 4881 MB Healthy Hidden</p> <pre><code><br />その結果例えばドライブレターが `C` であれば以下のように実行し、 「ブート ファイルは正常に作成されました。」 と結果が出れば OK なはずだ。 </code></pre> <p>bcdboot C:\Windows /l ja-JP<br /> ```</p> <h2 id="終わりに"><a href="#%E7%B5%82%E3%82%8F%E3%82%8A%E3%81%AB">終わりに</a></h2> <p>以上が、 Windows メディアや OSS の無料のツールだけを使って、 MBR のディスクから GPT のディスクにパーティションをクローンする方法だ。</p> <p>もう流石に、今後 MBR を触ることはないかな…</p> <h2 id="余談1 (Ventoy)"><a href="#%E4%BD%99%E8%AB%871+%28Ventoy%29">余談1 (Ventoy)</a></h2> <p>本文中にも出てくるが、 <a target="_blank" rel="nofollow noopener" href="https://www.ventoy.net/en/index.html">Ventoy: A New Bootable USB Solution</a> が便利すぎる。</p> <p>PC を構成しているとどうしても、パーティション弄るツールやインストールメディアなど、複数のブータブルメディアを使う羽目になってくる。<br /> 昔は種類ごとに CD/DVD を焼いたり、 USBメモリを焼き込んだりしていたもので、使い分ける際もいちいち本体に入れ直さなくてはならないなど、面倒この上なかった。</p> <p>Ventoy をインストールした USBメモリ を一つ用意しておけば、そのメモリの exFAT パーティションに好きな iso ファイルを複数放り込んで、簡単にブート仕分けることができる。</p> <p>ブートするツールを更新する際も、 iso ファイルを入れ替えれば良いので、最新のツールに更新する敷居も下がってとても良い。</p> <h2 id="余談2 (光ディスクの劣化)"><a href="#%E4%BD%99%E8%AB%872+%28%E5%85%89%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E3%81%AE%E5%8A%A3%E5%8C%96%29">余談2 (光ディスクの劣化)</a></h2> <p>Ventoy を使いだす前、昔焼いた ブータブルCD/DVD 使ってパーティション弄ろうとしていた。<br /> しかし、流石に5年以上前にしかも安物のディスクに焼いたものだったので、ディスクのエラー率高くて時折ブートに失敗してしまう。</p> <p>普通の色素系ディスクだとこれくらいの年月で駄目になってくるのねー、と実感してしまった。</p> <p>長期とっときたいデータはやはり、選別や再エンコードなどして M-DISC とかに焼いとかないと駄目だなー</p> advanceboy tag:crieit.net,2005:PublicArticle/18314 2022-11-10T10:08:52+09:00 2023-10-19T14:22:13+09:00 https://crieit.net/posts/WSL-Windows-Ubuntu 【WSL】WindowsでUbuntuを検証したいときによく使うコマンド <h2 id="確認済み環境"><a href="#%E7%A2%BA%E8%AA%8D%E6%B8%88%E3%81%BF%E7%92%B0%E5%A2%83">確認済み環境</a></h2> <ul> <li>Windows 11 22H2</li> </ul> <h2 id="Ubuntuをインストール"><a href="#Ubuntu%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">Ubuntuをインストール</a></h2> <p>管理権限で起動したコマンドプロンプトかPowerShellで実施、WSL未導入の場合は再起動(バックグラウンドでWSLを導入するため、ハイパーバイザーや仮想マシンプラットフォーム機能などが有効化されるため)が必要です。再起動後Ubuntuが起動するのでID/PWの設定を行います。</p> <pre><code class="dos">> wsl --install -d Ubuntu </code></pre> <h2 id="インストール状況を確認する"><a href="#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E7%8A%B6%E6%B3%81%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B">インストール状況を確認する</a></h2> <p>管理権限で起動したコマンドプロンプトかPowerShellで実施、インストールされたディストリビューション名や状態、WSLバージョンが確認できます</p> <pre><code class="dos">> wsl -l -v </code></pre> <h2 id="Ubuntuをエクスポート"><a href="#Ubuntu%E3%82%92%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88">Ubuntuをエクスポート</a></h2> <p>管理権限で起動したコマンドプロンプトかPowerShellで実施、他のPCに環境を移動したい時に使います</p> <pre><code class="dos">> wsl --export "ディストリビューション名(例:Ubuntu)" "エクスポートファイル名(例:Ubuntu_export.tar)" </code></pre> <h2 id="Ubuntuをインポート"><a href="#Ubuntu%E3%82%92%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88">Ubuntuをインポート</a></h2> <p>管理権限で起動したコマンドプロンプトかPowerShellで実施、WSLを導入していないPCの場合は事前に導入が必要です(私の環境ではWSL未導入だと--importオプションが使えませんでした)</p> <pre><code class="dos">> wsl --import Ubuntu "インポート先のフォルダ名(例:c:¥wslimg→フォルダがない場合は自動で作られる)" "エクスポートファイル名(例:Ubuntu_export.tar)" </code></pre> arohajiro tag:crieit.net,2005:PublicArticle/18260 2022-07-25T21:47:47+09:00 2022-07-25T23:01:21+09:00 https://crieit.net/posts/Windows-RDP 旅先でクラウド上のWindowsサーバにRDP接続 <p>この記事には、目新しい技術は書かれていません。既成のアプリケーションの使い方のひとつが紹介されているだけです。</p> <p>旅先でクラウド上のWindowsサーバにRDP接続したいな、という機会は、僕にはたくさんあります。PCを使える状況であればPCを使えば良いのですが、例えば電車の中などでPCを使えない、あるいはPCは使えるけどそれも面倒という場面も僕にはたくさんあります。<br /> こんなときのために、僕にはセルフォンがあるのです。</p> <h2 id="外部からの接続"><a href="#%E5%A4%96%E9%83%A8%E3%81%8B%E3%82%89%E3%81%AE%E6%8E%A5%E7%B6%9A">外部からの接続</a></h2> <p>外部から目的のWindowsサーバにRDPで接続するには、間にSSHが配置され、このSSHがポートフォワードしてくれる、というのが前提です。当然ながら、SSH接続には鍵が必要というのも前提です。<br /> つまり、何の変哲もない一般的な構成です。</p> <h2 id="僕を助けてくれるAndroidアプリ"><a href="#%E5%83%95%E3%82%92%E5%8A%A9%E3%81%91%E3%81%A6%E3%81%8F%E3%82%8C%E3%82%8BAndroid%E3%82%A2%E3%83%97%E3%83%AA">僕を助けてくれるAndroidアプリ</a></h2> <p>こういった場面で僕を助けてくれるAndroidアプリは以下の2つです。どちらか1つというわけではなく、2つがタックで助けてくれます。</p> <ul> <li>ConnectBot</li> <li>Remote Desktop</li> </ul> <p>これらはよく配慮された機能をもち、かつ余分な機能を持たないという、セルフォンのアプリケーションとして優れた特徴を持ったアプリケーションです。<br /> <a href="https://crieit.now.sh/upload_images/d56076624b7e1efe9cc376dfadad312b62de9ea0cb881.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d56076624b7e1efe9cc376dfadad312b62de9ea0cb881.png?mw=700" alt="image" /></a><br /> <a href="https://crieit.now.sh/upload_images/a15fd3a22e58e5d358e77d9e1f0b9d9862de9ec12704a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/a15fd3a22e58e5d358e77d9e1f0b9d9862de9ec12704a.png?mw=700" alt="image" /></a></p> <h2 id="使い方"><a href="#%E4%BD%BF%E3%81%84%E6%96%B9">使い方</a></h2> <p>ConnectBotの設定を事前に行っておくべきです。</p> <h3 id="ConnectBot"><a href="#ConnectBot">ConnectBot</a></h3> <p>以下はConnectBotの設定です。</p> <p>"Manage Pubkeys"を使って、サーバへのSSH接続を行うための鍵を登録します。<br /> <a href="https://crieit.now.sh/upload_images/bd584093bd0999427a3c12f2f66be6e462de95445d595.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/bd584093bd0999427a3c12f2f66be6e462de95445d595.png?mw=700" alt="image" /></a><br /> 鍵を登録した状態です。<br /> <a href="https://crieit.now.sh/upload_images/7f2e4dfbf1cef4fe59851276b2816fed62de9ee62bb97.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/7f2e4dfbf1cef4fe59851276b2816fed62de9ee62bb97.png?mw=700" alt="image" /></a><br /> "Hosts"にSSHサーバを登録し接続します。鍵はここで使用します。SSHサーバへの登録と接続については、この記事では解説しません。難しくはないでしょう。</p> <p>SSHでSSHサーバに接続したら、メニューから[Port Forward]を選択します。<br /> <a href="https://crieit.now.sh/upload_images/372c4d79e6285840903eb025c3048e7562de94b11ae96.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/372c4d79e6285840903eb025c3048e7562de94b11ae96.png?mw=700" alt="image" /></a><br /> WindowsサーバのRDPへのポート・フォワードを設定します。<br /> <a href="https://crieit.now.sh/upload_images/be66b92cc798d4d94f8bf1b1f82c933262de9f17184cb.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/be66b92cc798d4d94f8bf1b1f82c933262de9f17184cb.png?mw=700" alt="image" /></a></p> <h3 id="Remote Desktop"><a href="#Remote+Desktop">Remote Desktop</a></h3> <p>僕は、マイクロソフト社純正のアプリケーションを使用しています。<br /> ConnectBotによるSSH(= ポートフォワード)セッションを活かした状態で、RDPに接続します。<br /> <a href="https://crieit.now.sh/upload_images/698517cdfeff566370d6a2f2c9016cb562de9f2ebd751.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/698517cdfeff566370d6a2f2c9016cb562de9f2ebd751.png?mw=700" alt="image" /></a></p> COOL MAGIC PRODUCTS tag:crieit.net,2005:PublicArticle/18244 2022-07-17T11:29:34+09:00 2022-07-17T11:29:34+09:00 https://crieit.net/posts/Windows-nvm-node-firebase-tools-Unexpected-token Windowsのnvmのnodeでfirebase-toolsを入れようとしたらUnexpected token '.' エラー <p><code>npm install -g firebase-tools</code> を実行してインストールしようとしたら下記のようなエラーが出た。</p> <pre><code class="plain">npm ERR! Unexpected token '.' </code></pre> <p>調べてみたらどうもWindowsのnvmのバージョン1.1.7以下を使っている場合に発生してしまうらしい。</p> <p>ということで</p> <ol> <li>nvm最新をインストール</li> <li>Nodeの該当バージョンをアンインストール</li> <li>Nodeの該当バージョンを再度インストール</li> </ol> <p>で解決するとのこと。nvmだけでなくNodeも入れ直さないといけないっぽい。</p> <p>参考)<br /> <a target="_blank" rel="nofollow noopener" href="https://github.com/firebase/firebase-tools/issues/4134">https://github.com/firebase/firebase-tools/issues/4134</a></p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/17959 2022-01-28T19:10:57+09:00 2022-01-28T19:12:24+09:00 https://crieit.net/posts/aka-bat-1 バッチ書くときにしょっちゅう調べなおすこと <h1 id="パラメータ"><a href="#%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF">パラメータ</a></h1> <p>%0がバッチ自身で%1-nが引数なのは当然として、%~dp0とかの話。</p> <div class="table-responsive"><table> <thead> <tr> <th>修飾子</th> <th>意味</th> </tr> </thead> <tbody> <tr> <td>%~0</td> <td>ダブルクォートをとっぱらう</td> </tr> <tr> <td>%~d0</td> <td>ドライブ文字だけ</td> </tr> <tr> <td>%~p0</td> <td>ドライブ文字の後のパスだけ(ファイル名は含まない)</td> </tr> <tr> <td>%~f0</td> <td>フルパス</td> </tr> <tr> <td>%~n0</td> <td>ファイル名だけ(拡張子は含まない)</td> </tr> <tr> <td>%~x0</td> <td>拡張子だけ</td> </tr> <tr> <td>%~a0</td> <td>ファイル属性だけ</td> </tr> <tr> <td>%~t0</td> <td>ファイル時刻だけ</td> </tr> <tr> <td>%~z0</td> <td>ファイルサイズだけ</td> </tr> <tr> <td>%~dp0</td> <td>[応用]ドライブ含むバッチのあるディレクトリ</td> </tr> <tr> <td>%~dpn0.ps1</td> <td>[応用]同パス同名だけど拡張子がps1</td> </tr> </tbody> </table></div> <h1 id="対話入力"><a href="#%E5%AF%BE%E8%A9%B1%E5%85%A5%E5%8A%9B">対話入力</a></h1> <p>/pオプション。気を付けるべきはsetは変数と=の間に隙間あけちゃだめってとこ。</p> <pre><code>set /p hoge="Input:" echo %hoge% </code></pre> <h1 id="遅延環境変数"><a href="#%E9%81%85%E5%BB%B6%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0">遅延環境変数</a></h1> <p>詳しい説明はどこかに任せる。<br /> 要はifとかforとかの括弧の中は1行として扱われるからその中で変化した変数を扱いたい時にこれを使う。<br /> ※なにが”遅延”なのかいまだに理解できていない。<br /> ポイントは最初のおまじないとエクスクラメーションマークでくくることくらい。<br /> 最初のおまじないの言葉をよく忘れる。間にスペースがないから覚えにくいのだと思う。<br /> 「enable delayed expansion」</p> <pre><code>setlocal enabledelayedexpansion if "%hoge%"=="" ( set result="karappo" echo !result! ) </code></pre> <h1 id="権限昇格の技"><a href="#%E6%A8%A9%E9%99%90%E6%98%87%E6%A0%BC%E3%81%AE%E6%8A%80">権限昇格の技</a></h1> <p>PowerShellさんまじですごい。<br /> Start-Processに-Verbっていうのがあって色々ユーザ視点でできるけどその中に管理者として実行がある。それがrunas。あとは知ってることの組み合わせ。</p> <pre><code>@echo off if not "%1%"=="admin" ( PowerShell -command "Start-Process -Verb runas -FilePath %~f0 -ArgumentList 'admin'" ) else ( echo Start Run As Administrator! pause ) </code></pre> <p>上記例では自身を管理者権限で呼び出している。無理やり引数にフラグもたせたけどもっとスマートな方法があるかも。</p> <h1 id="気が向いたら追記する"><a href="#%E6%B0%97%E3%81%8C%E5%90%91%E3%81%84%E3%81%9F%E3%82%89%E8%BF%BD%E8%A8%98%E3%81%99%E3%82%8B">気が向いたら追記する</a></h1> RedCol tag:crieit.net,2005:PublicArticle/17958 2022-01-28T18:32:09+09:00 2022-01-28T18:32:09+09:00 https://crieit.net/posts/aka-win-sysconf-1 OSの設定をPowershellで変える(言語編) <h1 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h1> <p>多国語の対応とかしてると確認のためにいちいちシステム言語を切り替えて云々が発生してうっとおしいのでバッチにしてしまえ、たぶんPowerShellでできるはずだ、ということで調べた結果を垂れ流す。<br /> なお、システム設定いじくるので管理者として実行してあげる必要がある。<br /> それも面倒なので権限昇格するようにバッチで行う。(そのうち別記事で書く)</p> <h1 id="サポート言語の追加"><a href="#%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E8%A8%80%E8%AA%9E%E3%81%AE%E8%BF%BD%E5%8A%A0">サポート言語の追加</a></h1> <p>[Windows設定]→[時刻と言語]→[言語]のページの下の方の[言語の追加]。</p> <h2 id="Get-WinUserLanguageList/Set-WinUserLanguageList"><a href="#Get-WinUserLanguageList%2FSet-WinUserLanguageList">Get-WinUserLanguageList/Set-WinUserLanguageList</a></h2> <p>Get~で現在のサポート言語のリストをとってくる<br /> Set~でサポート言語リストをセットする<br /> ので<br /> 1.Getする<br /> 2.追加する(言語コードをAdd)<br /> 3.Setする<br /> でいける</p> <p>例えばドイツ語なら</p> <pre><code>$CurrList = Get-WinUserLanguageList $CurrList.Add("de-DE") Set-WinUserLanguageList $CurrList -Force </code></pre> <p>-Forceは自動化したいから。ないと確認メッセージが出ます。</p> <h1 id="地域設定(形式)"><a href="#%E5%9C%B0%E5%9F%9F%E8%A8%AD%E5%AE%9A%28%E5%BD%A2%E5%BC%8F%29">地域設定(形式)</a></h1> <p>[Windows設定]→[時刻と言語]→[地域]のページの2こめくらい。</p> <h2 id="Get-Culture/Set-Culture"><a href="#Get-Culture%2FSet-Culture">Get-Culture/Set-Culture</a></h2> <p>ただ言語デフォルトに変更したいだけならSet-Cultureで言語コードを渡せばいい。<br /> だけど言語デフォルトでありがちな罠の小数点(たまにカンマの国がある)を変更したいなら<br /> 1.Set 言語デフォルト<br /> 2.Get<br /> 3.編集<br /> 4.Set 編集したの<br /> という手順になるが、どうも1の直後に2を呼ぶと反映されてなかったのでps1ファイルを分けた。</p> <pre><code># ChangeCulture_1.ps1 Set-Culture "de-DE" </code></pre> <pre><code># ChangeCulture_2.ps1 $Cult = Get-Culture $Cult.NumberFormat.NumberDecimalSeparator = "." Set-Culture $Cult </code></pre> <h1 id="システムロケール"><a href="#%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%83%AD%E3%82%B1%E3%83%BC%E3%83%AB">システムロケール</a></h1> <p>[Windows設定]→[時刻と言語]→[地域]→[関連設定:日付、時刻、地域の追加設定]→[地域]→[管理]タブ→[Unicode対応ではないプログラムの言語]<br /> ※遠い、正直コントロールパネル出した方が早く着く</p> <h2 id="Get-WinSystemLocale/Set-WinSystemLocale"><a href="#Get-WinSystemLocale%2FSet-WinSystemLocale">Get-WinSystemLocale/Set-WinSystemLocale</a></h2> <p>確認したいならGetで。Setで言語コードを入れれば終わり。</p> <pre><code>Set-WinSystemLocale "de-DE" </code></pre> <p>再起動は必須なのでお好みに合わせて<br /> Restart-System<br /> をスクリプトに含めるなり、そこは手でやるなりご自由に。</p> <p>カンタン!</p> RedCol tag:crieit.net,2005:PublicArticle/17892 2021-12-24T23:56:32+09:00 2021-12-24T23:56:32+09:00 https://crieit.net/posts/oneliner-open-windows-hosts-20211224 Windows の hosts ファイルを管理者権限のメモ帳で開くワンライナー <h2 id="経緯"><a href="#%E7%B5%8C%E7%B7%AF">経緯</a></h2> <p><code>hosts</code> を毎度毎度手動で開く (管理者権限でメモ帳を開いて、メモ帳から <code>%windows%\system32\drivers\etc\hosts</code> を開く) のは面倒になってきたので、ワンライナーを作ることにしました。</p> <h2 id="コード"><a href="#%E3%82%B3%E3%83%BC%E3%83%89">コード</a></h2> <pre><code class="bat">cd /d %~dp0 PowerShell -NoProfile -ExecutionPolicy unrestricted -Command "start notepad C:\Windows\System32\drivers\etc\hosts -verb runas" </code></pre> <p>最初の一行はなくても良いので実質ワンライナー。</p> <p>これを bat ファイルとして保存すれば、ダブルクリックで <code>hosts</code> を開くことができます。</p> <p>……ただ、 bat はスタート画面にピン止めすることはできないのですね。</p> <h2 id="スタート画面にピン止め"><a href="#%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%88%E7%94%BB%E9%9D%A2%E3%81%AB%E3%83%94%E3%83%B3%E6%AD%A2%E3%82%81">スタート画面にピン止め</a></h2> <p>bat そのものはピン止めできませんが、 <code>cmd.exe</code> (コマンドプロンプト) はできます。</p> <p>そこで、ショートカットで「コマンドプロンプトを開きつつ、実行するコマンドとして上述ワンライナーを指定する」ことでピン止めすることにしました。</p> <ol> <li>bat ファイルのショートカットを作成</li> <li>1.のショートカットを右クリック→「プロパティ」でプロパティ画面を開く</li> <li>ショートカットのリンク先の先頭に、 <code>cmd /c</code>を挿入する</li> </ol> <p>これで、上述の「コマンドプロンプトを開きつつ、実行するコマンドとして上述ワンライナーを指定する」を実現しました。</p> <p>これでスタート画面にもピン止めできて、ダブルクリックで <code>hosts</code> を開くことができるようになりました。便利。</p> <h2 id="参考"><a href="#%E5%8F%82%E8%80%83">参考</a></h2> <h3 id="hosts を開く"><a href="#hosts+%E3%82%92%E9%96%8B%E3%81%8F">hosts を開く</a></h3> <ul> <li><a target="_blank" rel="nofollow noopener" href="https://qiita.com/tiibun/items/5719869552ee5b713d83">管理者権限でメモ帳を開いてhostsを編集するコマンド - Qiita</a></li> <li><a target="_blank" rel="nofollow noopener" href="https://qiita.com/syui/items/7d42d7e691010ee212fb">WindowsのPowerShellを管理者権限で起動する方法 - Qiita</a></li> <li><a target="_blank" rel="nofollow noopener" href="https://i-think-it.net/windows10-notepad-administrator-open/">Windows10でメモ帳を管理者権限で一瞬で開く方法 | あいしんくいっと</a></li> </ul> <h3 id="ピン止め"><a href="#%E3%83%94%E3%83%B3%E6%AD%A2%E3%82%81">ピン止め</a></h3> <ul> <li><a target="_blank" rel="nofollow noopener" href="https://donadona.hatenablog.jp/entry/2016/08/22/182751">Windows10でバッチファイルをスタート画面にピン留めする - ドナドナされるプログラマのメモ</a></li> </ul> arm-band tag:crieit.net,2005:PublicArticle/17728 2021-10-28T20:25:58+09:00 2021-10-28T22:44:12+09:00 https://crieit.net/posts/use-shortcut-commands-to-open-frequently-used-directories よく使うディレクトリはショートカットコマンドで開こう <p><img src="https://img.shields.io/badge/-Windows-0078D6.svg?logo=windows&style=flat" alt="OS:Windows" /></p> <p>今回のは簡単に準備できて恩恵の大きい時短テクです。</p> <p>ITエンジニア以外の方でも、たとえば頻繁にPC内の特定のディレクトリ(≒フォルダ)を開いてその中のファイルを開く、という方は参考にしていただけるかと思います。</p> <p>たとえば、趣味でイラストを描いているAさんは、イラストのデータを<code>D:\作業\イラスト\制作中</code>というディレクトリに保存しているとします。イラストを描くために毎日このフォルダを開いているとしましょう。</p> <p>普通に開くなら、まずはタスクバーからエクスプローラーをクリックして、Dドライブをクリックして、作業、イラスト、制作中とマウスをポチポチと潜っていきますよね。あるいは、キーボード操作に慣れていてショートカットを覚えている人であれば<code>Windows</code>+<code>E</code>、<code>Alt</code>+<code>D</code>、そしてパスの入力をしていくかもしれません。</p> <p>でもこれすら面倒なんですよね。もっと良い方法があります。それはバッチファイルに落とし込んで、ショートカットコマンドで開く方法です。これをすれば一瞬で目的のフォルダを開くことができます。PCに詳しくない人でも簡単に設定できると思います。</p> <p><img src="https://img.shields.io/badge/-sei.bat-gray" alt="sei.bat" /></p> <pre><code class="bat">@echo off start "" "D:\作業\イラスト\制作中" </code></pre> <p>上記のようなバッチファイルを作成し、パスを通しておきます。</p> <p>バッチファイルの作成とパスを通す方法は<a href="https://crieit.net/posts/easy-hack-to-copy-date-yyyymmdd">【Windows】日付8桁(yyyymmdd)を簡単にクリップボードに入れる方法</a>という記事で詳しく解説しているので、そちらを参照してください。</p> <p>今回は、制作中というディレクトリを開きたいので<code>sei.bat</code>という名前で保存してみます。これでパスを通すと、<code>Windows</code>を押して<code>sei</code>を入力すると<code>D:\作業\イラスト\制作中</code>のディレクトリを開くことができます。</p> <p>ファイルの名前はなんでもいいですが、既にあるファイルと被らないように、かつ覚えやすくタイプするのも面倒ではないシンプルな名前が良いと思います。</p> <p>これを使えば、</p> <blockquote> <p><strong>たかし君</strong>「カモフラージュのために、保存先を<code>D:\勉強\社会\宿題\2021\202110\穴埋め問題\解答\答え合わせ\秘密\危険\閲覧注意\閲覧禁止\見るな!!!\エロ</code>にしたけど、開くまでが面倒だなあ・・・」</p> <p><strong>たかし君</strong>「かえって不便だし、これじゃあ意味ないよ・・・」</p> </blockquote> <p>といった時にも、一発で目的のブツを開くコマンドさえ用意すれば完璧です。どれだけ長くて複雑なパスでも問題なしです。やったねたかし君!もっとがんばれ。超がんばれ。</p> <p>コマンドファイルにするメリットは他にも、複数のコマンドをまとめて実行できるという点が挙げられます。たとえば、</p> <ol> <li>イラストのデータを保存している<code>D:\作業\イラスト\制作中</code>を開く</li> <li>資料用にダウンロードしたファイルを保存している<code>D:\作業\イラスト\資料</code>を開く</li> <li>資料を探したいから<a target="_blank" rel="nofollow noopener" href="https://www.pinterest.jp">Pinterest</a>と<a target="_blank" rel="nofollow noopener" href="https://pixiv.net">Pixiv</a>をChromeで、それぞれ別のウィンドウで開いておく</li> </ol> <p>こういう一連の動作をしたい場合でも、そういう命令を書けばコマンド一発で実行できます。</p> <p><img src="https://img.shields.io/badge/-sei.bat-gray" alt="sei.bat" /></p> <pre><code class="bat">@echo off start "" "D:\作業\イラスト\制作中" start "" "D:\作業\イラスト\資料" start chrome --new-window "https://www.pinterest.jp" start chrome --new-window "https://pixiv.net" </code></pre> <p>もし長期的に作業をするファイルがあるなら、それを直接開くように指定しても良いでしょう。とにかく使い方次第でかなり時短ができます。PC起動時に自動で実行するように設定しておけば、完全に自動化できます。</p> <p>また、半角入力と思ったら全角入力になってた場合などは<code>Windows</code> <code>sei</code>のつもりが<code>Windows</code> <code>せい</code>になったりします。その場合は<code>せい</code>を削除して改めて<code>sei</code>を入力する必要がありますが、その場合備えて<code>sei.bat</code>を実行する<code>せい.bat</code>というファイルを作っておくと、いちいち再入力する手間が省けてストレスを減らせるのでオススメです。</p> <p><img src="https://img.shields.io/badge/-せい.bat-gray" alt="sei.bat" /></p> <pre><code class="bat">@echo off start cmd /c sei.bat </code></pre> <p><code>/c</code>オプションは、実行後にコマンドプロンプトを終了するというオプションです。これがないと、<code>せい.bat</code>経由で<code>sei.bat</code>を実行した時にコマンドプロンプトが残ったままになってしまうので入れておきます。</p> <p>たとえば私は<code>devdir.bat</code>で開発環境を展開するようにしていますが、対応する<code>でvぢr.bat</code>を作っています。これを用意しておけば、作業を始める時に<code>Windows</code>を押して<code>d</code> <code>e</code> <code>v</code> <code>d</code>あたりまで入力すればバッチファイルの候補を挙げてくれるので<code>Enter</code>を押すだけで良くなります。半角モードだろうが全角モードだろうが、問題なく作業の準備ができてとても良いです。</p> <p>他にも自動で作業中のファイルのバックアップを作ったりと、アレンジ次第で色々なことができます。興味があれば「Windows コマンド」などでググってみてください。</p> あぱしょに tag:crieit.net,2005:PublicArticle/17579 2021-08-09T17:40:25+09:00 2021-08-09T17:40:25+09:00 https://crieit.net/posts/cmd-customize-20210809 コマンドプロンプトのカスタマイズ <p>デスクトップとSurfaceで若干操作性が異なるなど戸惑うこともあったので、少し確認してみました。</p> <h3 id="プロパティを開く"><a href="#%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3%E3%82%92%E9%96%8B%E3%81%8F">プロパティを開く</a></h3> <p><a href="https://crieit.now.sh/upload_images/50db4df34dcfa95bba0a97b5872305916110e9b5ce5df.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/50db4df34dcfa95bba0a97b5872305916110e9b5ce5df.jpg?mw=700" alt="コマンドプロンプトを起動してヘッダ部分で右クリック、プロパティを選択" /></a></p> <p>コマンドプロンプトを起動してヘッダ部分で右クリック、プロパティを選択。</p> <h3 id="カスタマイズ"><a href="#%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA">カスタマイズ</a></h3> <p>一番気になったのは範囲選択。以前は矩形しか選択できなかったのが今は行で折り返し選択できるようになりました。</p> <p>それはそれとして、「右クリック」から「マーク」等としないと選択できないのが不便なので、サクッと選択できるようにします。</p> <p><a href="https://crieit.now.sh/upload_images/80740b5f30daf58e8d381db359e468f96110e9c07de7d.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/80740b5f30daf58e8d381db359e468f96110e9c07de7d.jpg?mw=700" alt="オプションタブ" /></a></p> <p>オプションタブを開いて、「簡易編集モード」にチェックを入れます。これでドラッグのみで範囲選択できるようになりました。</p> <p><a href="https://crieit.now.sh/upload_images/0ef5cd69300dd09192bdc6c383dd12046110e9c9d722b.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/0ef5cd69300dd09192bdc6c383dd12046110e9c9d722b.jpg?mw=700" alt="フォントタブ" /></a></p> <p>続いてフォントタブへ。若干文字サイズが小さかったので引き上げます。フォントは……とりあえずデフォルトのままで。</p> <p>他にも背景色や透過率もカスタマイズできますが、今回は範囲選択の部分が大きかったのでこれだけでOK。</p> <h3 id="参考"><a href="#%E5%8F%82%E8%80%83">参考</a></h3> <ul> <li><a target="_blank" rel="nofollow noopener" href="https://www.javadrive.jp/command/edit/index2.html">コマンドプロンプト | コマンドプロンプトに表示されているテキストの選択とコピー</a></li> <li><a target="_blank" rel="nofollow noopener" href="https://atmarkit.itmedia.co.jp/ait/articles/1508/28/news038.html">【まとめ】Windows 10で強化/追加されたコマンドプロンプトの機能:Tech TIPS - @IT</a></li> </ul> arm-band tag:crieit.net,2005:PublicArticle/17056 2021-05-04T11:55:50+09:00 2021-05-04T11:55:50+09:00 https://crieit.net/posts/Windows-Server-CertReq-CSR Windows Server の CertReq で作成した CSR の文字化けを回避する <p>Windows Server の <code>certreq.exe</code> を使って、 https 等を目的に サーバー証明書署名要求 (CSR) を作成した際に、 その CSR や署名後の CER で、 サブジェクト字が文字化けしてしまう場合がある。</p> <p><a href="https://crieit.now.sh/upload_images/2a94ae5a87f998674df6b4d30b4427bd6090b6a8103f8.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/2a94ae5a87f998674df6b4d30b4427bd6090b6a8103f8.png?mw=700" alt="certreq-unicode-00.png" /></a> <a href="https://crieit.now.sh/upload_images/903a4a7899522cbe94fec78c2657d4e96090b6aeb36cc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/903a4a7899522cbe94fec78c2657d4e96090b6aeb36cc.png?mw=700" alt="certreq-unicode-01.png" /></a></p> <p>この問題は、 <code>certreq.exe</code> にて、テキストファイル (.inf ファイル) から CSR を作成した場合に発生する。</p> <p>そしてこれは、 .inf ファイルを BOM付き UTF-16 LE で保存すれば解決する。<br /> (BOM付き/BOMなし の UTF-8 には対応していない)</p> <p><a href="https://crieit.now.sh/upload_images/86fdbbe43a80ce83bd3ac30183fe7f906090b6b15624c.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/86fdbbe43a80ce83bd3ac30183fe7f906090b6b15624c.png?mw=700" alt="certreq-unicode-02.png" /></a><br /> Windows のメモ帳であれば、 文字コードを Unicode に設定すれば、 OK だ。</p> <p>対処法は単純だが、原因が少しややこしかったので、少し深堀りしてみる。</p> <h2 id="CSR が文字化けする要因"><a href="#CSR+%E3%81%8C%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91%E3%81%99%E3%82%8B%E8%A6%81%E5%9B%A0">CSR が文字化けする要因</a></h2> <p>そもそも、文字化けする要因は以下の3カ所あった。</p> <ol> <li>.inf ファイルが ASCII (Shift_JIS) で保存すると Unicode の情報が失われる</li> <li>certreq.exe が .inf ファイルの文字コードの解決に失敗する</li> <li>X.509 の文字列のエンコードが UTF-8 が指定されていない</li> </ol> <p>(1) はまぁわかりやすいだろう。<br /> テルグ文字や絵文字など、 Shift_JIS に存在しない Unicode の文字が文字化けするのは、これが原因だ。</p> <p>ところが、 古い Windows Server (2012 あたりとか) だったり、 .inf の内容によっては、 非 Shift_JIS 文字だけでなく、 非Ascii 文字 (上のスクショで言うと "京都府" のあたり) も文字化けする場合がある。<br /> これは (1) だけでは説明がつかない。</p> <p>(2) については、 .inf ファイルが Shift_JIS や UTF-8 で保存されていると、 certreq.exe が文字コードの解決を誤ってしまう場合があるのが原因だ。<br /> おそらく、 OS のロケールなどを見て、 BOM付き UTF-16 LE ではないファイルが .inf ファイルに渡されたときの挙動が決まるのだと思われる。</p> <p>この問題も、 .inf ファイルを .inf ファイルを BOM付き UTF-16 LE で保存すれば、文字の解釈が明確になるので、文字化けしなくなる。</p> <p>なお、 (3) については、現行のサポート中の OS では気にする必要はないだろう。 古い OS だと、 HTTPS サーバー証明書の規格である X.509 で、扱う文字列を UTF-8 で記述するバージョンに対応していない可能性がある。</p> <h2 id="サーバー証明書のサブジェクトに顔文字を入れる"><a href="#%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%AE%E3%82%B5%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AB%E9%A1%94%E6%96%87%E5%AD%97%E3%82%92%E5%85%A5%E3%82%8C%E3%82%8B">サーバー証明書のサブジェクトに顔文字を入れる</a></h2> <p>試しに、 以下のような内容の <code>request.inf</code> ファイルを、 BOM付き UTF-16 LE で保存して、 certreq.exe で CSR ファイルを作成してみよう。</p> <pre><code class="text">[NewRequest] Subject = "CN=(´◉◞౪◟◉); OU=🥺; O=aquasoftware.net; L=京都市; ST=京都府; C=JP; [email protected]" X500nameflags = "CERT_NAME_STR_SEMICOLON_FLAG" KeyLength = 3072 KeySpec = AT_KEYEXCHANGE KeyUsage = "CERT_DIGITAL_SIGNATURE_KEY_USAGE | CERT_KEY_ENCIPHERMENT_KEY_USAGE" HashAlgorithm = sha256 MachineKeySet = True ProviderName = "Microsoft RSA SChannel Cryptographic Provider" ProviderType = 12 RequestType = CMC [EnhancedKeyUsageExtension] OID=1.3.6.1.5.5.7.3.1 [Extensions] 2.5.29.17="{text}" _continue_ = "DNS=aaa.example.com&" _continue_ = "DNS=bbb.example.com&" _continue_ = "IPAddress=192.0.2.1&" _continue_ = "IPAddress=192.0.2.2" </code></pre> <pre><code class="console">PS> certreq.exe -new .\request.inf .\csr.req CertReq: 要求が作成されました </code></pre> <p>.inf ファイルの書き方については、 <a target="_blank" rel="nofollow noopener" href="https://docs.microsoft.com/ja-jp/windows-server/administration/windows-commands/certreq_1">certreq | Microsoft Docs</a> のドキュメントを参照のこと。<br /> いくつか特徴的な部分について解説しておくと、</p> <ul> <li>Subject 内のパラメーターに <code>","</code> が使えるよう、 <code>X500nameflags</code> に <code>CERT_NAME_STR_SEMICOLON_FLAG</code> を指定して、区切りを <code>";"</code> に変更している。</li> <li><code>OID=1.3.6.1.5.5.7.3.1</code> の部分では、「拡張キー使用法」に「サーバー認証」の仕組みを与えている。</li> <li><code>[Extensions]2.5.29.17=...</code> の部分では、 SubjectAltName (SAN) に、 DNS や IpAddress を指定している。 SAN の指定がないと、 Chrome で証明書エラーになってしまうため。</li> </ul> <p>これを CA で署名してもらってサーバー証明書として使えば、サーバー証明書内で絵文字ですら使えるようになる。</p> <p><a href="https://crieit.now.sh/upload_images/6cb04d4d5eacfaa773cbe305c0c9f30e6090b6b40a165.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6cb04d4d5eacfaa773cbe305c0c9f30e6090b6b40a165.png?mw=700" alt="certreq-unicode-03.png" /></a> <a href="https://crieit.now.sh/upload_images/8ff19ca50b52e7e778d73072cb57cf9c6090b6b70a776.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/8ff19ca50b52e7e778d73072cb57cf9c6090b6b70a776.png?mw=700" alt="certreq-unicode-04.png" /></a></p> advanceboy tag:crieit.net,2005:PublicArticle/17053 2021-05-04T00:07:21+09:00 2021-05-04T00:19:24+09:00 https://crieit.net/posts/Windows10-Windows-Update-100 【Windows10】どうしても Windows Update が失敗してしまう場合の解決方法(ただし100%保障するものではないです) <p>自分用メモ。今後同じようなことが起こった時に対処できるように。<br /> <strong>※事前に失いたくないデータやファイルのバックアップを取っておくことを推奨します。</strong><br /> <strong>※予めキーボード・マウス・LANケーブル以外の周辺機器を外しておくことを推奨します。</strong></p> <h1 id="トラブルシューティング ツールを実行する"><a href="#%E3%83%88%E3%83%A9%E3%83%96%E3%83%AB%E3%82%B7%E3%83%A5%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0+%E3%83%84%E3%83%BC%E3%83%AB%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B">トラブルシューティング ツールを実行する</a></h1> <hr /> <p>スタート → 設定 → 「更新とセキュリティ」をクリック。<br /> <a href="https://crieit.now.sh/upload_images/55806b0e46433ff412e75b1573edd308609005431a745.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/55806b0e46433ff412e75b1573edd308609005431a745.png?mw=700" alt="image.png" /></a><br /> トラブルシューティング → 「追加のトラブルシューティング」をクリック。<br /> <a href="https://crieit.now.sh/upload_images/55806b0e46433ff412e75b1573edd308609005eb08f98.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/55806b0e46433ff412e75b1573edd308609005eb08f98.png?mw=700" alt="image.png" /></a><br /> Windows Update → 「トラブルシューティングツールの実行」をクリック。<br /> <a href="https://crieit.now.sh/upload_images/55806b0e46433ff412e75b1573edd3086090063cc52fb.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/55806b0e46433ff412e75b1573edd3086090063cc52fb.png?mw=700" alt="image.png" /></a><br /> トラブルシューティングツールの実行が完了したのち、再度 Windows Update を実行する。</p> <p>これで解決できた方、おめでとうございます!<br /> ダメだった方は次へ。</p> <h1 id="DISM コマンドを実行する"><a href="#DISM+%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B">DISM コマンドを実行する</a></h1> <hr /> <p>スタート → Windows システム ツール → 「コマンド プロンプト」を右クリック → その他 → 「管理者として実行」をクリック。<br /> <a href="https://crieit.now.sh/upload_images/55806b0e46433ff412e75b1573edd308609007887c66a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/55806b0e46433ff412e75b1573edd308609007887c66a.png?mw=700" alt="image.png" /></a><br /> 下記コマンドを実行する。</p> <pre><code>DISM.EXE /online /cleanup-image /restorehealth </code></pre> <p>コマンドの実行が完了したのち、再度 Windows Update を実行する。</p> <p>これで解決できた方、おめでとうございます!<br /> ダメだった方、めげずに次へ。</p> <h1 id="SFC(システム ファイル チェッカー)を実行する。"><a href="#SFC%EF%BC%88%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0+%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB+%E3%83%81%E3%82%A7%E3%83%83%E3%82%AB%E3%83%BC%EF%BC%89%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%80%82">SFC(システム ファイル チェッカー)を実行する。</a></h1> <hr /> <p>コマンドプロンプトを管理者で実行。<br /> その後、下記コマンドを実行する。</p> <pre><code>SFC /scannow </code></pre> <p>コマンドの実行が完了したのち、再度 Windows Update を実行する。</p> <p>これで解決できた方、おめでとうございます!<br /> ダメだった方、まだあきらめるには早い!次へ。</p> <h1 id="更新プログラムを手動でインストールする"><a href="#%E6%9B%B4%E6%96%B0%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E6%89%8B%E5%8B%95%E3%81%A7%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B">更新プログラムを手動でインストールする</a></h1> <p>※事前に、失敗した更新プログラムの「KB」を控えておいてください。<br />  (例:KB5001391 など)<br /> 「Microsoft®Update カタログ(<a target="_blank" rel="nofollow noopener" href="https://www.catalog.update.microsoft.com/home.aspx">https://www.catalog.update.microsoft.com/home.aspx</a>)」のサイトにアクセスする。<br /> <a href="https://crieit.now.sh/upload_images/55806b0e46433ff412e75b1573edd30860900a40962e0.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/55806b0e46433ff412e75b1573edd30860900a40962e0.png?mw=700" alt="image.png" /></a><br /> 事前に控えておいた「KB」で検索する。<br /> 自分が使用しているOSのバージョンに合わせて、更新プログラムをダウンロードする。<br /> <a href="https://crieit.now.sh/upload_images/55806b0e46433ff412e75b1573edd30860900ab675f45.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/55806b0e46433ff412e75b1573edd30860900ab675f45.png?mw=700" alt="image.png" /></a><br /> ダウンロードしたインストーラーを実行すると、Update が始まる。<br /> <a href="https://crieit.now.sh/upload_images/55806b0e46433ff412e75b1573edd30860900b511f9e7.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/55806b0e46433ff412e75b1573edd30860900b511f9e7.png?mw=700" alt="image.png" /></a></p> <p>これで解決できた方、おめでとうございます!<br /> ダメだった方…辛いだろうけど、次へ。</p> <h1 id="クリーンブート(+セキュリティ対策ソフトの停止)"><a href="#%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%83%96%E3%83%BC%E3%83%88%EF%BC%88%EF%BC%8B%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E5%AF%BE%E7%AD%96%E3%82%BD%E3%83%95%E3%83%88%E3%81%AE%E5%81%9C%E6%AD%A2%EF%BC%89">クリーンブート(+セキュリティ対策ソフトの停止)</a></h1> <p>Ctrl + Shift + Esc キーを押して、タスクマネージャーを起動し、「スタートアップ」タブをクリックする。<br /> 現在の設定状況を控えておく。(画面キャプチャーを取っておけば良いかと)<br /> その後、1つずつ右クリック → 無効化を選択し、全てを無効に設定する。<br /> <a href="https://crieit.now.sh/upload_images/55806b0e46433ff412e75b1573edd30860900dcc09c6e.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/55806b0e46433ff412e75b1573edd30860900dcc09c6e.png?mw=700" alt="image.png" /></a><br /> PCを再起動し、再度 Windows Update を実行する。</p> <p>ダメだったら、さらにセキュリティ対策ソフトを一時停止して、再度 Windows Update を実行する。<br /> (一時停止の方法は、使用しているセキュリティ対策ソフトのマニュアルを参照してください。)</p> <p>これで解決できた方、おめでとうございます!<br /> ダメだった方…(´・ω・ )…(`・ω・)次へ!</p> <h1 id="更新プログラムを削除する"><a href="#%E6%9B%B4%E6%96%B0%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B">更新プログラムを削除する</a></h1> <p>スタート → 設定 → 「更新とセキュリティ」をクリック。<br /> Windows Update → 「更新の履歴を表示する」をクリック。<br /> <a href="https://crieit.now.sh/upload_images/55806b0e46433ff412e75b1573edd30860900ec8ae160.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/55806b0e46433ff412e75b1573edd30860900ec8ae160.png?mw=700" alt="image.png" /></a><br /> 「更新プログラムをアンインストールする」をクリック。<br /> <a href="https://crieit.now.sh/upload_images/55806b0e46433ff412e75b1573edd30860900ee69ab5f.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/55806b0e46433ff412e75b1573edd30860900ee69ab5f.png?mw=700" alt="image.png" /></a><br /> 「アンインストール」と表示される更新プログラムを全て削除(アンインストール)する。<br /> <a href="https://crieit.now.sh/upload_images/55806b0e46433ff412e75b1573edd30860900f6053d5d.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/55806b0e46433ff412e75b1573edd30860900f6053d5d.png?mw=700" alt="image.png" /></a><br /> PCを再起動し、再度 Windows Update を実行する。</p> <p>これで解決できた方、おめでとうございます!<br /> ダメだった方……まだ…まだクリーンインストールを試すには早い!次へ!!</p> <h1 id="インプレース アップグレードを実行する"><a href="#%E3%82%A4%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%82%B9+%E3%82%A2%E3%83%83%E3%83%97%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B">インプレース アップグレードを実行する</a></h1> <p>下記サイトへアクセスする。<br /> Windows 10 のダウンロード(<a target="_blank" rel="nofollow noopener" href="https://www.microsoft.com/ja-jp/software-download/windows10/">https://www.microsoft.com/ja-jp/software-download/windows10/</a>)<br /> 「Update Assistantが~」の下にある「今すぐアップデート」をクリックする。<br /> <a href="https://crieit.now.sh/upload_images/55806b0e46433ff412e75b1573edd308609010e9b7190.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/55806b0e46433ff412e75b1573edd308609010e9b7190.png?mw=700" alt="image.png" /></a><br /> アップデート完了後、再度 Windows Update を実行する。</p> <p>これで解決できた方、おめでとうございます!<br /> (自分はこれで解決できました!ヾ(´∀` )ノ)</p> <p>ダメだった方………ごめんなさい、もう自分の手には負えません…。<br /> 諦めてクリーンインストールを試すか…別の方法を探すか…。<br /> 無事解決することを祈っています。(´-人-`)</p> <h1 id="【参考】"><a href="#%E3%80%90%E5%8F%82%E8%80%83%E3%80%91">【参考】</a></h1> <hr /> <p>Windows updateで発生するエラーコード:0x80073d02 の対処方法(<a target="_blank" rel="nofollow noopener" href="http://tensorflowz.com/WindowsUpdate/jp/errorcode/0x80073d02-update.html">http://tensorflowz.com/WindowsUpdate/jp/errorcode/0x80073d02-update.html</a>)</p> <p>Windows10 20H2 自動アップデートに失敗する (エラー; 0x8007000d )(<a target="_blank" rel="nofollow noopener" href="https://answers.microsoft.com/ja-jp/windows/forum/windows_10-update/windows10-20h2/0b367ee5-e225-4c4c-b5f3-0bb071175537">https://answers.microsoft.com/ja-jp/windows/forum/windows_10-update/windows10-20h2/0b367ee5-e225-4c4c-b5f3-0bb071175537</a>)</p> <p>Windows 10 でインプレース アップグレードを実行する方法(<a target="_blank" rel="nofollow noopener" href="https://answers.microsoft.com/ja-jp/windows/forum/all/windows-10/2d8dddf2-9c86-47e1-a8c7-08dd6d33bd17">https://answers.microsoft.com/ja-jp/windows/forum/all/windows-10/2d8dddf2-9c86-47e1-a8c7-08dd6d33bd17</a>)</p> acmz tag:crieit.net,2005:PublicArticle/16756 2021-03-17T21:06:15+09:00 2021-03-17T21:06:15+09:00 https://crieit.net/posts/easy-hack-to-put-a-signature-for-pixiv 【Windows】pixivの署名を簡単に入れよう <p>以前公開した<a href="https://crieit.net/posts/easy-hack-to-copy-date-yyyymmdd">「【Windows】日付8桁(yyyymmdd)を簡単にクリップボードに入れる方法」</a>という記事が意外と読まれていたので、その応用版みたいな話です。</p> <p>今回はpixivに投稿するイラストなどに入れるサインではなく、説明欄に入れるフッター的な意味の署名の話です。</p> <p>私も少し前からpixivやFantiaには署名を入れています。</p> <p><a href="https://crieit.now.sh/upload_images/57337ff99737f295753fdda886cce76d6051f0916f467.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/57337ff99737f295753fdda886cce76d6051f0916f467.jpg?mw=700" alt="001" /></a></p> <p>こんな感じですね。</p> <p>これをやると作品を見てくださった方が他のTwitterやブログなど、他の活動場所にも来ていただきやすくなるかな~…と思って入れています。期間が短く、別に計測している訳ではないので効果の程はわかりませんが。</p> <p>この署名、入れるのはいいのですが毎回以前のページからコピペするのって結構面倒くさいので、スクリプトで「署名をクリップボードに入れる」ところまでは自動化しています<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>。</p> <p>今回は、署名を書いたテキストファイルを別途用意して、そのファイルの内容をクリップボードに入れるためのスクリプトを用意します。</p> <p>まず署名ファイルを作成します。</p> <p>内容は好きに書いてください。署名のほかに簡単なメッセージなどを入れるものありでしょう。</p> <blockquote> <p>ほげほげ丸<br /> Blog https://example.com<br /> 無断転載はお控えください。<br /> Please do not reprint without my permission.</p> </blockquote> <p>これを<code>txt</code>で保存しますが、文字コードに<code>ANSI</code>を選んでください。他の文字コードだと文字化けしてしまいます。ファイル名はなんでもいいです。ここでは、「signature.txt」という名前で保存したとします。</p> <p>次に、バッチファイルを作成します。作成の仕方は冒頭で紹介した記事を参照してください。</p> <pre><code class="bat">clip < "signature.txt" </code></pre> <p><code>signature.txt</code>の部分は、先ほど作成したファイルに置き換えてください。これもファイル名はなんでもいいですが、「.bat」以外の部分を自分でタイプするので短くて覚えやすい名前の方が良いと思います。また、これも文字コードは<code>ANSI</code>を選んでください。「signature」を略して「sig」とかにすると覚えやすいと思います。「shomei」とかでも良いかも。まぁなんでもいいです。</p> <p>ファイル名にスペースを使っていない場合は、テキストファイル名を<code>"</code>で囲む必要はありません。スペースを入れる場合(「signature pixiv.txt」にする場合など)は、<code>"</code>で囲んでください。空白が入る場合は、<code>"</code>で区切らないと別のコマンドと認識され、正常に動作しません。</p> <p>あとは作成したテキストファイル(.txt)とバッチファイル(.bat)にPATHを通せば完了です。PATHを通す方法も、冒頭で紹介した記事を参照してください。</p> <p>これを実行して、テキストファイルに作成した署名がクリップボードに入っていることを確認してください。</p> <p>私は署名をpixiv用とFantia用に使い分けているので<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>、テキストファイルとバッチファイルをそれぞれ2つずつ作成し「sip」「sif」というコマンドで運用しています。(それぞれ「<strong>si</strong>gnature <strong>p</strong>ixiv」と「<strong>si</strong>gnature <strong>f</strong>antia」略です)</p> <p>これで、いちいち過去の作品からコピーとかしなくて済みます。いつでも<code>Windows</code>キーを押して<code>sigp</code>と入力して簡単に署名をコピーできます。やったね!</p> <p>まぁこんなもの用意しなくてもpixiv側で、各作品に共通の署名を入れられるようにしてくれればそれが一番いいんですけどね。プレミアム限定機能でもいいので…。YouTubeとかは確か、デフォルトのアップロード設定とかで概要のテンプレートを作れた気がします。最悪ああいうのでもいい。</p> <p>これを応用して、「頻繁に入力したい文字列」があるならコマンド化すると楽かもしれません。メールの署名とかは、各メーリングソフトの機能を使った方が楽だと思います。</p> <p>よかったらついでに私の<a target="_blank" rel="nofollow noopener" href="https://www.pixiv.net/users/4965862">pixiv</a>と<a target="_blank" rel="nofollow noopener" href="https://fantia.jp/fanclubs/26396">Fantia</a>を見てください(小声)</p> <div class="footnotes" role="doc-endnotes"> <hr /> <ol> <li id="fn:1" role="doc-endnote"> <p>DOM操作で署名を挿入するようなJavaScriptのコードをブックマークしておき、pixivのページ上で呼び出すという感じで簡単にできると思いますが、やっていいかどうか分からないのでここでは書きませんし推奨もしません。試したい人は自分で調べて自己責任でやってください。 <a href="#fnref:1" class="footnote-backref" role="doc-backlink">↩︎</a></p> </li> <li id="fn:2" role="doc-endnote"> <p>FantiaはURLの内容を勝手に展開してカード状にしてくれるおせっかいな機能があり、それによりデザインが損なわれるので「https://」を省略した文字列を署名に出すようにしています。リンクにはなりませんが見た目崩れるよりは良いので…。 <a href="#fnref:2" class="footnote-backref" role="doc-backlink">↩︎</a></p> </li> </ol> </div> あぱしょに tag:crieit.net,2005:PublicArticle/16719 2021-03-05T21:11:41+09:00 2021-03-06T03:57:48+09:00 https://crieit.net/posts/easy-hack-to-copy-date-yyyymmdd 【Windows】日付8桁(yyyymmdd)を簡単にクリップボードに入れる方法 <p>PCで作業をしていると、フォルダ名とかファイル名に日付8桁を入れたたいなと思うことがあると思います。例えば2021年3月5日なら「20210305」とかですね。</p> <p>日付を確認して入れるだけなのですが、いちいちカレンダーを確認するのもめんどいし入力するのもめんどいので楽にできる方法を考えました。</p> <p>あまり詳しくない方に向けて書いていますので詳しい方からすると長ったらしいと感じられるかもしれませんが、分かる箇所は適宜読み飛ばしてください。</p> <h2 id="手順"><a href="#%E6%89%8B%E9%A0%86">手順</a></h2> <ol> <li>クリップボードに日付8桁(yyyymmdd)を入れてくれるバッチファイルを用意する</li> <li>PATHを通す</li> <li>バッチを実行する</li> </ol> <p>の3点です。</p> <h2 id="バッチファイルを用意"><a href="#%E3%83%90%E3%83%83%E3%83%81%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E7%94%A8%E6%84%8F">バッチファイルを用意</a></h2> <p>メモ帳を開いて、以下の内容をコピペしてください。</p> <pre><code class="bat">SET /P ="%date:~0,4%%date:~5,2%%date:~8,2%"< nul | clip </code></pre> <p>ファイルを保存します。この時、ファイルの種類は「すべてのファイル(<em>.</em>)」を選択してください。また、ファイル名は「.bat」まで入力してください</p> <p><a href="https://crieit.now.sh/upload_images/c576981c6bc43e5eacaf40e4b74a7d1d60421f9c1b7d2.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/c576981c6bc43e5eacaf40e4b74a7d1d60421f9c1b7d2.jpg?mw=700" alt="001" /></a></p> <p>ファイル名は任意の名前をつけてください。ただし、日付をクリップボードにコピーする際にこのファイル名の「.bat」を除いた部分を入力するので、短くて覚えやすいファイル名が良いです。</p> <p>私は日付(date)8桁ということで「d8.bat」としています。</p> <p>また、保存先のフォルダはどこでも問題ないので、任意のフォルダに保存してください。デスクトップでもOKです。</p> <p>ファイルを保存したら、ダブルクリックして実行してください。上手く出来ていれば、一瞬黒い画面が表示されると思います。</p> <p>また、適当なメモ帳などに貼り付けをして、日付8桁がコピーされていることを確認してください。</p> <p>簡単に内容を解説しますと、<code>%date%</code>というのは日付を「/」区切りで表示するのですが、今回は「/」部分はいらないので数字の部分だけを抜き出して、クリップボードに格納しています。</p> <h2 id="PATHを通す"><a href="#PATH%E3%82%92%E9%80%9A%E3%81%99">PATHを通す</a></h2> <p>通常、ファイルを実行するにはそのファイルが保存されているフォルダの位置を教えて実行する必要があります。単に「d8.bat」を実行するように命令しても、PCは「d8.batがどこにあるか分からない」ので実行できません。</p> <p>しかし、PCに「d8.batというファイルはこのフォルダにあるよ」と予め教えてあげることで、「d8.batを実行してね」という命令だけで実行してくれるようになります。</p> <p>「ファイルがここにあるよ」とPCに教える作業を「PATHを通す」と言ったりします。その作業をここでは行います。</p> <p>PATHを通すにはPCの設定を行う必要があります。</p> <p><code>Windows</code>キーを押して「path」と入力すると、「環境変数を編集」というメニューが現れるのでクリックします。<br /> <a href="https://crieit.now.sh/upload_images/8f3b8bdb9e0883525065ea3e0cd1307860421fab3e5df.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/8f3b8bdb9e0883525065ea3e0cd1307860421fab3e5df.jpg?mw=700" alt="002" /></a></p> <p>「Path」というところをクリックし、「編集(E)...」をクリックします。<br /> <a href="https://crieit.now.sh/upload_images/cbea3bab4c65185bc9d9fb45d6a1b9d560421fbaaf0b8.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/cbea3bab4c65185bc9d9fb45d6a1b9d560421fbaaf0b8.jpg?mw=700" alt="003" /></a></p> <p>「新規(N)」をクリックします。<br /> <a href="https://crieit.now.sh/upload_images/4a5454b9256fcff5db6b0ce92923e64960421fcaa25ba.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/4a5454b9256fcff5db6b0ce92923e64960421fcaa25ba.jpg?mw=700" alt="004" /></a></p> <p>すると、入力用のテキストボックスが表示されるので、ファイルを保存したフォルダをここに入力します。<br /> <a href="https://crieit.now.sh/upload_images/0e267e044307aa6373acaa767e0cf79160421fd90594f.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/0e267e044307aa6373acaa767e0cf79160421fd90594f.jpg?mw=700" alt="005" /></a></p> <p>たとえば、「D:\tools」というフォルダに保存した場合は、「D:\tools」と入力します。</p> <p>エクスプローラーのアドレスバーからコピーすることもできます。<br /> <a href="https://crieit.now.sh/upload_images/8bf9109c698ed9bad11575df1ee3e6ca60421fe67a062.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/8bf9109c698ed9bad11575df1ee3e6ca60421fe67a062.jpg?mw=700" alt="006" /></a></p> <p>入力したら、「OK」をクリックします。<br /> <a href="https://crieit.now.sh/upload_images/4b14d515a7c15e9a6bcba8bfd309eae460421ff1efbf6.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/4b14d515a7c15e9a6bcba8bfd309eae460421ff1efbf6.jpg?mw=700" alt="007" /></a></p> <p>これでPATHを通すことができました。あとは、コマンドプロンプトなどから保存したファイルの名前を実行すれば、クリップボードに日付8桁が保存されます。</p> <h2 id="実行"><a href="#%E5%AE%9F%E8%A1%8C">実行</a></h2> <p>コマンドプロンプトやPowerShellから実行するほか、エクスプローラーのアドレスバーなどからでも「d8」で実行できます。特にエクスプローラー上でサクッと実行できるのは、いちいちコマンドプロンプトやPowerShellを立ち上げなくてよいので便利ですね。</p> <p>また、日付のフォーマットも自由に調整できます。たとえば日時まで入れたい場合は、最初のバッチファイルの内容を変更すれば可能なので、好きにアレンジして使ってみてください!</p> <p>定期的に貼り付けたい定型文字列なんかも、別のファイル名で登録すると色々はかどるかもしれません。簡単なスクリプトで便利にできるハックは意外と多そうですね!</p> あぱしょに tag:crieit.net,2005:PublicArticle/16690 2021-02-19T02:27:51+09:00 2021-02-19T02:27:51+09:00 https://crieit.net/posts/PowerShell-602ea39702454 PowerShell でインストール済プログラム一覧を取得する <p>PowerShell を Windows の管理ツールとしてみたときに、割と昔から意味がわからないと思っていることが 1点 ある。<br /> <strong>Windows のインストール済みプログラム一覧を取得するコマンドがない</strong>ことだ。</p> <p>もう少し具体的に言うと、<code>appwiz.cpl</code> で開ける、コントロールパネルのプログラムと機能の一覧や、 設定の「アプリと機能」の一覧を取得するコマンドレットがない。<br /> コマンドレットがないだけじゃなく、コードを書いて取得する確立して手段すら存在しないのだ。</p> <p>とりあえず、それに近い情報がとれる代替方法として、レジストリのアンインストーラー一覧を取得する方法が知られている。<br /> ただ、ググってもあまり PowerShell らしい綺麗 (?) なコードで書かれているサンプルが少なかったので、ワンライナーで書いてみる。</p> <pre><code class="powershell">Get-ChildItem -LiteralPath (('HKLM:', 'HKCU:' | %{ "${_}\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" }) + 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall') | Get-ItemProperty -Name DisplayName, DisplayVersion, Publisher, InstallDate -ErrorAction Ignore; </code></pre> <p>これで取得した内容を <code>| Sort-Object DisplayName, DisplayVersion</code> や <code>| Select-Object DisplayName, DisplayVersion</code> などにパイプしてから使うと良いだろう。</p> <hr /> <p>ちなみに WMI の Win32_Product クラスを使って取得する方法 (<code>Get-CimInstance -ClassName Win32_Product</code>) は、</p> <ul> <li>MSI でインストールしたアプリしか取得できない</li> <li>コンピューターはMSIがインストールされているすべてのアプリケーションを再検証するので、負荷がかかるし遅い</li> </ul> <p>と言うことから使うべきではないとされている。<br /> <a target="_blank" rel="nofollow noopener" href="https://community.idera.com/database-tools/powershell/ask_the_experts/f/powershell_for_windows-12/22674/get-wmiobject--class-win32_product-doesn-t-list-all-installed-applications">Get-WmiObject -class win32_product doesn't list all installed Applications - PowerShell for Windows - Ask the Experts - IDERA Community</a></p> advanceboy tag:crieit.net,2005:PublicArticle/16492 2021-01-03T18:51:40+09:00 2021-02-08T12:51:36+09:00 https://crieit.net/posts/Windows-10-DNS 【Windows 10】DNSキャッシュをコマンドでクリアする <h2 id="クリアする場合"><a href="#%E3%82%AF%E3%83%AA%E3%82%A2%E3%81%99%E3%82%8B%E5%A0%B4%E5%90%88">クリアする場合</a></h2> <p>コマンドプロンプトで以下を実行する</p> <pre><code class="dos">> ipconfig /flushdns </code></pre> <h2 id="キャッシュ状況を見る場合"><a href="#%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5%E7%8A%B6%E6%B3%81%E3%82%92%E8%A6%8B%E3%82%8B%E5%A0%B4%E5%90%88">キャッシュ状況を見る場合</a></h2> <pre><code class="dos">> ipconfig /displaydns </code></pre> arohajiro tag:crieit.net,2005:PublicArticle/16490 2021-01-03T18:47:33+09:00 2021-02-08T12:53:24+09:00 https://crieit.net/posts/Windows-10-Wi-Fi 【Windows 10】Wi-Fiをコマンドで切断する <h2 id="Wi-Fiを切断する場合"><a href="#Wi-Fi%E3%82%92%E5%88%87%E6%96%AD%E3%81%99%E3%82%8B%E5%A0%B4%E5%90%88">Wi-Fiを切断する場合</a></h2> <p>コマンドプロンプトで以下を実行するだけ</p> <pre><code class="dos">> netsh wlan disconnect </code></pre> <h2 id="Wi-Fiを接続する場合"><a href="#Wi-Fi%E3%82%92%E6%8E%A5%E7%B6%9A%E3%81%99%E3%82%8B%E5%A0%B4%E5%90%88">Wi-Fiを接続する場合</a></h2> <pre><code class="dos">> netsh wlan connect name="SSID名" </code></pre> <h3 id="接続可能なSSIDを調べる場合は以下"><a href="#%E6%8E%A5%E7%B6%9A%E5%8F%AF%E8%83%BD%E3%81%AASSID%E3%82%92%E8%AA%BF%E3%81%B9%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AF%E4%BB%A5%E4%B8%8B">接続可能なSSIDを調べる場合は以下</a></h3> <pre><code class="dos">> netsh wlan show profiles </code></pre> arohajiro tag:crieit.net,2005:PublicArticle/16479 2021-01-03T18:06:35+09:00 2021-03-01T07:50:26+09:00 https://crieit.net/posts/Chocolatey 【Chocolatey】コマンドでパッケージ管理する <p>Chocolateyのよく使うコマンドの適当メモ</p> <h2 id="動作確認済み環境"><a href="#%E5%8B%95%E4%BD%9C%E7%A2%BA%E8%AA%8D%E6%B8%88%E3%81%BF%E7%92%B0%E5%A2%83">動作確認済み環境</a></h2> <ul> <li>Chocolatey v0.10.15</li> <li>Windows 10 Pro Version.1903</li> </ul> <h2 id="操作コマンド"><a href="#%E6%93%8D%E4%BD%9C%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89">操作コマンド</a></h2> <p>PowerShellかコマンドプロンプトを起動し、以下のコマンドを実行します</p> <h3 id="パッケージのインストール(要管理者権限)"><a href="#%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%28%E8%A6%81%E7%AE%A1%E7%90%86%E8%80%85%E6%A8%A9%E9%99%90%29">パッケージのインストール(要管理者権限)</a></h3> <pre><code class="dos">> choco install "パッケージ名" </code></pre> <p>例) zoomのインストール</p> <pre><code class="dos">> choco install zoom </code></pre> <h3 id="パッケージのアンインストール(要管理者権限)"><a href="#%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AE%E3%82%A2%E3%83%B3%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%28%E8%A6%81%E7%AE%A1%E7%90%86%E8%80%85%E6%A8%A9%E9%99%90%29">パッケージのアンインストール(要管理者権限)</a></h3> <pre><code class="dos">> choco uninstall "パッケージ名" </code></pre> <p>例) zoomのアンインストール</p> <pre><code class="dos">> choco uninstall zoom </code></pre> <h3 id="インストール済みパッケージの確認"><a href="#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%B8%88%E3%81%BF%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AE%E7%A2%BA%E8%AA%8D">インストール済みパッケージの確認</a></h3> <pre><code class="dos">> choco list -l </code></pre> <p>出力例)</p> <pre><code>Chocolatey v0.10.15 chocolatey 0.10.15 chocolatey-core.extension 1.3.5.1 DotNet4.5.2 4.5.2.20140902 sakuraeditor 2.3.2.0 slack 4.4.0 vagrant 2.2.7 vscode 1.42.1 vscode.install 1.42.1 zoom 4.8.5336.0932 9 packages installed. </code></pre> arohajiro tag:crieit.net,2005:PublicArticle/16461 2021-01-03T16:04:55+09:00 2021-01-15T12:03:47+09:00 https://crieit.net/posts/Windows-SID-Sysprep 【Windows】SID重複によるドメイン参加エラーをSysprepを使って回避する方法 <h3 id="事象"><a href="#%E4%BA%8B%E8%B1%A1">事象</a></h3> <p>先日ActiveDirectoryの検証のため、検証機のWindows Server 2012 R2でドメイン参加しようとしたら以下のエラーが発生してドメイン参加できませんでした<br /> <a href="https://crieit.now.sh/upload_images/c0edb37e1c292c21865bf2f2106edc595ff16bc5b62e9.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/c0edb37e1c292c21865bf2f2106edc595ff16bc5b62e9.png?mw=700" alt="d2f039ed85b5464bb3845782a8f55f77.png" /></a><br /> 「参加しようとしているドメインのSIDがこのコンピュータのSIDと同一であるため...」ん、んー??</p> <h3 id="原因"><a href="#%E5%8E%9F%E5%9B%A0">原因</a></h3> <p>うっかりしてました、よくよく考えるとWindows Server 2012 R2が動作している仮想マシンを複製(クローン)して、それぞれドメインコントローラー用のサーバAとドメインに参加する用のサーバBとして検証環境を構築したためAとBが同一のSIDでした。そりゃエラーになりますね。</p> <h3 id="回避方法"><a href="#%E5%9B%9E%E9%81%BF%E6%96%B9%E6%B3%95">回避方法</a></h3> <p>サーバAかBをSysprepで一般化してSIDを初期化すればSID重複によるドメイン参加エラーを回避できます</p> <h3 id="確認済み環境"><a href="#%E7%A2%BA%E8%AA%8D%E6%B8%88%E3%81%BF%E7%92%B0%E5%A2%83">確認済み環境</a></h3> <ul> <li>VirtualBox 6.0.14</li> <li>Windows Server 2012 R2</li> </ul> <h3 id="Sysprepで一般化する方法"><a href="#Sysprep%E3%81%A7%E4%B8%80%E8%88%AC%E5%8C%96%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95">Sysprepで一般化する方法</a></h3> <h4 id="1. Sysprepプログラム本体のあるフォルダを開く"><a href="#%EF%BC%91.%E3%80%80Sysprep%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E6%9C%AC%E4%BD%93%E3%81%AE%E3%81%82%E3%82%8B%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%82%92%E9%96%8B%E3%81%8F">1. Sysprepプログラム本体のあるフォルダを開く</a></h4> <p>ファイル名を指定して実行から、名前に「sysprep」と入力して実行すると<br /> System32フォルダのSysprepフォルダが開かれます<br /> <a href="https://crieit.now.sh/upload_images/8c17deda7a9c34dbe3667fe9aa8d39a65ff16c00dd2a4.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/8c17deda7a9c34dbe3667fe9aa8d39a65ff16c00dd2a4.png?mw=700" alt="76efc6b345c29c4790bf83bbae9bec9f.png" /></a></p> <h4 id="2. Sysprepプログラムを実行する"><a href="#%EF%BC%92.%E3%80%80Sysprep%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B">2. Sysprepプログラムを実行する</a></h4> <p>Sysprepフォルダにあるsysprep.exeを実行すると<br /> システム準備ツール(Sysprep)が起動します<br /> <a href="https://crieit.now.sh/upload_images/2f58a1dba721305d68ad085859c57f205ff16c1469498.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/2f58a1dba721305d68ad085859c57f205ff16c1469498.png?mw=700" alt="2b9ef22372bc6ec23b548722968e7299.png" /></a></p> <h4 id="3. 一般化して再起動"><a href="#%EF%BC%93.%E3%80%80%E4%B8%80%E8%88%AC%E5%8C%96%E3%81%97%E3%81%A6%E5%86%8D%E8%B5%B7%E5%8B%95">3. 一般化して再起動</a></h4> <p><strong>一般化</strong>にチェックを入れてOKを実行すると<br /> 一般化によりSIDが初期化され自動的にOSが再起動します<br /> <a href="https://crieit.now.sh/upload_images/465ace88e69e917fe69e6a0652a8e4b85ff16c3313db3.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/465ace88e69e917fe69e6a0652a8e4b85ff16c3313db3.png?mw=700" alt="628092b94d023c7b06a107ee98efdaf2.png" /></a><br /> <a href="https://crieit.now.sh/upload_images/745f7c07dfde6c9c20ce012a726e6cc95ff16c3fefbaa.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/745f7c07dfde6c9c20ce012a726e6cc95ff16c3fefbaa.png?mw=700" alt="26f021d9fd4855a8b7966b0ac4b6e476.png" /></a></p> <p>SID以外にライセンス情報も同時に初期化されますので<br /> 再起動後は<strong>ライセンスの同意</strong>と<strong>Administratorアカウントのパスワード設定</strong>が必要になります。<br /> これでドメイン参加でエラーは出なくなります!</p> <p>Windowsの仮想マシン複製して検証する時は、SID重複に気をつけましょうね。<br /> 複製元の仮想マシンにあらかじめSysprep一般化を実行していくと良いかと思います。<br /> 最近Linuxばかり触っていたので、すっかりSIDのこと忘れていました。。。反省</p> arohajiro tag:crieit.net,2005:PublicArticle/16195 2020-11-02T08:25:17+09:00 2020-12-07T09:36:40+09:00 https://crieit.net/posts/Windows-5f9f43dd961d4 【Windows】評価版ライセンスの有効期限をリセットする <p>評価版ライセンスの有効期限がきれた場合にリセット可能回数が0でない場合は以下のコマンドでリセットすることで評価期間の延長が可能です。</p> <ul> <li>Windows Server 2012R2で動作確認済み</li> <li>コマンドはコマンドプロンプトで実行します</li> </ul> <h3 id="リセット可能回数の確認"><a href="#%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%E5%8F%AF%E8%83%BD%E5%9B%9E%E6%95%B0%E3%81%AE%E7%A2%BA%E8%AA%8D">リセット可能回数の確認</a></h3> <pre><code class="dos">> slmgr -dlv </code></pre> <h3 id="評価版ライセンスの延長(リセット)"><a href="#%E8%A9%95%E4%BE%A1%E7%89%88%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9%E3%81%AE%E5%BB%B6%E9%95%B7%28%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%29">評価版ライセンスの延長(リセット)</a></h3> <p>要サーバ再起動です</p> <pre><code class="dos">> slmgr -rearm </code></pre> <h4 id="サーバ再起動"><a href="#%E3%82%B5%E3%83%BC%E3%83%90%E5%86%8D%E8%B5%B7%E5%8B%95">サーバ再起動</a></h4> <pre><code class="dos">> shutdown -r -t 0 </code></pre> arohajiro