我正在尝试创建一个本地用户帐户,并将密码设置为bios serialnumber 。
$Password = Get-WmiObject win32_bios | select serialnumber | Out-String
New-LocalUser -Name Altran -Password $Password
并得到此错误
PS C:\windows\system32> $Password = Get-WmiObject win32_bios | select serialnumber | Out-String
New-LocalUser -Name Altran -Password $Password
New-LocalUser : Cannot bind parameter 'Password'. Cannot convert the "
serialnumber
------------
PF0IKYXC
" value of type "System.String" to type "System.Security.SecureString".
At line:3 char:38
+ New-LocalUser -Name Altran -Password $Password
+ ~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [New-LocalUser], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.NewLocalUserCommand
有人可以帮我吗?我被困住了。
答案 0 :(得分:0)
1)代替此:
$Password = Get-WmiObject win32_bios | select serialnumber | Out-String
您想要这个:
$Password = Get-WmiObject Win32_BIOS | Select-Object -ExpandProperty SerialNumber
为什么?您要选择对象的属性(Select-Object -ExpandProperty
,而不是Out-String
。
2)代替此:
New-LocalUser -Name Altran -Password $Password
您想要这个:
New-LocalUser -Name Altran -Password ($Password | ConvertTo-SecureString -AsPlainText -Force)
这是因为-Password
参数需要一个SecureString
对象。 (注意:我尚未对此进行测试。)
3)这很不安全。我不建议这样做。