PowerShellでWindowsローカルユーザー管理とアクセス制御を強化する方法

PowerShellは、Windows環境での効率的な管理と自動化を実現する強力なツールです。特に、ローカルユーザーアカウントの管理やアクセス制御の強化において、その柔軟性と機能性は他のツールに勝ります。ローカルアカウントは、個々のPCや小規模ネットワークでのセキュリティ管理において重要な役割を果たしますが、適切な設定と管理が行われないと、セキュリティリスクが高まる可能性があります。

本記事では、PowerShellを用いたローカルユーザーアカウントの作成、管理、権限設定、アクセス制御の強化について詳しく解説します。また、実践的なスクリプトや応用例を通じて、日々の管理業務を効率化する方法も紹介します。このガイドを通じて、Windows環境の管理能力を一段と向上させる知識を得られるでしょう。

目次

PowerShellの基本操作と概要


PowerShellは、Windowsで提供される高度なタスク自動化フレームワークであり、システム管理者や開発者にとって重要なツールです。以下では、PowerShellの基本的な特徴と使い方について解説します。

PowerShellとは


PowerShellは、コマンドラインインターフェイス(CLI)とスクリプト言語の両方を兼ね備えた環境です。従来のコマンドプロンプトと異なり、PowerShellは.NET Frameworkを基盤としており、オブジェクト指向の操作が可能です。そのため、出力を次のコマンドで簡単に処理することができます。

基本的なPowerShellコマンドレット


PowerShellの基本単位は「コマンドレット (Cmdlet)」と呼ばれる小さなタスク実行単位です。以下に代表的なコマンドレットをいくつか示します。

コマンドレットの構文


コマンドレットは一般的に「動詞-名詞」の形式で命名されています。
例:

  • Get-Help : ヘルプ情報を表示する
  • Get-Command : 使用可能なコマンドレットを一覧表示する
  • Get-Service : サービスの状態を取得する

コマンドレットの使用例


以下は、基本的なコマンドレットの例です。

# ヘルプの表示
Get-Help Get-Service

# 使用可能なコマンドレットの一覧表示
Get-Command

# サービスの状態取得
Get-Service

PowerShellの起動方法


PowerShellを起動する方法はいくつかあります。以下は一般的な方法です。

  1. 検索バーから起動
    タスクバーの検索バーに「PowerShell」と入力し、検索結果から選択します。
  2. 管理者権限で起動
    必要に応じて、右クリックして「管理者として実行」を選択します。
  3. ショートカットキーの活用
    Windowsキー + R を押して「powershell」と入力し、Enterキーを押します。

PowerShellスクリプトの基礎


PowerShellではスクリプト(.ps1ファイル)を作成してタスクを自動化できます。簡単な例を示します。

# スクリプト例: Hello World
Write-Output "Hello, World!"

このように、PowerShellの基本操作を理解することで、さらに複雑な管理タスクや自動化スクリプトに取り組む準備が整います。

ローカルユーザーアカウントの作成と管理


PowerShellを使用すると、Windowsローカルユーザーアカウントの作成、更新、削除といった操作を効率的に行うことができます。このセクションでは、それぞれの操作方法を具体的に解説します。

新規ローカルユーザーアカウントの作成


新しいローカルユーザーを作成するには、New-LocalUserコマンドレットを使用します。以下は基本的な例です。

# 新しいユーザーを作成
New-LocalUser -Name "NewUser" -Password (Read-Host -AsSecureString "Enter Password") -FullName "New User" -Description "Sample user account"

オプションの説明

  • -Name : ユーザー名を指定します。
  • -Password : 安全な形式でパスワードを入力します。
  • -FullName : フルネームを指定します。
  • -Description : ユーザーの説明を追加します。

既存アカウントの情報更新


既存のユーザーアカウントの情報を更新するには、Set-LocalUserを使用します。

# ユーザーの説明を変更
Set-LocalUser -Name "NewUser" -Description "Updated user account description"

ローカルユーザーの一覧表示


システム上の全ローカルユーザーを確認するには、Get-LocalUserを使用します。

# 全ユーザーの一覧を取得
Get-LocalUser

特定のユーザーのみを確認する場合は、以下のようにします。

# 特定ユーザーの情報を取得
Get-LocalUser -Name "NewUser"

ローカルユーザーの削除


不要なユーザーを削除するには、Remove-LocalUserを使用します。

# ユーザーを削除
Remove-LocalUser -Name "NewUser"

アカウントの有効化と無効化


ユーザーアカウントを無効化したり、有効化するには、以下のコマンドを使用します。

# アカウントを無効化
Disable-LocalUser -Name "NewUser"

# アカウントを有効化
Enable-LocalUser -Name "NewUser"

実践例: テスト用アカウントの作成と削除


以下は、テスト用アカウントを作成し、後で削除する操作の例です。

# テストアカウントの作成
New-LocalUser -Name "TestUser" -Password (ConvertTo-SecureString "Password123!" -AsPlainText -Force) -FullName "Test Account" -Description "Temporary account for testing"

# 操作後、テストアカウントを削除
Remove-LocalUser -Name "TestUser"

PowerShellを活用することで、ローカルユーザーアカウント管理の効率を大幅に向上させることが可能です。次のセクションでは、これらのアカウントの権限設定について解説します。

アカウント権限の設定と変更


Windowsローカルユーザーの権限設定を正しく行うことは、システムのセキュリティと機能性を保つために不可欠です。PowerShellを使うと、ユーザーの権限を簡単に管理できます。ここでは、管理者権限の付与や削除、特定の権限の設定方法を解説します。

管理者権限の付与


ローカルユーザーに管理者権限を付与するには、ユーザーを「Administrators」グループに追加します。以下のコマンドを使用します。

# "NewUser" を Administrators グループに追加
Add-LocalGroupMember -Group "Administrators" -Member "NewUser"

ポイント:

  • -Group : 権限を与えるグループを指定します。
  • -Member : 権限を与えるユーザー名を指定します。

管理者権限の削除


不要な管理者権限を削除する場合は、以下のコマンドを実行します。

# "NewUser" を Administrators グループから削除
Remove-LocalGroupMember -Group "Administrators" -Member "NewUser"

他のグループへの追加


ユーザーを他の特定のグループ(例:「Users」グループ)に追加する場合も同様のコマンドを使用します。

# "NewUser" を Users グループに追加
Add-LocalGroupMember -Group "Users" -Member "NewUser"

グループに所属するメンバーの確認


グループに所属しているユーザーを確認するには、以下のコマンドを使用します。

# Administrators グループのメンバーを表示
Get-LocalGroupMember -Group "Administrators"

特定の権限設定: ファイルやフォルダへのアクセス


PowerShellでは、ローカルユーザーに特定のファイルやフォルダへのアクセス権限を設定することもできます。icaclsコマンドを使用してACL(アクセス制御リスト)を管理します。

# "NewUser" にフォルダへのフルコントロール権限を付与
icacls "C:\ExampleFolder" /grant NewUser:(F)

オプションの説明:

  • (F) : フルコントロール
  • (M) : 修正権限
  • (R) : 読み取り専用

実践例: 一時的な管理者権限の付与


以下は、特定の操作のために一時的に管理者権限を付与し、その後削除する例です。

# 一時的に管理者権限を付与
Add-LocalGroupMember -Group "Administrators" -Member "TemporaryUser"

# 作業終了後、管理者権限を削除
Remove-LocalGroupMember -Group "Administrators" -Member "TemporaryUser"

注意事項

  • 管理者権限の付与は慎重に行い、不必要なユーザーに付与しないことが重要です。
  • 権限設定の変更後は必ず動作確認を行い、設定が正しいか検証してください。

PowerShellを使った権限管理により、ユーザーやグループの権限を迅速かつ正確に設定することが可能です。次のセクションでは、ユーザーグループの管理方法について詳しく解説します。

ユーザーグループの管理方法


Windowsでは、ユーザーをグループで管理することで、権限設定やセキュリティ管理が容易になります。PowerShellを使用すると、ユーザーグループの作成、管理、メンバーの追加・削除を効率的に行うことができます。このセクションでは、ユーザーグループの管理方法を詳しく解説します。

ローカルグループの一覧表示


システムに存在するすべてのローカルグループを確認するには、Get-LocalGroupを使用します。

# ローカルグループの一覧を取得
Get-LocalGroup

新しいグループの作成


独自のローカルグループを作成する場合、New-LocalGroupコマンドレットを使用します。

# 新しいグループ "CustomGroup" を作成
New-LocalGroup -Name "CustomGroup" -Description "Custom group for specific tasks"

オプションの説明

  • -Name : グループ名を指定します。
  • -Description : グループの説明を追加します。

グループへのユーザー追加


既存のグループにユーザーを追加するには、Add-LocalGroupMemberを使用します。

# "CustomGroup" にユーザー "NewUser" を追加
Add-LocalGroupMember -Group "CustomGroup" -Member "NewUser"

グループからユーザーを削除


不要になったメンバーをグループから削除するには、Remove-LocalGroupMemberを使用します。

# "CustomGroup" から "NewUser" を削除
Remove-LocalGroupMember -Group "CustomGroup" -Member "NewUser"

特定グループのメンバー確認


グループに所属しているメンバーを確認するには、Get-LocalGroupMemberを使用します。

# "CustomGroup" のメンバーを一覧表示
Get-LocalGroupMember -Group "CustomGroup"

不要なグループの削除


使用しなくなったローカルグループを削除するには、Remove-LocalGroupを使用します。

# グループ "CustomGroup" を削除
Remove-LocalGroup -Name "CustomGroup"

実践例: 特定タスク用グループの作成と管理


以下は、特定のタスク用にカスタムグループを作成し、ユーザーを管理する例です。

# カスタムグループ作成
New-LocalGroup -Name "BackupOperators" -Description "Group for managing backups"

# ユーザー追加
Add-LocalGroupMember -Group "BackupOperators" -Member "BackupUser"

# グループのメンバー確認
Get-LocalGroupMember -Group "BackupOperators"

# メンバー削除
Remove-LocalGroupMember -Group "BackupOperators" -Member "BackupUser"

# 不要になったグループを削除
Remove-LocalGroup -Name "BackupOperators"

注意事項

  • グループの管理はシステムのセキュリティと利便性に大きく影響するため、慎重に操作してください。
  • 管理者権限が必要な場合があるため、適切な権限でPowerShellを実行してください。

これらの操作を活用することで、ユーザーグループの管理が容易になり、システムのセキュリティを強化することができます。次のセクションでは、ログインポリシーの設定方法について解説します。

ログインポリシーの設定


Windowsシステムでは、ログインポリシーを適切に設定することで、不正アクセスを防ぎ、セキュリティを向上させることが可能です。PowerShellを使用してログインポリシーを管理する方法を解説します。

アカウントロックアウトポリシーの設定


アカウントロックアウトポリシーは、連続して間違ったパスワードを入力した場合にアカウントを一時的にロックする設定です。以下の手順で設定を行います。

現在のポリシーの確認


現在のアカウントロックアウトポリシーを確認するには、以下のコマンドを使用します。

# アカウントロックアウトポリシーの確認
Get-ADDefaultDomainPasswordPolicy

ポリシーの設定


Set-ADDefaultDomainPasswordPolicyコマンドレットを使用してロックアウトポリシーを設定します。

# 3回の失敗でアカウントをロックアウト
Set-ADDefaultDomainPasswordPolicy -LockoutThreshold 3 -LockoutDuration 00:15:00 -LockoutObservationWindow 00:15:00

オプションの説明:

  • -LockoutThreshold : ロックアウトされるまでの失敗回数を設定します。
  • -LockoutDuration : ロックアウト状態が解除されるまでの時間を指定します。
  • -LockoutObservationWindow : 失敗回数のカウントリセットまでの時間を設定します。

パスワードポリシーの設定


パスワードポリシーを設定することで、強力なパスワードを強制できます。

現在のパスワードポリシーの確認


現在の設定を確認するには、以下を使用します。

# パスワードポリシーの確認
Get-ADDefaultDomainPasswordPolicy

ポリシーの設定


以下の例では、パスワードの最小長や有効期限を設定します。

# パスワードポリシーの設定
Set-ADDefaultDomainPasswordPolicy -MinPasswordLength 12 -MaxPasswordAge 30.00:00:00 -PasswordComplexityEnabled $true

オプションの説明:

  • -MinPasswordLength : パスワードの最小文字数を設定します。
  • -MaxPasswordAge : パスワードの有効期限を設定します。
  • -PasswordComplexityEnabled : 複雑なパスワードを必須にします。

ログオン時間の制限


特定のユーザーがログオンできる時間帯を設定することで、セキュリティをさらに強化できます。

# ユーザー "NewUser" のログオン時間を設定
Set-ADUser -Identity "NewUser" -LogonHours @{"Sunday"="0800-1800"; "Monday"="0800-1800"}

失敗したログイン試行の監視


ログインの失敗履歴を監視することで、不正アクセスの試みを検知できます。

# イベントログからログイン失敗履歴を取得
Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4625 } | Select-Object TimeCreated, Message

実践例: セキュリティポリシーの一括設定


以下は、アカウントロックアウトポリシーとパスワードポリシーを一括設定するスクリプトの例です。

# アカウントロックアウトポリシー
Set-ADDefaultDomainPasswordPolicy -LockoutThreshold 3 -LockoutDuration 00:15:00 -LockoutObservationWindow 00:15:00

# パスワードポリシー
Set-ADDefaultDomainPasswordPolicy -MinPasswordLength 12 -MaxPasswordAge 30.00:00:00 -PasswordComplexityEnabled $true

注意事項

  • 上記のコマンドの一部は、Active Directory環境での使用を前提としています。ローカル環境の場合は適宜他のコマンドを使用してください。
  • ポリシーの変更はシステム全体に影響を及ぼすため、設定内容を十分に確認してください。

次のセクションでは、セキュリティとアクセス制御の強化方法について詳しく解説します。

セキュリティとアクセス制御の強化


Windowsシステムのセキュリティを向上させるには、適切なアクセス制御を設定することが重要です。PowerShellを使用すると、フォルダやファイルのアクセス権を簡単に管理でき、システムの安全性を高めることができます。このセクションでは、ACL(アクセス制御リスト)を利用した具体的な方法を解説します。

ACL(アクセス制御リスト)とは


ACLは、ファイルやフォルダへのアクセス許可や拒否を管理するリストです。ユーザーやグループに対して、読み取り、書き込み、実行などの権限を設定できます。

現在のACLを確認する


ファイルやフォルダの現在のACLを確認するには、Get-Aclコマンドレットを使用します。

# フォルダ "C:\ExampleFolder" のACLを取得
Get-Acl -Path "C:\ExampleFolder"

アクセス権の設定


Set-Aclコマンドレットを使用してアクセス権を設定します。以下の例では、新しい権限を追加するための手順を示します。

権限の設定例


ユーザー “NewUser” にフルコントロール権限を付与する場合:

# 現在のACLを取得
$acl = Get-Acl -Path "C:\ExampleFolder"

# 新しい権限を作成
$permission = New-Object System.Security.AccessControl.FileSystemAccessRule("NewUser", "FullControl", "Allow")

# 権限をACLに追加
$acl.SetAccessRule($permission)

# 更新したACLを適用
Set-Acl -Path "C:\ExampleFolder" -AclObject $acl

特定の権限を付与する例


ユーザーに読み取り専用権限を付与する場合:

$acl = Get-Acl -Path "C:\ExampleFolder"
$permission = New-Object System.Security.AccessControl.FileSystemAccessRule("NewUser", "Read", "Allow")
$acl.SetAccessRule($permission)
Set-Acl -Path "C:\ExampleFolder" -AclObject $acl

アクセス権の削除


不要な権限を削除する場合は、以下の手順を実行します。

# ACLを取得
$acl = Get-Acl -Path "C:\ExampleFolder"

# 削除する権限を指定
$permission = New-Object System.Security.AccessControl.FileSystemAccessRule("NewUser", "FullControl", "Allow")

# 権限を削除
$acl.RemoveAccessRule($permission)

# 更新したACLを適用
Set-Acl -Path "C:\ExampleFolder" -AclObject $acl

継承の無効化


フォルダ内のサブフォルダやファイルへの権限継承を無効化する場合:

# フォルダのACLを取得
$acl = Get-Acl -Path "C:\ExampleFolder"

# 継承を無効化
$acl.SetAccessRuleProtection($true, $false)

# 更新したACLを適用
Set-Acl -Path "C:\ExampleFolder" -AclObject $acl

実践例: プロジェクトフォルダのセキュリティ設定


以下は、特定のプロジェクトフォルダに対して、管理者だけがフルコントロールを持つ設定の例です。

# 管理者にフルコントロールを付与
$acl = Get-Acl -Path "C:\Project"
$permission = New-Object System.Security.AccessControl.FileSystemAccessRule("Administrators", "FullControl", "Allow")
$acl.SetAccessRule($permission)

# 他のユーザーを拒否
$denyPermission = New-Object System.Security.AccessControl.FileSystemAccessRule("Everyone", "FullControl", "Deny")
$acl.SetAccessRule($denyPermission)

# ACLを適用
Set-Acl -Path "C:\Project" -AclObject $acl

注意事項

  • ACLの設定を変更する際は、誤ってシステム重要ファイルのアクセス権を削除しないよう注意してください。
  • 設定を適用する前に、変更内容を確認することをお勧めします。

これらのアクセス制御設定により、Windows環境のセキュリティを強化し、重要データの保護が可能になります。次のセクションでは、自動化スクリプトの作成方法を解説します。

自動化スクリプトの作成


PowerShellを使用することで、日々のユーザー管理タスクを自動化し、効率を向上させることができます。このセクションでは、ローカルユーザー管理やアクセス制御を自動化するスクリプトの作成方法を解説します。

基本構文とスクリプトファイルの作成


PowerShellスクリプトは、.ps1ファイルとして保存します。以下の手順でスクリプトを作成し、実行します。

スクリプトファイルの作成と実行

  1. 任意のテキストエディタ(例: Visual Studio Code)で新しいファイルを作成します。
  2. スクリプトを記述し、.ps1の拡張子で保存します。
  3. PowerShellを開き、スクリプトを実行します。
   # スクリプトの実行
   .\script.ps1

自動化スクリプトの例

新規ユーザーを自動作成するスクリプト


以下のスクリプトは、複数のユーザーを一括作成し、特定のグループに追加します。

# ユーザーリスト
$users = @(
    @{Name="User1"; Password="Password123!"; FullName="User One"},
    @{Name="User2"; Password="Password123!"; FullName="User Two"},
    @{Name="User3"; Password="Password123!"; FullName="User Three"}
)

# ユーザー作成
foreach ($user in $users) {
    # パスワードをセキュア形式に変換
    $securePassword = ConvertTo-SecureString $user.Password -AsPlainText -Force

    # ユーザー作成
    New-LocalUser -Name $user.Name -Password $securePassword -FullName $user.FullName -Description "Auto-created user"

    # ユーザーをグループに追加
    Add-LocalGroupMember -Group "Users" -Member $user.Name
}

Write-Output "ユーザー作成完了"

アクセス権を自動設定するスクリプト


特定のフォルダにアクセス権を設定するスクリプト例です。

# フォルダパス
$folderPath = "C:\Project"

# アクセス権の設定
$acl = Get-Acl -Path $folderPath

# フルコントロール権限を設定
$permission = New-Object System.Security.AccessControl.FileSystemAccessRule("Administrators", "FullControl", "Allow")
$acl.SetAccessRule($permission)

# 読み取り専用権限を設定
$readPermission = New-Object System.Security.AccessControl.FileSystemAccessRule("Users", "Read", "Allow")
$acl.SetAccessRule($readPermission)

# ACLを適用
Set-Acl -Path $folderPath -AclObject $acl

Write-Output "アクセス権設定完了"

定期的なユーザーアカウントの監視スクリプト


以下のスクリプトは、定期的にローカルユーザーのリストを監視し、不審なアカウントをログに記録します。

# ログファイルパス
$logFile = "C:\Logs\UserMonitoring.log"

# ローカルユーザーの一覧を取得
$users = Get-LocalUser

# 不審なアカウントの検索
foreach ($user in $users) {
    if ($user.Enabled -eq $false) {
        Add-Content -Path $logFile -Value "無効化されたアカウント: $($user.Name) - $((Get-Date).ToString())"
    }
}

Write-Output "ユーザー監視完了"

スケジュールタスクでの自動実行


これらのスクリプトをWindowsタスクスケジューラに登録すれば、定期的に実行することが可能です。以下はスクリプトを登録する例です。

# スクリプトのパス
$scriptPath = "C:\Scripts\DailyUserCheck.ps1"

# 新しいタスクを作成
$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-File $scriptPath"
$trigger = New-ScheduledTaskTrigger -Daily -At "02:00AM"
Register-ScheduledTask -TaskName "DailyUserCheck" -Action $action -Trigger $trigger

注意事項

  • スクリプト実行ポリシーを設定する必要があります。以下のコマンドを実行してポリシーを変更してください。
  Set-ExecutionPolicy RemoteSigned
  • スクリプト実行時に管理者権限が必要な場合があります。

PowerShellスクリプトを活用すれば、日常的なタスクを大幅に簡素化し、生産性を向上させることが可能です。次のセクションでは、実際の応用例を基に小規模ネットワークでのユーザー管理方法を紹介します。

実践例と応用:小規模ネットワークでのユーザー管理


PowerShellを活用することで、小規模ネットワーク環境でのユーザー管理を効率的に行うことが可能です。このセクションでは、現場で役立つ具体的な応用例を紹介します。

シナリオ1: 部門ごとのユーザーグループ作成と権限管理


小規模オフィスでは、部門ごとにフォルダやリソースのアクセス権を設定する必要があります。以下の例では、「営業部」と「経理部」のユーザーグループを作成し、各グループに専用のフォルダを割り当てます。

グループ作成とメンバー追加

# グループの作成
New-LocalGroup -Name "SalesTeam" -Description "Sales Department Users"
New-LocalGroup -Name "AccountingTeam" -Description "Accounting Department Users"

# メンバーの追加
Add-LocalGroupMember -Group "SalesTeam" -Member "User1"
Add-LocalGroupMember -Group "AccountingTeam" -Member "User2"

フォルダの作成とアクセス権の設定

# フォルダ作成
New-Item -ItemType Directory -Path "C:\Shared\Sales"
New-Item -ItemType Directory -Path "C:\Shared\Accounting"

# アクセス権設定
$aclSales = Get-Acl -Path "C:\Shared\Sales"
$salesPermission = New-Object System.Security.AccessControl.FileSystemAccessRule("SalesTeam", "FullControl", "Allow")
$aclSales.SetAccessRule($salesPermission)
Set-Acl -Path "C:\Shared\Sales" -AclObject $aclSales

$aclAccounting = Get-Acl -Path "C:\Shared\Accounting"
$accountingPermission = New-Object System.Security.AccessControl.FileSystemAccessRule("AccountingTeam", "FullControl", "Allow")
$aclAccounting.SetAccessRule($accountingPermission)
Set-Acl -Path "C:\Shared\Accounting" -AclObject $aclAccounting

シナリオ2: 定期的なアカウント監査


ネットワークのセキュリティを保つために、ローカルユーザーアカウントを定期的に監査することが重要です。以下のスクリプトは、無効化されたアカウントや最近作成されたアカウントをログに記録します。

アカウント監査スクリプト

# ログファイルの設定
$logFile = "C:\Logs\AccountAudit.log"

# 無効化されたアカウントを記録
$disabledUsers = Get-LocalUser | Where-Object { $_.Enabled -eq $false }
foreach ($user in $disabledUsers) {
    Add-Content -Path $logFile -Value "Disabled Account: $($user.Name) - $((Get-Date).ToString())"
}

# 最近作成されたアカウントを記録
$recentUsers = Get-LocalUser | Where-Object { $_.LastLogon -and $_.LastLogon -gt (Get-Date).AddDays(-7) }
foreach ($user in $recentUsers) {
    Add-Content -Path $logFile -Value "Recently Created Account: $($user.Name) - $((Get-Date).ToString())"
}

Write-Output "アカウント監査完了"

シナリオ3: ユーザー管理の自動化とバックアップ


以下は、現在のローカルユーザー情報をエクスポートして、バックアップを作成するスクリプトです。

ユーザー情報のエクスポート

# ローカルユーザー情報をCSVにエクスポート
Get-LocalUser | Select-Object Name, Enabled, LastLogon | Export-Csv -Path "C:\Backups\LocalUserBackup.csv" -NoTypeInformation

Write-Output "ユーザー情報をエクスポートしました"

シナリオ4: 複数マシンの一括管理


複数台のPCで同じ設定を適用する場合、リモート管理を利用します。

リモート管理例


以下の例では、複数のコンピュータに対して同じユーザーグループと権限設定を適用します。

# 対象コンピュータ名のリスト
$computers = @("PC1", "PC2", "PC3")

# スクリプト実行
foreach ($computer in $computers) {
    Invoke-Command -ComputerName $computer -ScriptBlock {
        New-LocalGroup -Name "RemoteAdmins" -Description "Remote Administrators Group"
        Add-LocalGroupMember -Group "RemoteAdmins" -Member "AdminUser"
    }
}

Write-Output "複数マシンの設定を完了しました"

注意事項

  • アクセス権の設定や監査スクリプトを適用する前に、必ず設定内容をテストしてください。
  • リモート管理を行う場合は、リモートコンピュータでPowerShellリモーティングが有効になっていることを確認してください。

これらの実践例を活用することで、小規模ネットワーク環境でのユーザー管理を効率化し、セキュリティと管理負担のバランスを取ることができます。次のセクションでは、記事全体のまとめを行います。

まとめ


本記事では、PowerShellを使用してWindowsローカルユーザーアカウントを管理し、アクセス制御を強化する方法について解説しました。PowerShellを利用することで、以下のような管理タスクを効率的かつ安全に行うことができます:

  • ローカルユーザーアカウントの作成、削除、情報更新
  • ユーザー権限の設定とグループ管理
  • アカウントロックアウトやパスワードポリシーの構成によるログインセキュリティの向上
  • ACLを用いたフォルダやファイルのアクセス制御の最適化
  • スクリプトによる日々の管理業務の自動化

さらに、小規模ネットワーク環境での実践例を通じて、PowerShellがもたらす柔軟性と利便性を紹介しました。適切なアクセス制御と効率的な管理を実現するために、PowerShellを積極的に活用して、システムのセキュリティと運用効率を向上させてください。

コメント

コメントする

目次