繁体   English   中英

dsacls-Powershell中的无效DN语法

[英]dsacls - Invalid DN Syntax in powershell

我正在尝试使用'dsacls'命令在powershell脚本中修改servicePrincipalName权限。

我把所有的动态参数作为脚本参数。

当我使用收到的arguments变量组成命令时,脚本不起作用。 字符串操作缺少某些东西。

 $perStr ='"' + $strDN + '"' + ' /G ' + $DomainNetBIOSName + '\' + $SQLUser + ':RPWP;"servicePrincipalName"'

  $ret = dsacls ${perStr}

上面给出了一个错误:

Invalid DN Syntax

当我使用硬编码值运行时,它运行良好。

当我很难构造用于外部可执行文件的字符串时,我倾向于先构建整个命令,然后使用Invoke-Expression来运行它。 像这样:

$perStr = '& dsacls --% "{0}" /G {1}\{2}:RPWP;"servicePrincipalName"' -f $strDN, $DomainNetBIOSName, $SQLUser
$ret = Invoke-Expression -Command $perStr

--%会告诉它停止解释超出该点的内容,因此它将完全接受键入的所有参数并将其传递给命令。 看看是否适合您,否则,您可能需要查看$perStr的内容,以确保它对您而言正确。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM