スペースモラトリアムノカミサマ

日記+コメント付きブックマーク+他人にも役に立つかもしれない情報など。
(更新情報: RSS(ツッコミ付き) / RSS(ツッコミ抜き) / LIRS)

最近の TrackBack:
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|06|07|08|09|10|
2011|01|02|03|07|10|11|
2012|02|03|04|07|08|09|
2013|01|06|07|
2014|02|08|09|11|
2015|09|
2016|01|05|
2017|07|
2018|05|07|
2019|07|
2020|08|09|10|12|
2021|05|
2022|03|

2017/07/19

_ [Windows][システム運用] Windows 標準機能で BASE64 エンコード・デコードする

今日の Windows には PowerShell という強力なスクリプト環境が用意されているおかげで、OS ビルトイン機能で BASE64 のエンコード・デコードが可能である。

そこで、ファイルをドロップすると BASE64 エンコード・デコードを行うバッチファイルを書いた。

b64encode.bat

powershell -command "$raw = '%1'; $b64 = \"$raw.b64.txt\"; [System.IO.File]::WriteAllText($b64, [Convert]::ToBase64String([System.IO.File]::ReadAllBytes($raw)))"

b64decode.bat

powershell -command "$b64 = '%1'; $raw = $b64 -replace '.b64.txt', ''; if ($raw -eq $b64) { $raw = \"$b64.bin\" }; [System.IO.File]::WriteAllBytes($raw, [Convert]::FromBase64String([System.IO.File]::ReadAllText($b64)))"

これにより、「ファイル送受信は禁止されているがテキストコピペは可」という VDI 環境において、小容量であれば任意のファイル送受信が可能ということになり、ちょっと便利なケースがある反面場合によっては情報漏洩の抜け穴となる恐れもある。

では VDI では PowerShell を動作禁止すべきなのかというと、VDI 側でだけ禁止しても端末側でも禁止しないと意味がない。端末側で PowerShell を禁止してもメールを作成してその下書きのソースを開くといった抜け道もある。

現実的なのはコピペ可能な容量を常識的な利用では困らない程度 (1KB 等) に制限することでしょうか。