Попробуйте предоставить право доступа на системном компьютере с помощью wmi с помощью sddl, но получите ошибку недопустимого параметра. Это моя функция:wmi SetSecurityDescriptor
function GrantSysRoot
{
Param (
[string]$strcomputer
)
$sec = Get-WmiObject -Class Win32_LogicalFileSecuritySetting -Filter "Path='C:\\Windows'" -ComputerName $strcomputer
$converter = New-Object System.Management.ManagementClass Win32_SecurityDescriptorHelper
$sddl = $converter.Win32SDToSDDL($sec.GetSecurityDescriptor().Descriptor)
$newSDDL = $sddl.SDDL += "(" + $SRSDDL + ")"
$Win32descriptor = $converter.SDDLToWin32SD($newSDDL)
$result = $sec.SetSecurityDescriptor($Win32descriptor)
if ($result.ReturnValue -eq 0) {
LogWrite "Success SystemRoot setting rights"
}
else {
LogWrite "An error occured with SystemRoot rights settings"
}
}
Метод SetSecurityDescriptor возвращается ошибка Недопустимый параметр. Есть идеи?
Что такое '$ SRSDDL'? Он упоминается только один раз в вашем коде и никогда не определен ... – n01d
$ SRSDDL определяется как простой sddl like (A ;; 0x1200a9 ;;; $ sid). – altynos
Пожалуйста, разместите его в своем примере кода в том же месте, что и в вашем скрипте. – n01d