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

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

【コピペでOK】PDFファイル一括ダウンロード。ブラウザで開かずにダウンロードさせる方法

この記事でできるようになること

  • Webページ内のすべてのPDFリンクを一括ダウンロードできるようになる
  • ブラウザでPDFファイルを開かずに直接ダウンロードさせる設定ができるようになる
  • JavaScriptを使ってaタグにdownload属性を付与する方法を理解できる
  • ブラウザの「名前をつけて保存」ダイアログを省略する設定ができるようになる
  • URLからファイル名を抽出する方法を学べる

※複数ページを横断して実行する場合は以下記事を参考にサブウィンドウを活用してみてください

codelife.cafe


サンプルコード: ページ内のすべてのPDFリンクにdownload属性付与して開く

F12でブラウザコンソールを開いてコピペで動きます

// ファイル名取得関数
const getFilename = url => new URL(url).pathname.split('/').pop();

// スリープ関数
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));

// PDFファイルのaタグにdownload属性を付与
const links = [...document.querySelectorAll("a")]
    .filter(a => /\.pdf/.test(a.href))
    .map(a => {
        const fileName = getFilename(a.href);
        a.setAttribute("download", fileName);
        a.setAttribute("target", "_blank");
        return a;
    });

// 全てのリンクを順番にクリック
for (const link of links){
    await sleep(1000);
    console.log(link.href);
    link.click();
}
続きを読む

Google Workspace管理者必須のCLIツール GAM でいつもの作業をコマンドで出来るか試してみる

前回、前々回まででWindowsでもMacでもセットアップ手順を確認できたので、今回はGAMコマンドをいろいろ試してみます。

↓セットアップ手順はこちら↓ codelife.cafe codelife.cafe

いつもの作業 といいつつ世の中の情シスの人が実際によくやっている業務ランキングとかに合わせたほうが良いかなと思ったのでGPT-5に「よくある業務ランキングTOP10」でディープリサーチを依頼。 上位3種類の業務をGAMコマンドでやってみることにします。(上位5種にしようと思ったけど予想してたより検証大変で3にしましたm( )m)

  • 🥇 第1位:ユーザーアカウント管理
    • 主な内容
    • 作業手順例(新入社員アカウント作成)
    • GAMでやると...?
  • 🥈 第2位:セキュリティ設定・監査
    • 主な内容
    • 作業手順例(不審ログイン調査)
    • GAMでやると...?
  • 🥉 第3位:メール(Gmail)管理
    • 主な内容
    • 作業手順例(メールトレース)
    • GAMでやると...?
  • まとめ

🥇 第1位:ユーザーアカウント管理

主な内容

  • アカウント作成/削除
  • ライセンス割り当て
  • 部署異動に伴う権限変更

作業手順例(新入社員アカウント作成)

  1. 管理コンソールにログインhttps://admin.google.com/
  2. ユーザー → ユーザーを追加 を選択
  3. 氏名・メールアドレスを入力
  4. 初期パスワードを設定(ユーザーに初回変更を強制)
  5. 必要な ライセンス(Business/Enterprise等)を割り当て
  6. 部署に応じた グループに追加(例:営業部、全社通知グループ)

GAMでやると...?

続きを読む

Google Workspace管理者必須のCLIツール GAM の設定手順を画像多めで解説(Windows編)

Google Apps Manager(GAM)は、Google Workspaceの管理業務を効率化するためのコマンドラインツールです。これを使うことで管理コンソールのGUIではポチポチ手作業でやっていた業務をコマンド1行でできるよう自動化し、大量のタスクを短時間で処理できます!

だけど難点はセットアップ手順が地味にハードル高いこと。特権管理者権限を持たせるんですから簡単すぎても困るんですが、だからといって手作業は…。ということでこの記事ではなるべく分かりやすくセットアップ手順を解説していきます。

↓macの方はこちら↓

codelife.cafe

  • GAMの概要と主要機能
    • GAMでできること
    • GAMの利点
  • 前提条件と準備
    • アカウントと権限に関する要件
    • 技術的な要件
  • WindowsへのGAM7インストール手順
    • 1. インストーラー
    • 2. ターミナルでgamコマンドを実行して各種設定
    • 3. GAMプロジェクト作成ツールにアクセス権を付与
    • 4. GAMプロジェクトのクライアントを作成
    • 5. Google Workspace側にGAMアプリでのAPI実行許可設定
    • 6. Google Workspaceでドメイン全体の委任設定
  • 動作確認
  • まとめと今後の展開
    • 今後の予定記事
続きを読む

Google Workspace管理者必須のCLIツール GAM の設定手順を画像多めで解説(macOS編)

Google Apps Manager(GAM)は、Google Workspaceの管理業務を効率化するためのコマンドラインツールです。これを使うことで管理コンソールのGUIではポチポチ手作業でやっていた業務をコマンド1行でできるよう自動化し、大量のタスクを短時間で処理できます!

だけど難点はセットアップ手順が地味にハードル高いこと。特権管理者権限を持たせるんですから簡単すぎても困るんですが、だからといって手作業は…。ということでこの記事ではなるべく分かりやすくセットアップ手順を解説していきます。

↓Windowsの方はこちら↓

codelife.cafe

  • GAMの概要と主要機能
    • GAMでできること
    • GAMの利点
  • 前提条件と準備
    • アカウントと権限に関する要件
    • 技術的な要件
  • macOSへのGAM7インストール手順
    • 1. インストールコマンド
    • 2. 環境の選択と管理者アカウントのメールアドレス入力
    • 3. GAMプロジェクト作成ツールにアクセス権を付与
    • 4. GAMプロジェクトのクライアントを作成
    • 5. Google Workspace側にGAMアプリでのAPI実行許可設定
    • 6. Google Workspaceでドメイン全体の委任設定
  • 動作確認
  • まとめと今後の展開
    • 今後の予定記事
続きを読む

SharePoint Onlineの棚卸し。サイトごとのユーザー権限一覧を出力するPowerShellスクリプト

(この記事はClaude Sonnet 4により執筆しています)

はじめに

SharePoint Onlineを使っていると、気がつけばサイトが増えて権限管理が複雑になっていませんか?

「あのサイトには誰がアクセスできるんだっけ?」 「外部ユーザーに権限を与えすぎていないか確認したい」 「コンプライアンス監査のために権限一覧が必要」

そんな悩みを解決するために、SharePoint Onlineテナント内のすべてのサイト権限を一括で取得し、CSV形式で出力するPowerShellスクリプトを開発しました。

今回は、このツールの使い方と、開発中に遭遇したPnP.PowerShellモジュールのつまづきポイントとその解決策をご紹介します。

🎯 このツールでできること

主な機能

  • 全サイト権限監査: テナント内すべてのサイト(チームサイト、コミュニケーションサイト、OneDrive等)の権限設定を自動収集
  • 詳細情報取得: ユーザー名、ログイン名、メールアドレス、割り当てロールを包括的に取得
  • CSV出力: Excel等での分析に適したフォーマットで結果をエクスポート
  • 視覚的確認: Out-GridViewによる結果の即座確認

出力例

SiteUrl,Principal,LoginName,Email,Roles
https://contoso.sharepoint.com/sites/sales,田中太郎,i:0#.f|membership|tanaka@contoso.com,tanaka@contoso.com,編集
https://contoso.sharepoint.com/sites/sales,営業チーム,c:0o.c|federateddirectoryclaimprovider|abc123...,,"フル コントロール"
https://contoso.sharepoint.com/sites/hr,人事部グループ,c:0o.c|federateddirectoryclaimprovider|def456...,,編集

Out-GridViewでの結果表示画面

🚀 使い方

続きを読む