【PowerShell】フォルダを作成しアクセス権限を付与する

PowerShell

【PowerShell】フォルダを作成しアクセス権限を付与する

こんにちは!SEブログの相馬です。

 

 

 

今回は、PowerShell を使いフォルダを作成し、アクセス権限を付与する方法について書いてみました。色々な用途で使えるとは思いますが、これが自動でできますと、ユーザーの PC 管理が効率的にできるような感じですね。

 

 

企業で大量の PC を管理する場合は、例えばユーザーの PC の C ドライブに対してユーザーのアクセス権限が無い環境が多いかと思います。そこで、C ドライブ直下にログ格納用のフォルダを作成したり、また別のローカルドライブがある場合は、そこに一時作業用のフォルダを作成したりする場合があるかと思います。

 

 

 

フォルダの仕様

 

 

ここでは、ユーザーの PC の C ドライブ下の特定のフォルダに、ユーザーに一時的な作業領域を提供するフォルダを作ってみます。具体的には Work という一時作業用のフォルダを作成して、そのフォルダの下に、ログオンしたユーザー名 (User1) のフォルダを作成します。

 

 

 

フォルダの権限

 

 

フォルダの権限は以下のとおりにします。

 

 

  • C:\Work : Administrators はフルコントロール、Users は読み取り
  • C:\Work : Administrators はフルコントロール、Users は読み取り、User1 はフルコントロール

 

 

 

スクリプト

 

 

それでは、上記の内容をスクリプトで書いてみましたところ、以下のようになりました。

 

# ユーザー名のフォルダを変数に代入
$UserInfo = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$DomainUserName = $UserInfo.Name
$UserName = $DomainUserName.Replace("SOMAENG", "")
$UserFolder = $UserName

# フォルダーのパス
$FolderPath = "C:\Work\"
# C:\Temp に ユーザー名のフォルダをくっつける
$FolderPath = $FolderPath + "\" + $UserFolder
# フォルダ作成
New-Item $FolderPath -ItemType Directory
# フォルダ権限を取得
$ACL = Get-Acl $FolderPath
# 権限の設定(引数:ユーザー名,アクセス権,下位フォルダ継承,下位オブジェクト継承,継承の制限,アクセス許可)
$Permission = ($DomainUserName,"FullControl","ContainerInherit,ObjectInherit","None","Allow")
# 権限の設定を反映
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $Permission
$ACL.SetAccessRule($AccessRule)
$ACL | Set-Acl $FolderPath

 

 

 

いかがでしょうか。

 

 

こんな感じで、フォルダの作成やアクセス権限がスクリプトでできると、ユーザーの PC の管理が統一できますし、楽で良いですね。もっと色々な方法を身に着けて多種多様な事ができるようになりたいと思います。

 

 

それでは最後までお読みいただきありがとうございました!

  • この記事を書いた人

そーまん

セキュリティエンジニアやってます。
ブログ歴3年。PVは月15万PV程度。
趣味はボクシング、筋トレ、登山です。
穏やかで人見知りでマイペースな人です。

人気記事

1

こんにちは!SE ブログの相馬です。       今回は、PC に適用されている GPO を確認する方法について書きました。     グループポリシー ...

2

こんにちは!SE ブログの相馬です。       今回は sysprep について、全体的に PC をセットアップする観点から書いてみました。長々と書いてあります。まずは ...

3

こんにちは!SE ブログの相馬です。       今回は、グループポリシーを使って、特定のコンピューターに対して、ドメインユーザーに Administrators 権限を ...

4

こんにちは!SE ブログの相馬です。       今回は、Windows サインイン後に一時ユーザープロファイルが読み込まれてしまった場合の解決方法について書きました。 ...

5

こんにちは!SEブログの相馬です。       今回は、ユーザープロファイルを削除する方法について書いてみました。     1 台の PC を複数人で ...

6

こんにちは!SE ブログの相馬です。       今回は、繰り返し文について書いてみました。PowerShell では他のプログラミング言語同様、繰り返し処理を行うことが ...

7

コマンドを使って CPU とメモリの使用率をデータで取得してみましたので、例えば PC のトラブルシューティングで問題を再現させる際にデータを取得しておくと、原因の特定に役立つ場合があるかと思います。

8

既存の PC と同じ構成で別のメーカーの PC でマスターイメージを作る際、インストールされているアプリを同一にする為に必要になるかと思います。

9

企業で多くの GPO が適用されている環境では、PC に GPO が適用されなかったりする問題が発生する場合があるかと思います。その中でも、コンピューターの構成またはユーザーの構成のどちらかで、...

10

こんにちは!SE ブログの相馬です。       今回は、Windows Server 2016 で NTP サーバーと同期する方法について書きました。   & ...

-PowerShell
-