【发布时间】:2019-11-02 02:51:36
【问题描述】:
我正在尝试获取计算机专有名称,将其设置为变量$dname
然后我可以使用禁用计算机命令disable-adaccount -Identity $dname
$hostname 设置为 OK 为 "WIN10TEST1"
使用此命令时
$dname = (Get-ADcomputer -Identity "$hostname" | select DistinguishedName | ft -hide)
这样失败:
disable-adaccount -Identity $dname
禁用-ADAccount:无法将“System.Object[]”转换为类型 参数所需的“Microsoft.ActiveDirectory.Management.ADAccount” '身份'。不支持指定的方法。在行:1 字符:29 + 禁用广告帐户 -Identity $dname +~~~~~~ + CategoryInfo : InvalidArgument: (:) [Disable-ADAccount], ParameterBindingException + FullyQualifiedErrorId : CannotConvertArgument,Microsoft.ActiveDirectory.Management.Commands.DisableADAccount
如果我手动设置变量
$dname=CN=WIN10TEST1,OU=Workstations,DC=somedomain,DC=local
disable-adaccount -Identity $dname
它工作正常,所以它是变量进来的问题。
检查$dname 中返回的数据时,它会在我需要的数据前后返回cr/lf。我认为这是绊脚石。
$hostname = "WIN10TEST1"
$dname = (Get-ADcomputer -Identity "$hostname" | select DistinguishedName | ft -hide)
disable-adaccount -Identity $dname
注意:检查$dname.....它在数据之前/之后返回cr/lf
我希望得到没有其他数据的distinquishedname 字符串
CN=WIN10TEST1,OU=Workstations,DC=somedomain,DC=local
【问题讨论】:
-
请勿将 FT 或任何
Format-*cmdlet 用于除最终输出到屏幕或纯文本文件之外的任何内容。它们不返回标准对象 - 相反,它们返回包装在格式化代码中的被屠宰的物品。 -
在玩弄了这个和一些 wmi 选项之后,我意识到无论我做什么,变量 $dname 都没有设置。是否有任何原因其他变量起作用但不是这个?需要在代码中定义变量,或者变量个数之类的吗?
-
您当前的代码是什么?您仍然只显示已知有缺陷的
FT代码...
标签: powershell