PowerShell: 파일 SV에 개인 폴더 만들기 & 할당량 설정
11568 단어 PowerShelltech
하고 싶은 일
CSV 읽기
• AD에 사용자가 있는지 판단
· flag를 통해 폴더 생성, 할당량 변경, 폴더 삭제 판정
사용법
※ 첫 줄 머리글 필요
CSV 레이아웃
import.csv
flag,UserName
n,testuser01
c,testuser02
d,testuser03
flag 판정 처리flag
설명
n
폴더 만들기
c
할당량 변경
d
폴더 삭제
2. 메모장에 "Folder Set.ps1"을 열고 작업 디렉토리 및 할당량 크기 지정
3. "import.csv", "Folder-set.ps1"을 같은 폴더에 놓고 파일 SV를 통해 실행
4. 폴더, 액세스 권한, 할당량만 설정하면 OK
사전 준비
(Administrators 및 SYSTEM만 OK)
스크립트 완료
Folder-Set.ps1
Import-Module FileServerResourceManager
Import-Module ActiveDirectory
#作業ディレクトリを指定(最後に[\]必須)
$workdir = "D:\test\"
#クォータのサイズを指定(○○MB、○○GBで指定)
$QuotaSize = 500MB
cd $workdir
Import-Csv $PSScriptRoot\import.csv -Encoding Default | ForEach-Object{
$user = $_.UserName
$targetpath = $workdir + $user
#パラメータで処理分岐
$switchflag = $_.flag
switch ( $switchflag ) {
#フォルダ作成処理
n {
#コンソールのエラーを非表示にする
$ErrorActionPreference = "silentlycontinue"
#ユーザーがいるか判定。Get-ADUserでエラーだと「NULL」のまま。
$UserJudg = $NULL
$UserJudg = Get-ADUser -Identity $user
#コンソールのエラーを再表示する
$ErrorActionPreference = "continue"
if ( $UserJudg -eq $NULL ){
#エラー出力
Write-Host -NoNewline $user " はADにいません(n)"
Write-Output ""
} else {
#フォルダの存在判定
If(!(test-path $user))
{
#フォルダの作成
New-Item -Path $user -ItemType Directory | Out-Null
#アクセス権の付与(フルコントロール)
icacls $targetpath /grant ${user}:`(OI`)`(CI`)F /t /c /l /q | Out-Null
#クォータの設定(ハード制限クォータ)
New-FsrmQuota -Path $targetpath -Description "個人フォルダサイズ制限" -Size $QuotaSize | Out-Null
} else {
Write-Host -NoNewline $user " のフォルダはすでにあります(n)"
Write-Output ""
}
}
}
#クォータの変更(ハード制限クォータ)
c {
If((test-path $user)){
Set-FsrmQuota -Path $targetpath -Description "個人フォルダサイズ制限" -Size $QuotaSize | Out-Null
} else {
Write-Host -NoNewline $user " のフォルダはありません(c)"
Write-Output ""
}
}
#フォルダ削除処理
d {
If((test-path $user)){
#フォルダの削除(確認あり)
Remove-Item -Path $user | Out-Null
#フォルダの削除(確認なし)
#Remove-Item -Path $user -Force -Recurse | Out-Null
} else {
Write-Host -NoNewline $user " のフォルダはありません(d)"
Write-Output ""
}
}
#flagエラー
default {
Write-Host -NoNewline $user " のflagはありません(f)"
Write-Output ""
}
}
참조: 액세스 권한 확인
"icacls 폴더 경로"를 통해 액세스 확인을 확인할 수 있습니다.
icacls D:\test\* > access-access-list.txt
grep 일을 하고 싶을 때icacls D:\test\* | findstr "検索したい文字列*" > access-list.txt
Reference
이 문제에 관하여(PowerShell: 파일 SV에 개인 폴더 만들기 & 할당량 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/8chikuwa3/articles/be06ca25a9ee92텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)