Copy & Paste Engineer

PowerShellでモジュールを管理者権限なしでインストールする方法【User Scope対応】

PowerShellでモジュールを管理者権限なしでインストールする方法【User Scope対応】

管理者権限がない開発者の壁

社内PCや共有環境で開発作業をする際、PowerShellモジュールのインストールで以下のような制限に直面することがあります。

この記事では、管理者権限がない環境でもPowerShellモジュールをインストールする方法として、-Scope CurrentUser オプションの活用法を紹介します。


PowerShellモジュールのインストール方法とスコープの基礎

PowerShellでは、Install-Module を使用してモジュールをインストールします。 インストール先のスコープ(範囲)は以下の2種類:

スコープ 説明 管理者権限
AllUsers(既定) システム全体にインストール 必要
CurrentUser 現在のユーザーのプロファイル配下にインストール 不要 - ✅
# 例:管理者権限なしでImportExcelモジュールをインストール
Install-Module -Name ImportExcel -Scope CurrentUser

Scope CurrentUser を使えばユーザーレベルで導入可能

-Scope CurrentUser を指定すれば、モジュールは以下のディレクトリにインストールされます:

$env:USERPROFILE\Documents\WindowsPowerShell\Modules

このディレクトリは管理者権限なしでも書き込み可能なため、Install-Module が成功します。


実践:ImportExcelモジュールをユーザースコープで導入する手順

ここでは、Excelファイルを簡単に読み書きできる人気モジュール ImportExcel を例に、実際の手順を解説します。

PowerShellの実行ポリシー確認

一部環境ではスクリプト実行が制限されています。以下で確認しておきましょう。

Get-ExecutionPolicy

結果が Restricted の場合は、ユーザースコープで一時的に変更できます:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

💡 RemoteSigned:ローカルのスクリプトは許可、インターネット由来のスクリプトには署名を要求。


Install-Moduleの実行

次に、モジュールをユーザースコープにインストールします。

Install-Module -Name ImportExcel -Scope CurrentUser -Force

-Force を付けることで、既存バージョンの上書きや確認プロンプトをスキップできます。


モジュールのインポート確認

インストール後、モジュールが使えるか確認します:

Import-Module ImportExcel
Get-Command -Module ImportExcel

代表的なコマンド例:

# Excelファイルの読み込み
$data = Import-Excel -Path "sample.xlsx"

# データをExcelに書き出す
$data | Export-Excel -Path "output.xlsx" -AutoSize

まとめ:社内PCでもPowerShellは活用できる


🔗 関連リンク