Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在powershell中使用DcomPerm.exe和SetAcl.exe的替代方法_Powershell - Fatal编程技术网

在powershell中使用DcomPerm.exe和SetAcl.exe的替代方法

在powershell中使用DcomPerm.exe和SetAcl.exe的替代方法,powershell,Powershell,我正在编写一个脚本,并试图减少它对外部文件的依赖性。目前,我正在以以下方式调用DComPerm.exe和SetAcl.exe: DComPerm.exe $newGroup = "JFSLJSDFJ\Mst-SvcAccounts" $daListResult = .\DComPerm.exe -da list $dlListResult = .\DComPerm.exe -dl list .\DComPerm.exe -da set $newGroup permit level:r,l $r

我正在编写一个脚本,并试图减少它对外部文件的依赖性。目前,我正在以以下方式调用DComPerm.exe和SetAcl.exe:

DComPerm.exe

$newGroup = "JFSLJSDFJ\Mst-SvcAccounts"
$daListResult = .\DComPerm.exe -da list
$dlListResult = .\DComPerm.exe -dl list
.\DComPerm.exe -da set $newGroup permit level:r,l
$registryPath = "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\34242342435435"
.\SetACL.exe -on $registryPath -ot reg -actn setowner -ownr "n:$machineHost\Administrators"
.\SetACL.exe -on $registryPath -ot reg -actn ace -ace "n:$machineHost\Administrators;p:full"
SetACL.exe

$newGroup = "JFSLJSDFJ\Mst-SvcAccounts"
$daListResult = .\DComPerm.exe -da list
$dlListResult = .\DComPerm.exe -dl list
.\DComPerm.exe -da set $newGroup permit level:r,l
$registryPath = "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\34242342435435"
.\SetACL.exe -on $registryPath -ot reg -actn setowner -ownr "n:$machineHost\Administrators"
.\SetACL.exe -on $registryPath -ot reg -actn ace -ace "n:$machineHost\Administrators;p:full"

是否可以将这些调用替换为Powershell代码以减少对文件的依赖关系?

您可以使用以下方法:

$newGroup = "JFSLJSDFJ\Mst-SvcAccounts"
$daListResult = .\DComPerm.exe -da list
$dlListResult = .\DComPerm.exe -dl list

& ".\DComPerm.exe -da set $newGroup permit level:r,l"

您也可以为ACL合并相同的内容。传递参数时需要一些转义序列

您可以创建Win32\u DCOMApplicationSetting的实例:

$dcomperm=Get-WMIObject -Class Win32_DCOMApplicationSetting
DCOM应用程序实例具有多个安全描述符。从Windows Vista开始,使用Win32_DCOMApplicationSetting类的方法获取或更改各种安全描述符。安全描述符作为Win32_SecurityDescriptor类的实例返回

以下是我从这里获得的DCOM设置代码:

参考链接:

设置ACl将帮助您执行SetACL.exe工作


希望能有所帮助。

您可以使用以下内容:

$newGroup = "JFSLJSDFJ\Mst-SvcAccounts"
$daListResult = .\DComPerm.exe -da list
$dlListResult = .\DComPerm.exe -dl list

& ".\DComPerm.exe -da set $newGroup permit level:r,l"

您也可以为ACL合并相同的内容。传递参数时需要一些转义序列

您可以创建Win32\u DCOMApplicationSetting的实例:

$dcomperm=Get-WMIObject -Class Win32_DCOMApplicationSetting
DCOM应用程序实例具有多个安全描述符。从Windows Vista开始,使用Win32_DCOMApplicationSetting类的方法获取或更改各种安全描述符。安全描述符作为Win32_SecurityDescriptor类的实例返回

以下是我从这里获得的DCOM设置代码:

参考链接:

设置ACl将帮助您执行SetACL.exe工作


希望能有所帮助。

嗨,谢谢你的回复,但我正试图摆脱使用
DcomPerm.exe
。你知道这是怎么可能的吗?@methuselah:你可以创建一个Win32\u DCOMApplicationSetting的实例不,你必须像示例中所示那样设置不同的参数。也请点击链接。对于ACL,您可以直接使用
设置ACL
来完成您的工作。答案中提到的链接是参考链接DCOM设置。在这种情况下,我必须检查成员。请检查这一点,谢谢你的回复,但我正试图摆脱使用
DcomPerm.exe
。你知道这是怎么可能的吗?@methuselah:你可以创建一个Win32\u DCOMApplicationSetting的实例不,你必须像示例中所示那样设置不同的参数。也请点击链接。对于ACL,您可以直接使用
设置ACL
来完成您的工作。答案中提到的链接是参考链接DCOM设置。在这种情况下,我必须检查成员。请检查一下