Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.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
String dsacls-powershell中的DN语法无效_String_Windows_Powershell_Active Directory_Powercommands - Fatal编程技术网

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工作得很出色,非常感谢!如果此答案解决了您的问题,请将其标记为已接受,以帮助将来的用户在遇到类似问题时查找此答案。