自動化厨のプログラミングメモブログ │ CODE:LIFE

Python/ExcelVBA/JavaScript/Raspberry Piなどで色んなことを自動化

Windows10のサンドボックス機能を試してみる

フリーソフトの検証などの際に現環境にインストールしてしまうとレジストリが汚れるとか、いらないファイルやフォルダが大量に生成されて邪魔だとか、別のソフトとの相性によって正常に動かないとか、様々な問題があって検証するのに無駄な時間を使ってしまう。

一時的にクリーンな実験用Windowsをぱっと作れてしまうサンドボックス機能を試してみた。

※ Windows 10 Pro または Enterprise が必要です。Homeでは使用できません。

f:id:maru0014:20200913234213p:plain

手順を一から書こうとも思いましたがが、 以下がとてもわかり易いのでこちらを参照ください。

dekiru.net

続きを読む

PowerShellの実行結果をMicrosoft Teamsでbotに自動投稿させるのは割と簡単

実行完了まで時間の掛かるPowerShellスクリプト例えば大量のファイルをコピーするものや何度も再起動しながら実行するようなPCのキッティングスクリプトなどでエラー発生および完了の通知をチャットで受け取りたいという場合。

Slackの着信Webhookインテグレーションなどに対して Invoke-RestMethod コマンドレットでチャットに投稿させるが、実はMicrosoft TeamsでもIncoming Webhookというコネクタがあり、同じことが簡単に出来るというお話。

設定手順

  1. Webhook用のチャネルを作成
  2. チャネルにコネクタ「Incoming Webhook」を追加
  3. botの名前とアイコンを設定してURLをコピー
  4. PowerShellからInvoke-RestMethod してみる
続きを読む

For文での線形探索より高速 VBAで連想配列 Dictionaryオブジェクト

以下のような検索キー列がユニークであるテーブルからデータを取得したい(VLOOKUPみたいなイメージ)場合、処理回数が多いと WorksheetFanction.Vlookup やFor文での線形探索では時間がかかり過ぎる。

そんなときに役立つのが連想配列(Dictionaryオブジェクト)。

配列のようにインデックス番号からデータを取り出すのではなくキーの完全一致で要素を取り出せるので、処理が理解しやすいかつ高速であることが最大の利点。

f:id:maru0014:20200912124247p:plain

 

続きを読む

タスクスケジューラのxmlをコマンドで直接編集してバッテリーモードでも実行させる

バッチファイルで自分自身をタスクスケジューラに登録して再起動後も実行させようと思っても「コンピューターを AC電源で使用している場合のみタスクを開始する(P)」という項目がONの場合はノートPCが電源に接続されていない状態だとタスクを実行してくれない。

しかし、タスクスケジューラを操作できる schtasks コマンドで変更可能な項目は限られており、この項目もコマンドでは変更不可能なためどうしたものかと調べていたらxmlを直接操作することで変更できたのでご紹介。


バッテリー駆動でもタスクを実行させる関数

function disableOnlyRunAc-Task($taskName){
    $taskXml = [xml](schtasks /query /tn $taskName /xml)
    $taskXml.Task.Settings.DisallowStartIfOnBatteries = "false"
    $taskXml.Save("C:\tempTask.xml")
    schtasks /delete /tn $taskName /f
    schtasks /create /tn $taskName /xml "C:\tempTask.xml"
    Remove-Item "C:\tempTask.xml"
}

# コンピューターをAC電源で使用している場合のみタスクを開始するを無効化
disableOnlyRunAc-Task "<タスク名>"

※管理者権限での実行が必要

※xmlの操作を楽にするためにPowerShellを使用

続きを読む

自宅で開発・導入しているIoT機器や機能を晒してみる

多分生まれつきとにかく楽をしたい気持ちが強いが、GoogleアシスタントとAlexaなどの音声アシスタント、超小型の低消費電力コンピュータのRaspberry Pi、便利なIoTデバイスの登場がそれに拍車をかけた。

もしかしたら誰かの参考になるかもしれないので晒してみる。

  • 自動でSlackへ通知→GoogleHomeで読み上げ
    • お父さんが会社から出たらSlackへ通知→GoogleHomeで読み上げ
    • お父さんが自宅の半径100m以内に入ったらSlackへ通知→GoogleHomeで読み上げ
    • Slackへ定時投稿→GoogleHomeで読み上げ
  • スマートロック
  • Googleアシスタントコマンド
  • ペアレンタルコントロール
  • Raspberry Pi で作っている省電力サーバたち
  • スマート家電コントローラー(アプリ、Googleアシスタント、Alexaから操作可能)
  • GAS、スプレッドシート
  • 今後作りたいもの
続きを読む