Chinachu(Docker+PX-Q3PE4)+Amatsukazeによる録画+自動CMカット・エンコーディングを行う録画システムの構築

最近、家の大掃除と並行してNW構成や仮想基盤についてもすべて再設計しての作り直しを行っていたのだが、そんな中でPLEXのPX-Q3PE4が手に入ったので、せっかくだから今風の録画システムを作ってみることにする。

今風というにはちょっと古いかもしれないが、録画の管理には安定して動作してそうなChinachuを使う。 録画サーバ側の構築はめんどくさいのでDockerで行う。

また、CMの自動カット・エンコーディングについても自動で行わせたい。 なので、別途Windowsサーバを用意してAmatsukazeをサーバとして稼働させることにした。 こちらではNvidiaのGPUを使って、ハー...


YubikeyでWindows 10ログイン時に二要素認証を行うよう設定する

Windows 10でYubikeyを用いたログイン・ロック解除時の二要素認証設定をする機会があったので、記録として残しておく。 Mac OS Xでの設定についてはこちらでやっている。 なお、事前にチャレンジレスポンスの設定は行っているものとするが、以下の点について注意が必要。

  • 鍵作成時に「Require user input(button press)」のチェックは外しておくこと
    • →このチェックが入った状態だと、ログイン時にボタンをタッチしても認識されず、エラーになってログインできなくなるため
  • バックアップキーには同じ鍵を登録すること
    • →複数の鍵を登録できないため
  • ...

ふと、PowerShellでMac OS Xのsayコマンドのようにテキストを合成音声で読み上げさせることができないかと思い調べてみたところ、Add-Typeで.NetのSpeechSynthesizerを追加したらできそうだったので、試しにやってみることにした。 なお、OSはWindows 10を用いている。


Windows Server 2012R2/2016を評価版でインストールして、それを評価期間後に製品版に引き換える場合、PowerShellで以下のようにコマンドを実行してライセンス登録する必要がある。 (なお、StandardEdtionを想定)

DISM /online /Set-Edition:ServerStandard /ProductKey:ライセンスキー /AcceptEula

特定のネットワークに対し、疎通確認や稼働しているホストを確認する場合、よく以下のようなforを使用して確認処理を行うことがある。

for a in `seq 1 254`; do ping -c 1 -w 0.5 対象セグメント(第3オクテットまで).$a > /dev/null && arp -a 対象セグメント(第3オクテットまで).$a | grep ether; done

ただ、コレってやはりちょっと扱いにくい上、1個づつping打ってくからやっぱ遅い。 直接接続しているセグメントだったら、arp-scanだったりnmapだったり使えばすぐに取得できるのだが、その辺のコマン...


Windowsで作業をしていると、時折DOSコマンド(ネットワーク系のコマンドとか)を管理者として実行させたい時がある。 個人的に、あまりマウス操作のためにキーボードから手を離したくない性質なので、そういった場合は[Windowsキー押下]そのまま対象のプログラム名を入力して検索(cmd)起動したいプログラム名(コマンドプロンプト)を選択して、[Ctrl] + [Shift] + [Enter]キーを押下して管理者として実行 させているのだが、開きっぱなしのコマンドプロンプトからそのまま管理者としてコマンドを実行したい場合もある。 プログラムを別途インストールすれば楽み...


Windows Server 2012 R2のActive Directory DSに内部CAの証明書を入れてLDAP over SSLの設定をする

Windows ServerでActive Directory Domain Contoller(以降AD DC)を構築した場合、最初から389番ポート経由でLDAP通信が行えるのだが、このままだと暗号化されていない(Active Directoryとして通信した場合はその手前で暗号化されているので問題ない)。 パケットキャプチャでLDAPのパスワードとかが丸見えになるので、これはよろしくない。 で、AD DCの場合だと最初からLDAPS(LDAP over SSL:636)がオープンになっているため、クライアント側でCA証明書がインポートされていれば、あとはドメインコントローラー側にサーバ証明書をインポートしてやればLDAPSでの通信が行えるようになる。


Windows 10のExplorerで260文字以上のPATHを取り扱う

WindowsのExplorerでよくある制限といえば、PATHの長さが全体で260文字以上のファイルやディレクトリを扱えないというものだ。 例えば、異常に長い名前のファイルを作成し、それをさらに下の階層に移動させてみようとすると、以下のようなエラーになってしまう。

で、2016年8月に行われたAnniversary Updateにより、この制限を突破するための機能が追加されたらしい。

グループポリシーの設定から変...


Windowsで、Linuxのようにinotify-toolsを使ってファイルの作成や編集、削除について検知とかをするにはどうすればいいのかなと思って調べてみた。 どうやら、PowerShellでもやろうと思えばできるようだ。 Windowsでinotifyのようにファイルのイベントを検知する場合は「System.IO.FileSystemWatcher」を用いることで同様のことが行える。

参考元に記述されているようなPowerShellスクリプトを記述することで、指定されたログに監視PATHで発生したイベントをログに記録させることができるようだ。 ちょっとだけ記述を変えて試してみたので、...


Windowsのコマンドプロンプト上でUNIXのfileコマンドと同じようなことができる『TrID』

UNIX系OSでは、ファイルのマジックナンバーなどからファイルの種別(何のスクリプトか、バイナリの種類、鍵ファイルかどうかなど)やエンコード形式などを確認できるfileコマンドというのがあるのだが、Windows環境ではそれに対応するようなコマンドはデフォルトでは用意されていない。 で、fileコマンドをより強化したようなツール『TrID』がWindowsでも動作する(もちろんLinux用バイナリもある)ので、これについて紹介する。

このTrID、使い方は簡単でWin32用のバイナリとTrIDDefs.TRDのファイルをダウンロードして、同じディレクトリに配置してやればよい。 あとは、以下のようにコマンドを実行するだけだ。


Chromeでスペルチェックを無効化する

Chromeで、ちょっと英単語とかのスペルチェックが邪魔だったので無効化することにした。 Windows版の場合だと、「chrome://settings/」で詳細設定画面を開き、「言語と入力の設定」から「スペルチェックを有効にする」のチェックを外せばよい。


前回記述したプライベート認証局の構築から、クライアントへのCA証明書のインストール方法のみ抜粋。
各種OSでの配布したルート証明書のインストール方法は、以下のようになっている。

1. Windowsの場合

作成したルートCA証明書をダブルクリックし、「証明書のインストール」でインストールする。
なお、インストール時には「現在のユーザ」を使い、かつ証明書ストアは「信頼されたルート証明機関」を選択する。

コマンドでルート証明書をインストールする場合は、以下のようにする。

certutil -addstore -f "ROOT" ルートCA証明書

2.Mac OS Xの場合

...
RundeckでWindowsに対しジョブを実行する

Rundeckでは対象のノードに処理を実施する場合、ssh接続してコマンドを実行するのだが、Windowsに対しジョブを実行する場合はWinRMを使うのがよさそうだ。
Windows 10とかならsshサーバも使えるようになったし、それ使えばいいんだろうけど、いかんせんWindows Server 2008/2012 R2などにはsshサーバの機能はない(OpenSSHとか入れればできる)。

できればWindowsとして提供されている機能でアクセスしたいなぁ…ということで、WinRMを用いての接続をする。
プラグインはこちら。なお、触ってみた限りRundeck側でスクリプトを書いて...


Windowsで更新日が○日前のファイルを削除する方法

先日、Twitterで『Windowsで更新日が◯日前のファイルを削除する方法』について見かけたので、そういえばどのくらいあるんだろう?と思って調べてみた。
もともとPowerShellではできるであろうとは認識してたので、他にもお手軽な方法があるのかなと。

1.PowerShellの場合

まぁ、PowerShellでやる方法についてはMicroSoftでも公式で例を出してるので…。
PowerShellの2と3で、以下のようなやり方があるようだ。

PowerShell2

Get-ChildItem パス名 –Recurse | Where-Object{$_.Crea...

Windowsでスタティックルートの設定方法(CUI/GUI)

Windowsでスタティックルートを構成する場合は、CUI(コマンドプロンプト)から行う方法とRouting and RemoteAccess(RRAS)で設定する方法の2パターンがある。
基本的にはコマンドでやるほうがお手軽ですぐ終わるのでそちらが主流だと思うのだが、念のためRRASでの設定方法についても残しておく。

1.コマンドプロンプトで設定する

コマンドプロンプトで設定する場合は、以下のようにコマンドを実行すればよい。
指定されている「-p」オプションを付与することで、再起動後も設定を保持させる。

route -p add "宛先ネットワーク" mask "ネットワーク...

先日、LinuxでGraylog Collector Sidecar経由でのGraylogでのログ収集についての方法を記述したので、今回はWindows。
といっても、基本的な流れは変わらない。Graylog Collector SidecarとNXLogをインストールして設定、ログを集めるだけだ。

1.Graylog Collector Sidecarのインストール・起動

まずは、こちらからGraylog Collector Sidecarのインストール用exeをダウンロードして実行、インストールをする。

2.NXLogのインストール・設定

次に、NXLogのインストー...


WindowsでBatchやPowerShellを用いて、Linuxと同じように空ファイルや空ディレクトリを抽出、それらを一括削除する方法があるかを調べてみた。

1.空ファイルの削除

カレントディレクトリ配下の空ファイルを一括削除する場合、以下のようにする。
(PowerShellの方は再帰的に削除させている)

Batch(cmd)の場合

for %F in (*) do if %~zF equ 0 del "%F"

PowerShellの場合

get-childItem -recurse | where {$_.length -eq 0} | remove-It...

WindowsのBatch(cmd)/PowerShellでファイルの空行を削除する

以前、LinuxやMacのコンソール上での空行削除についてまとめたが、Windowsではどうするのだろう?と思ったので、少し調べてみた。
さすがにLinuxやMacほど応用は効かないしわかりにくい、タイピングしにくい…LinuxやUNIXに慣れてるとかなり扱いづらいけど、とりあえず実現はできるようだ。

1.Batch(cmd)でファイルのすべての空行を削除する

Batch(コマンドプロンプト)でファイルのすべての空行を削除する場合、以下のようにする。

findstr /v /r /c:"^\ *$" 対象ファイル

C:\Users\test>type blank_te...

『もしOSをXXXに例えたら』系の記事をまとめてみた

以前、『もしプログラミング言語をXXXに例えたら』系の記事をまとめたが、今度はOSを何かに例えた記事のまとめ。

各OS(Mac,Linux,Windows)で比較している記事

【翻訳】UNIX,Windows,Linux,Mac OS X…もしOSを家に例えるなら

元ネタはこちらの「What If Unix, Windows, Linux And OS-X Were Houses?」。
各OSを家に例えてみた、という記事。

【翻訳】OSを自転車にたとえてみた

元ネタはこちらの「IfComputers Were Bikes, What Bikes Would ...


【翻訳】OSを自転車にたとえてみた

久々に翻訳系。
各種OSを、自転車の種類にたとえてみるという記事。

元ネタはこちらの「If Computers Were Bikes, What Bikes Would They Be?」という記事。
2009年の記事なのでちょっと古いけど、自転車に例えるというのが珍しいのでちょっとおもしろかった。

至らない翻訳だと思うのですが、その辺は多めに見てもらえれば…

MacOS X = フィクシーバイク

Mac OS Xを例えるのは簡単。フィクシーバイク(ピストバイク)だ。
このバイクはシンプルで美しく、少し使いやすさを犠牲にしている、そんなところがMacに似ていま...


Windows 10の新機能「仮想デスクトップ」を利用する

MacやUbuntu デスクトップを使っている人であればお馴染みの仮想デスクトップだが、Windows 10でついに公式に機能として組み込まれた。
仮想デスクトップというものがどういったものか知らない人に簡単に説明すると、一つのOSで複数のデスクトップを使うというイメージ。例えばこのデスクトップではChromeとteratermを、このデスクトップではエディタとそれに関連することを調べているブラウザだけを開くといったようにしておくと、「Alt + Tab」でウィンドウを選択するときにはその仮想デスクトップで開いているウィンドウしか選択されないので、複数プログラムを開いて仕事する際に整理しやすいという機能だ。


Windows 10 Homeにリモートデスクトップ接続できるようにする

Windows 10 Homeも、今までのWindows 7や8と同じくRemote Desktopのホストになる機能はない。
で、7や8の場合だったらConcurrent RDP Patcherを利用すれば機能を追加できたので、Windows 10でも似たようなツールがあるだろうと調べたところ、RDP wrapperというツールが作成されていた。
今回はこれを使って、Windows 10 Homeでリモートデスクトップが利用できるようにする。

RDP wrapperでリモートデスクトップを有効にする

まずは、こちらからRDP wrapperの最新版(latest)をダウン...


Windows 10で「DeskScapes」を使って動く壁紙にする

Windows 10で動画ファイルやgifなどを使って動く壁紙を作る場合、前に紹介したBioniX Animated Wallpaperを使うか、今回紹介する「DeskScapes」を使う方法がある。
※なお、こちらはFencesを開発したStarDockのソフトなのだけど、有料のソフトなので注意。今回は30day Trialでお試し。

まず、こちらからDeskScapesの「30-day Trial」をダウンロードしてくる。
ダウンロードした「DeskScapes8_cnet_setup.exe」を実行し、インストールを進めていく。

...

Windows 10で「デスクトップの背景として設定」を右クリックメニュー(コンテキストメニュー)から削除する

家のPCをWindows 10に切り替えたので、Windows 7/8.1などでもやっていた画像ファイルを右クリックした時に出てくるメニューから「デスクトップの背景として設定」を削除する設定を行うことにした。

1.コマンドプロンプトから設定する

コマンドプロンプトからregコマンドを利用して設定する場合、以下のコマンドを実行してやればよい。

reg delete HKEY_CLASSES_ROOT\SystemFileAssociations\.bmp\Shell\setdesktopwallpaper /f
reg delete HKEY_CLASSES_ROOT\Sys...

Proxmox VE 4.1上の仮想マシンにVirtIO Driverを適用してみた ~Windows 10編~

以前、Proxmox VE 3.1でWindows 7に対して行った処理だが、Proxmox VE 4.1上にWindows 10を入れたので同様の方法でVirtIO Driverを適用していく。
VirtIO Driverは、乱暴な言い方をしてしまえばKVM用のVMware Toolsのようなもので、仮想マシンにインストールすることでパフォーマンスを改善したりすることができるものだ。

まずはISOファイルのダウンロード。
以下からダウンロードしてくる。

ダウンロードしてきたISOファイルを、対象の仮想マシンが読み込めるス...


仕事でAzure Blob Storageをいじってるのだけど、ポータル画面からだとスナップショットの取得ができなそうなので、PowerShellから取ってみる事にした。

残念ながら、コンテナ単位でSnapshotを取得する事は出来ないようで、オブジェクト単位での取得をする必要があるようだ。

# Blob Storageに関する情報
# StorageAccountName: Blobアカウント名
# StorageAccountKey : Blobアクセスキー
# ContainerName : Blobコンテナ名
# BlobName : Blob名
$StorageAccount...

LinuxのコンソールなどからコマンドでDatadogのDashboardとかを編集したり、イベントの通知をする場合はDatadogpyなどを用いれば良いのだが、Windows Server上からコマンドで実行させたい事があった。
で、結論としてはDatadogではRestAPIが用意されているので、PowerShellでそれ経由で処理させれば良い。

●datadog-sample.ps1

# ----------------------
# Datadog Powershellイベント通知スクリプト(Sample)
# ----------------------

$url_...

最近、よくパスワードを新規で作成することがあったので、各OS別にパスワードに使えるランダムな文字列を生成してくれるコマンドを調べてみることにした。

1.Linux

RHEL/Debian系ともにpwgenコマンドでランダムなパスワード文字列が生成可能だ。
入ってない場合は、yum/apt-getでインストールできる。

オプション無しで実行すると、8桁の英数字を大量に出力してくれる。

pwgen
[root@test-node ~]# pwgen
XeituY4O ceeT0boo Taelu0oo EiKu3aev Oog6ma0u Vaedee0u wu7ri7Ah I...