見出し画像

PowerShell Notionで作るPC管理台帳【簡易版】

昨日オンプレ版の記事を投稿しましたが今回はNotion版の記事です

前回記事でも書きましたが
会社のパソコンの台帳ってどうやってますか?

SkySeaとかLANSCOPEのようなIT資産管理ツールを導入している会社なら自動的に作られるんでしょうけど、大きな会社でも半分程度しか導入されていないと聞きます。きっとエクセル台帳で管理しているのだと思います。

エクセル台帳でもある程度は管理できるんでしょうけど完璧に管理は難しいです。
そこでNotionとPowerShellを組み合わせて自動でパソコン台帳を作る仕組みを作りたいと思います。


<完成図>

HPのAero13beを使ってます。ちゃんと取れてます。


前提条件
・Notionのアカウントがあること 無料版でよい
・半角全角、小文字大文字の区別ができる程度のITリテラシーがあること
・対象はWindowsのみ(工夫すればMACやLinuxでも使える)


つくりかた

1.
Notionのページを新規で作り、項目をすべて半角大文字アルファベットで次のようにします。
DATE、PCNAME、USERID、VENDER、MODEL、SERIALNUMBER、OS 、DESCRIPTION

項目名は すべて 半角 大文字 アルファベットです
 ABCDEFG ←こういうの


2.
次のリンク先を参考にNotionAPIキーとDatabaseIDを取得します
https://zenn.dev/kou_pg_0131/articles/notion-api-usage


3.
下のスクリプトの$NotionAPIKeyと$DatabaseIDを2で取得した値に書き換えます。書き換えたらPowerShellで実行します。

# APIKEY
$NotionAPIKey="secret_aaaaaaaaaabbbbbbbbbbbbbcccccccc"
# PAGEID
$DatabaseID="ccccccccccdddddddddddddeeeeeeeeeeee"

#動作時間
$date= (Get-Date -Format "yyyy/MM/dd HH:mm")
#コンピューター名
$PCName = $Env:COMPUTERNAME
#ユーザーID
$UserID = $Env:USERNAME
#メーカー
$Vendor = (Get-WmiObject Win32_ComputerSystemProduct).Vendor
#モデル名
$Model = (Get-WmiObject Win32_ComputerSystemProduct).Name
#シリアル番号
$SerialNumber = (Get-WmiObject Win32_ComputerSystemProduct).IdentifyingNumber
#OSを取得
$OS = (Get-WmiObject Win32_OperatingSystem).Caption + " Ver." + (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").DisplayVersion
#コンピュータの説明
$Description=(gwmi Win32_OperatingSystem).Description



$Notionheaders = @{
 "Authorization" = "Bearer $($NotionAPIKey)"
 "Content-type" = "application/json"
 "Notion-Version" = "2022-06-28"
}

$JsonBody = @"
{
 "parent" :{"database_id":"$DatabaseID"},
 "properties":{
  "DATE":{
   "title":[{
    "text":{"content":"$date"}
   }]
  },
  "PCNAME": {
   "rich_text":[{
    "text":{"content":"$PCName"}
   }]
  },
  "USERID": {
   "rich_text":[{
    "text":{"content":"$UserID"}
   }]
  },
  "VENDOR": {
   "rich_text":[{
    "text":{"content":"$Vendor"}
    }]
  },
  "MODEL": {
   "rich_text":[{
    "text":{"content":"$Model"}
   }]
  },
  "SERIALNUMBER": {
   "rich_text":[{
    "text":{"content":"$SerialNumber"}
   }]
  },
  "OS": {
   "rich_text":[{
    "text":{"content":"$OS"}
   }]
  },
  "DESCRIPTION": {
   "rich_text":[{
    "text":{"content":"$Description"}
   }]
  }
 }
}
"@

$Return = Invoke-RestMethod -Uri "https://api.notion.com/v1/pages" -Method POST -Headers $Notionheaders -Body $JsonBody




Notionのページに書き込まれていれば完成

あとはこれをタスクスケジューラ―に仕込むか、手動実行してもらえば自動的にPC管理台帳の完成。

余計なお世話かもしれないんですがコンピューターの説明(DESCRIPTION)のところにPCの購入日を入れておけば何年使っているかも管理できます。



タスクスケジューラーから実行したいときは下の2記事を参照ください



上手くいかないとき:
・APIのアクセス権が無いかもしれません
  画面右上の ... → コネクトの追加 → インテグレーションを選択
  2で作ったインテグレーションを追加します

・NOTIONの項目名が間違っている
  項目名が正しいか確認します。
  項目をすべて半角大文字アルファベットにします。

・DatabaseIDが間違っている
  DatabaseIDはURLの一部を切り抜いたものです。


今回は簡易版にしました。
次回以降に機能を追加したものを再度アップしたいと思います。


#Notion #Notion使い方 #PowerShell #プログラミング入門 #プログラミング学習 #コマンドレット #PC管理台帳 #IT資産管理ツール #毎日投稿 #NotionAPI


この記事が気に入ったらサポートをしてみませんか?