Skip to content
VDS · Windows Server

Windows Serverのユーザーと権限

管理者権限を持たない作業用アカウントの作成方法、RDPとフォルダへのアクセス許可、すべてに同じパスワードを使う状態を避ける方法を解説します。

更新日 2026年8月23日

お使いのマシンには管理者アカウントが1つだけ用意されています。常にそのアカウントで作業するのは悪い習慣です。ちょっとしたミスや悪意のあるファイルが、即座に完全な制御権を奪ってしまいます。最初から役割を分離しましょう。

ユーザーを作成する

$pw = Read-Host -AsSecureString "Password"
New-LocalUser -Name "app" -Password $pw -FullName "Application Service" -PasswordNeverExpires
Add-LocalGroupMember -Group "Users" -Member "app"

リモートデスクトップ経由でのサインインを許可します。

Add-LocalGroupMember -Group "Remote Desktop Users" -Member "app"

英語版のイメージでは、グループは Users と Remote Desktop Users と呼ばれます。汎用的な方法は、識別子で参照することです。RDP グループの場合は Get-LocalGroup | Where-Object SID -like "*-555" を使用します。

マシン上に誰がいて、誰が管理者に所属しているかを確認するには、次のようにします。

Get-LocalUser | Select-Object Name, Enabled, LastLogon
Get-LocalGroupMember Administrators

フォルダーのアクセス許可

管理者メンバーシップではなく、ディレクトリへのアクセス権を付与しましょう。例として、ユーザー app に自身のディレクトリへのフルアクセスと、共有ディレクトリへの読み取り専用アクセスを付与します。

icacls "C:\apps\myapp" /grant "app:(OI)(CI)M" /T
icacls "C:\shared" /grant "app:(OI)(CI)R" /T
icacls "C:\apps\myapp"          # view current permissions

記号の意味は次のとおりです。M — 変更、R — 読み取り、F — フルコントロール、(OI)(CI) — ファイルとサブフォルダーへの継承、/T — 既存の内容に適用。

サービスアカウント

インターネットに接続したり、アップロードされたファイルを処理したりするサービスは、LocalSystem として実行すべきではありません。最適なのは管理アカウントです。

New-Service -Name myapp -BinaryPathName "C:\apps\myapp\myapp.exe" -StartupType Automatic
sc.exe config myapp obj= "NT SERVICE\myapp" password= ""

よりシンプルでほぼ同等に安全なのは、組み込みの NT AUTHORITY\LocalService と NT AUTHORITY\NetworkService を使用し、必要なディレクトリにのみアクセス許可を付与する方法です。

パスワードポリシー

net accounts /minpwlen:14 /maxpwage:unlimited
net accounts /lockoutthreshold:5 /lockoutduration:30

5回の失敗でロックアウトする設定は、RDP が外部から到達可能な場合に特に重要です。詳細は RDP 保護 を参照してください。

よくある間違い

  • 常に管理者として作業する。 自分用に通常のアカウントを作成し、必要な場面でのみ権限を昇格させましょう。
  • 「とりあえず動かすため」にユーザーを管理者グループへ追加する。 実際に必要なのは、10回中9回は特定のフォルダーへのアクセスか、「サービスとしてログオン」の権限です(secpol.msc → ローカルポリシー → ユーザー権利の割り当て)。
  • 2つ目のログインを確認せずに組み込み管理者を無効化する。 まず新しいアカウントが RDP 経由で実際にサインインできることを確認し、それから Disable-LocalUser -Name adm-local を実行しましょう。
  • サービスのパスワードをスクリプト内に平文で保存する。 ユーザーが書き込めるディレクトリ内のスクリプトは、誰でも読むことができます。

すべてのアカウントをロックアウトしてしまった場合でも、コントロールパネルの /hosting/vds/m/<id> にある「コンソール」タブから「Screen」モードでアクセスできます。作成時に発行された管理者パスワードは、常に「アクセス」タブで確認できます。