Написание кода для добавления разрешения к определенной папке на удаленном компьютере.Наш код работает с системным пользователем, поэтому в коде мы выполнили переключение контекста пользователя с пользователя системы на пользователя домена, а затем выполнили команду с локального компьютера, чтобы добавить разрешение пользователя домена в папку удаленного компьютера.При выполнении кода получено сообщение об отказе в доступе.Ниже приведен код для вашей справки.
Код для изменения разрешения (test.ps1):
$colRights = [System.Security.AccessControl.FileSystemRights]"Read, Write"
$InheritanceFlag = [System.Security.AccessControl.InheritanceFlags]::None
$PropagationFlag = [System.Security.AccessControl.PropagationFlags]::None
$objType =[System.Security.AccessControl.AccessControlType]::Allow
$objUser = New-Object System.Security.Principal.NTAccount("domain\username")
$objACE = New-Object System.Security.AccessControl.FileSystemAccessRule ($objUser, $colRights, $InheritanceFlag, $PropagationFlag, $objType)
$objACL = Get-ACL "\\remote-computer\test"
$objACL.AddAccessRule($objACE)
Set-ACL "\\remote-computer\test" $objACL
Код для выполнения переключения контекста пользователя:
$username = "domain\username"
$password = "Password"
$securePassword = ConvertTo-SecureString $password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential $username, $securePassword
Enable-PSRemoting -Force
$session= new-pssession -ComputerName $Env:ComputerName -Credential $credential
invoke-command -Session $session -ScriptBlock {whoami}
invoke-command -Session $session -FilePath C:\Users\Desktop\test.ps1
Ошибка:
Доступ запрещен. CategoryInfo: PermissionDenied: (\ remote-computer \ test: String) [Get-ChildItem], UnauthorizedAccessException + FullyQualifiedErrorId:
ItemExistsUnauthorizedAccessError, Microsoft.PowerShell.Commands.GetCommand-CMSCameChildIII: