none
Права DCOM и WMI через powershell RRS feed

  • Вопрос

  • Есть почти готовый код, не хватает только параметра, чтобы юзеру был разрешен пункт execute methods. Помогите дополнить.

    function get-sid
    {Param ($DSIdentity)$ID = new-object System.Security.Principal.NTAccount($DSIdentity)return $ID.Translate( [System.Security.Principal.SecurityIdentifier] ).toString()}
    $sid = get-sid $args[0]$SDDL = "A;CI;GXCCWP;;;$sid"
    $DCOMSDDL = "A;;GXCCDCRP;;;$sid"
    ForEach ($COMPUTER in (Get-ADComputer -Filter '*' | Select -ExpandProperty Name))
    {if(!(Test-Connection -Cn $COMPUTER -Quiet)) {write-host "cannot reach $computer" -f red} 
    else {    $Reg = [WMIClass]"\\$COMPUTER\root\default:StdRegProv"    
    $DCOM = $Reg.GetBinaryValue(2147483650,"software\microsoft\ole","MachineLaunchRestriction").uValue    
    $security = Get-WmiObject -ComputerName $COMPUTER -Namespace root -Class __SystemSecurity    
    $converter = new-object system.management.ManagementClass Win32_SecurityDescriptorHelper    
    $binarySD = @($null)    
    $result = $security.PsBase.InvokeMethod("GetSD",$binarySD)  $outsddl = $converter.BinarySDToSDDL($binarySD[0])    $outDCOMSDDL = $converter.BinarySDToSDDL($DCOM)   
    $newSDDL = $outsddl.SDDL += "(" + $SDDL + ")"    $newDCOMSDDL = $outDCOMSDDL.SDDL += "(" + $DCOMSDDL + ")"  $WMIbinarySD = $converter.SDDLToBinarySD($newSDDL)    $WMIconvertedPermissions = ,$WMIbinarySD.BinarySD    $DCOMbinarySD = $converter.SDDLToBinarySD($newDCOMSDDL)    $DCOMconvertedPermissions = ,$DCOMbinarySD.BinarySD    $result = $security.PsBase.InvokeMethod("SetSD",$WMIconvertedPermissions)    
    $result = $Reg.SetBinaryValue(2147483650,"software\microsoft\ole","MachineLaunchRestriction", $DCOMbinarySD.binarySD)    write-host "complete" -f green}} 

    5 сентября 2019 г. 13:48