0

ユーザー向けのホーム ドライブの作成を検討しています。最近、上級管理職から、これらのフォルダーへのアクセスを sysadmin グループと各ユーザーの個々のフォルダーのみにロックダウンするように要求されました。

これらのフォルダーの作成はヘルプデスクに委任しますが、作成後にフォルダーにアクセスできないようにしたいと考えています。

フォルダーを作成し、ユーザー入力に基づいて ACL を設定する PowerShell スクリプトを作成しましたが、ディレクトリに対する権限が制限されているユーザーに対して正しく実行する方法がわかりません。これを自分のアカウントで実行すると、必要なとおりに動作します。

Set-Variable name -value (Read-Host -Prompt "Please Enter the username")

Set-Variable location -Value (Read-Host -Prompt "Please Enter the location of the user")
        if ($location -eq "loc1") {Set-Variable homepath "\\server1\folder"}
        elseif ($location -eq "loc2") {Set-Variable homepath "\\server2\folder"}
        elseif ($location -eq "loc3") {Set-Variable homepath "\\server3\folder"}
        elseif ($location -eq "loc4") {Set-Variable homepath "\\server4\folder"}
        elseif ($location -eq "loc5") {Set-Variable homepath "\\server5\folder"}

    #Fills variable used to set ACL on the folder.
    Set-Variable domainuser -value "Domain\$name"

$newfolder = new-item -ItemType Directory -path $homepath -Name $name
$Rights = [System.Security.AccessControl.FileSystemRights]"FullControl,Modify,ReadAndExecute,ListDirectory,Read,Write"
$InheritanceFlag = @([System.Security.AccessControl.InheritanceFlags]::ContainerInherit,[System.Security.AccessControl.InheritanceFlags]::ObjectInherit)
$PropagationFlag = [System.Security.AccessControl.PropagationFlags]::None
$objType =[System.Security.AccessControl.AccessControlType]::Allow
$objUser = New-Object System.Security.Principal.NTAccount "$domainuser"
$objACE = New-Object System.Security.AccessControl.FileSystemAccessRule `
      ($objUser, $Rights, $InheritanceFlag, $PropagationFlag, $objType)
$ACL = Get-Acl -Path $NewFolder
$ACL.AddAccessRule($objACE)
    Set-ACL -Path $NewFolder.FullName -AclObject $ACL

これはスクリプトの質問/問題ではなく、環境/実行タイプの問題であることはわかっていますが、必要なものを達成するための最善の方法についての提案はいつでも受け付けています。それが必要な場合は、サービス アカウントの資格情報を保存することに反対しませんが、これを試してみましたが、成功は限られていました。

いつものように、どんな助けも大歓迎です!

4

1 に答える 1