String dsacls-powershell中的DN语法无效
我正在尝试使用String dsacls-powershell中的DN语法无效,string,windows,powershell,active-directory,powercommands,String,Windows,Powershell,Active Directory,Powercommands,我正在尝试使用“dsacls”命令在powershell脚本中修改servicePrincipalName权限 我将所有动态参数作为脚本参数 当我使用收到的参数变量生成命令时,脚本不起作用。对于字符串操作,我缺少了一些东西 $perStr ='"' + $strDN + '"' + ' /G ' + $DomainNetBIOSName + '\' + $SQLUser + ':RPWP;"servicePrincipalName"' $ret = dsacls ${perStr} 上
“dsacls”
命令在powershell脚本中修改servicePrincipalName权限
我将所有动态参数作为脚本参数
当我使用收到的参数变量生成命令时,脚本不起作用。对于字符串操作,我缺少了一些东西
$perStr ='"' + $strDN + '"' + ' /G ' + $DomainNetBIOSName + '\' + $SQLUser + ':RPWP;"servicePrincipalName"'
$ret = dsacls ${perStr}
上面给出了一个错误:
Invalid DN Syntax
当我使用硬编码的值运行时,它运行得很好。当我很难构造用于外部可执行文件的字符串时,我倾向于构建整个命令,然后使用
调用表达式来运行它。大概是这样的:
$perStr = '& dsacls --% "{0}" /G {1}\{2}:RPWP;"servicePrincipalName"' -f $strDN, $DomainNetBIOSName, $SQLUser
$ret = Invoke-Expression -Command $perStr
-->%
将告诉它停止对超出该点的内容进行解释,这样它将完全按照键入的参数获取所有参数,并将它们传递给命令。看看这是否适合您,如果不适合,您可能希望查看$perStr
的内容,以确保它看起来适合您。这是否有效dsacls$strnd/G(“{0}\{1}:RPWP;servicePrincipalName”-f$DomainNetBIOSName,$SQLUser)
@Bill\u Stewart工作得很出色,非常感谢!如果此答案解决了您的问题,请将其标记为已接受,以帮助将来的用户在遇到类似问题时查找此答案。