不能用PHP的SSH命令创建活动目录用户。

我曾试图从一个PHP页面中使用SSH命令创建一个活动目录用户。

include('Net/SSH2.php');
$path = "OU=HRTest,OU=Israel,OU=Users,OU=Solaredge,DC=solaredge,DC=local";
$name = "Test User2";
$title = "Some Position";
$password = "Welcome!";
$department = "IS";
$POBox = "01/05/2020";
$Company = "SolarEdge Technologies LTD.";
$GivenName = "Test";
$DisplayName = "Test User2";
$SamAccountName = "Test.u2";
$Enabled = "$true";

$server = "MyServerName";
$username = "MyUserName";
$pwd = "MyPassword";

$command = 'powershell New-ADUser -Path "'.$path.'" -Name "'.$name.'" -Title "'.$title.'" -Department "'.$department.'" -POBox "'.$POBox.'" -AccountPassword $("'.$password.'" | ConvertTo-SecureString -AsPlainText -Force) -Company "'.$Company.'" -GivenName "'.$GivenName.'" -DisplayName "'.$DisplayName.'" -SamAccountName "'.$SamAccountName.'" -Enabled '.$Enabled;

$ssh = new Net_SSH2($server);
if (!$ssh->login($username, $pwd)) {
    exit('Login Failed');
}

echo $ssh->exec($command);

SSH连接工作,但PowerShell产生了这个错误。

New-ADUser : Cannot convert 'System.Object[]' to the type 'System.String' required by parameter 'Path'. Specified 
method is not supported.
At line:1 char:18
+ ... DUser -Path OU=HRTest,OU=Israel,OU=Users,OU=Solaredge,DC=solaredge,DC ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [New-ADUser], ParameterBindingException
    + FullyQualifiedErrorId : CannotConvertArgument,Microsoft.ActiveDirectory.Management.Commands.NewADUser

编辑 – 新错误。

'ConvertTo-SecureString' is not recognized as an internal or external command,
operable program or batch file.

解决方案:

你必须为所有可能包含特殊字符的字符串传递引号给PowerShell,以便它能够按照预期的方式解析你的字符串。此外,你还必须为所有可能包含特殊字符的字符串传递引号,以便PowerShell能够如期解析你的字符串。ConvertTo-SecureString 当被这样调用时,会有奇怪的行为。解决方法在 这个 的答案。我把引号和变通的方法包括在了 ConvertTo-SecureString 在下面一行。

$command = 'powershell "& {New-ADUser -Path \''.$path.'\' -Name \''.$name.'\' -Title \''.$title.'\' -Department \''.$department.'\' -POBox \''.$POBox.'\' -AccountPassword (ConvertTo-SecureString -AsPlainText \''.$password.'\' -Force) -Company \''.$Company.'\' -GivenName \''.$GivenName.'\' -DisplayName \''.$DisplayName.'\' -SamAccountName \''.$SamAccountName.'\' -Enabled '.$Enabled}";

把你的密码行改成:

$password = "Welc0me!";

给TA打赏
共{{data.count}}人
人已打赏
解决方案

在数据帧上用公钥广播式地进行系列乘法

2022-5-12 4:00:20

解决方案

Discord 音乐机器人随机抛出这个错误,显然没有任何诱因。

2022-5-12 4:00:22

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索