pslaboが試したことの記録

はてなダイヤリーからはてなブログに引っ越してきました

この日記は現在実行中の減量記録を含む個人的なメモとして始めましたが、最近はコンピュータやガジェット、ハック、セキュリティネタのほうがメインになっております。

はてなダイヤリー時代はカテゴリ分けが適当だったのですが、これはそのうち直します。


試験用データが作成できるサービスを探してみる

できれば日本語の試験用ダミーデータを作りたいので、見つけたサービスをとりあえず列挙していきます。

人名、会社名、住所などのダミーデータを最大3000件まで作れる。出力はCSVまたはSQLroopidea.com

個人情報を最大5000件作れる。HTML, XML, CSV, タブ区切りで生成可能。 kazina.com

テスト用のクレジットカード番号 www.find-job.net

Windows10の仮想マシンを新規インストール後にやっておきたい設定

作業用の仮想マシンを壊してしまい、環境を作りなおそうと思ったけど、ゼロからの環境構築は、たまにしかやらないので案外めんどくさいです。

そこで、このエントリに自分の作業用環境に必要なものを一旦書き出していき、まとまったら最終的にキッティング作業用に自動化するためのスクリプトPowershell またはバッチファイル)を作ろうと思います。

コンピュータ名を設定する

コマンドプロンプトから実行する方法。

wmic computersystem where name="%computername%" call rename name="New-PC-Name"

PowerShell から実行する方法。

Rename-Computer -NewName "New-PC-Name" -Force -Restart

仮想マシンが自動でスリープしないようにする

初期設定だと勝手にスリープして困るので、スリープしないようにします。

powercfg.exe /change standby-timeout-ac 0
powercfg.exe /change monitor-timeout-ac 0

www.atmarkit.co.jp

Windows Update を実行する

(New-Object -ComObject Microsoft.Update.AutoUpdate).DetectNow()

news.mynavi.jp

Windows Subsystem for Linux をインストールする

bash が使えないのはつらいのでこれは普通に入れる。

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

あとは適当なディストリビューションWindows Store から選んでインストールする。

(Windows10 LTSC や Windows Server だとサイドローディングになるので、それぞれ別の対応が必要なことに注意が必要)

docs.microsoft.com

Chocolatey をインストールする

いろいろインストールするのを自動化したいので、そのために Chocolatey を入れます。

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

chocolatey.org

参照するDNSサーバを Google Public DNS に変更する

様々な理由によりDNSサーバによる名前解決をインターネット側から見た場合の挙動に揃えたいので、DNSサーバを Google Public DNS に変更します。

netsh interface ip set dns "Ethernet0" static 8.8.8.8 primary
netsh interface ip add dns "Ethernet0"        8.8.4.4

よく使うフォントをインストールする

コーディング用のフォントとかを入れます。

よく使うショートカットをつくる

Snipping Tool とか、ペイントとか、意外に使うことが多いので、ここらへんはタスクバーに予め作っておく

よく使うツールを入れる

必須でインストールするのはここらへん。

Firebase Cloud Messaging で node からメッセージを飛ばす

DelphiAndroid 向けにリモートプッシュ通知を送信しようと思ったら GCM はオワコンで FCM が必要なのに、Delphi は FCM に正式対応していない中、とりあえずサーバでの送信側実装とクライアントでの受信側実装のプロトタイプを作っている。

クライアント側は一応動くようになったので、サーバ側の試作のために一旦 node で書いてみることにします。

ここらへんを読みながら...

https://firebase.google.com/docs/admin/setup?hl=ja https://firebase.google.com/docs/cloud-messaging/admin/send-messages?hl=ja

なんとなくノリだけで書いたコードがこちら。

var admin = require('firebase-admin');

admin.initializeApp({
  credential: admin.credential.cert({
  "type": "service_account",
  "project_id": "fcmremotepush-xxxxxxx",
      .
      .
      .
  databaseURL: 'https://fcmremotepush-xxxxxxx.firebaseio.com'
});

// This registration token comes from the client FCM SDKs.
var registrationToken = 'メッセージ送信対象デバイスのトークン';

// See documentation on defining a message payload.
var message = {
    "notification":{
      "title":"Portugal vs. Denmark",
      "body":"great match!",
    },
  token: registrationToken
};

// Send a message to the device corresponding to the provided
// registration token.
admin.messaging().send(message)
  .then((response) => {
    // Response is a message ID string.
    console.log('Successfully sent message:', response);
  })
  .catch((error) => {
    console.log('Error sending message:', error);
  });

Chrome, Firefox, Safari, Edge のリリース日とバージョンのリストがほしいけど見当たらない

それぞれのブラウザの各バージョンのリリース日が一覧でまとめられているようなページがないかと思ったけど、どうも、なさげ。

仕方がないのでとりあえずの忘備録として Wikipedia 英語ページへのリンクをまとめておく。

最新版の状況だけならここらへんからのリンクを見ておけばよいのだが。

https://qiita.com/p1nk5p1der/items/e2225d9097a996c62bf8

Windows 10 で言語設定を PowerShell で切り替える

海外のスタッフに日本語入力で起きる問題を再現してもらうのに、OSを日本語入力可能な状態にしたいという状況が出た。

その設定方法を手短に伝えるとしたら、きっと PowerShell だろうと思って調べてみたら、Set-WinUserLanguageList というのがあった。

docs.microsoft.com

こうすると日本語になり、

Set-WinUserLanguageList ja-JP

こうすると英語にもどる。

Set-WinUserLanguageList en-US

こうやると、英語と日本語の両方をセットアップできる。

$UserLanguageList = New-WinUserLanguageList -Language "en-US"
$UserLanguageList.Add("ja-JP")
Set-WinUserLanguageList -LanguageList $UserLanguageList

Windows 7 には Set-WinUserLanguageList が見当たらないんだけど、この場合はどうすればいいんだろうか。

Windowsにインストール済みのパッチ一覧を取得する

Windowsにインストール済みのアプリ一覧を取得する、というのは昨日の記事で書きましたが、アプリ一覧だけではなく、パッチの一覧も知りたくなったので、それを取得する方法をしらべてみました。

方法的には3種類あるようです。

そのうち2つの方法は、単に実行するだけ。

  1. コマンドプロンプトで wmic qfe で取得する
  2. powershell で get-hotfix する

ただし、この方法だと個別インストールしたものがリストアップできないようなので、それをリストアップするためには PowerShell で以下のように実行すれば良いようです。

$mySession = New-Object -ComObject Microsoft.Update.Session 
$mySearcher = $mySession.CreateUpdateSearcher() 
$mySearcher.Search("IsInstalled=1").Updates | sort -property LastDeploymentChangeTime | ft -a LastDeploymentChangeTime,Title,SupportUrl

内容は下記ページに掲載のものをベースにしつつ、ft (Format-Table) で切り出す内容をすこし変えています。

tooljp.com

Windowsにインストール済みのアプリケーション一覧をコマンドで取得する

自分の管理下にないPCにインストール済みアプリの一覧をメールで教えてもらう必要が出てきたので、方法をしらべてみました。

確認方法(32-bit Windows

結果から言うと、32-bit Windows では、コマンドプロンプトから次のコマンドを実行するのがシンプルでした。

reg query "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall" /s | find "DisplayName"

確認方法(64-bit Windows

64-bit Windows の場合は、さらにこちらのコマンドも実行します。

reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall" /s | find "DisplayName"
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" /s | find "DisplayName"

これで出力されたリストをもらえばよい。

Windows のビット数によらず結果を取得するバッチファイル

これらのコマンド実行を自動的に行ってくれるバッチファイルを作るとしたら次のような実装例になります。この実装は https://qiita.com/Marukaziler/items/3f64a77b3ccef31e6536 を参考に作りました。

@echo off
if "%PROCESSOR_ARCHITECTURE%" EQU "x86"   goto :ARCH_X86
if "%PROCESSOR_ARCHITECTURE%" EQU "AMD64" goto :ARCH_X64
echo 未対応環境です & goto :EOF

:ARCH_X64
echo x64環境です
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall" /s | find "DisplayName"
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" /s | find "DisplayName"

:ARCH_X86
reg query "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall" /s | find "DisplayName"

:EOF

注意点

レジストリに情報がないアプリケーション(インストーラを使用せずにインストールしたもの)は、この方法でリストアップすることはできません。

また出力結果にはアプリケーションだけではなく、セキュリティアップデートの情報も含みます。それが不要な場合は KBxxxxx を除外するなどしてご利用ください。