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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.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 新对象:找不到“;的重载;PSCredential”;参数计数:“;2”;_Powershell_Credentials - Fatal编程技术网

Powershell 新对象:找不到“;的重载;PSCredential”;参数计数:“;2”;

Powershell 新对象:找不到“;的重载;PSCredential”;参数计数:“;2”;,powershell,credentials,Powershell,Credentials,我希望一封电子邮件发送给多个收件人,而且我不想提示输入用户名和密码。所以我使用了下面的字符串转换,但是我面临下面的错误消息 你能提出你的答案来纠正这个问题吗 [string] [ValidateNotNullOrEmpty()] $secpasswd = "Q$$777LV" $secpasswd = ConvertTo-SecureString -String "Q$$777LV" -AsPlainText -Force $mycreds = New-Object System.Managem

我希望一封电子邮件发送给多个收件人,而且我不想提示输入用户名和密码。所以我使用了下面的字符串转换,但是我面临下面的错误消息

你能提出你的答案来纠正这个问题吗

[string] [ValidateNotNullOrEmpty()] $secpasswd = "Q$$777LV"
$secpasswd = ConvertTo-SecureString -String "Q$$777LV" -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential (“test”, $secpasswd)
错误消息:

新对象:找不到“PSCredential”和参数计数的重载:“2”


您的第一条语句使
$secpasswd
成为
[string]
类型的变量。因此,使用第二条语句创建的
SecureString
对象将自动转换为字符串。正因为如此,这两种说法

[string]$secpasswd = "something"
$secpasswd = ConvertTo-SecureString -String "something" -AsPlainText -Force
实际上与

$secpasswd = 'System.Security.SecureString'
由于
PSCredential
构造函数需要一个字符串和一个
SecureString
对象,而不是两个字符串,因此它会抛出您观察到的错误

要解决此问题,请不要将变量强制为类型
[string]

[ValidateNotNullOrEmpty()]$secpasswd = "something"
$secpasswd = ConvertTo-SecureString -String $secpasswd -AsPlainText -Force
$mycreds = New-Object Management.Automation.PSCredential ("test", $secpasswd)
或者对明文密码和安全字符串密码使用不同的变量:

[string][ValidateNotNullOrEmpty()]$passwd = "something"
$secpasswd = ConvertTo-SecureString -String $passwd -AsPlainText -Force
$mycreds = New-Object Management.Automation.PSCredential ("test", $secpasswd)

如果为安全字符串定义了数据类型,则不会出现此错误

[String] [ValidateNotNullOrEmpty()] $secpasswd = "Q$$777LV"    
[SecureString] $secpasswd = ConvertTo-SecureString -String "Q$$777LV" -AsPlainText -Force
[PSCredential] $mycreds = New-Object System.Management.Automation.PSCredential (“test”, $secpasswd)