我正在尝试创建一个部署脚本,它将新部署的工作站主用户添加到本地管理组。我使用CCM_userAffinity类来获取用户名,但是-不接受它的输出。
我尝试过创建任务序列变量以传递到powershell脚本,该脚本添加到组中也没有成功。最好是将解决方案集成到部署TS中,但是由于没有成功,我已经恢复到ps包部署。
$computer = "LocalHost" 
$namespace = "root\ccm\Policy\Machine" 
$query = "ConsoleUser"
$PrimaryUser = Get-WmiObject -class CCM_UserAffinity -computername $computer -namespace $namespace | select-object $query | format-wide我期望来自-class CCM_UserAffinity的输出被接受,但是我得到了这个-:无法绑定参数'Member‘。无法将"Microsoft.PowerShell.Commands.Internal.Format.FormatStartData“类型的"Microsoft.PowerShell.Commands.Internal.Format.FormatStartData”值转换为"Microsoft.PowerShell.Commands.LocalPrincipal".类型
发布于 2019-04-23 14:46:03
当您计划使用所检索的值而不是显示它时,就不需要使用类似于“format wide”之类的东西,这只会使输出变得可读性,这也是FormatStartData数据类型的原因。
你可以用:
$PrimaryUser = (Get-WmiObject -class CCM_UserAffinity -computername $computer -namespace $namespace).ConsoleUser,它返回一个字符串,该字符串由argument的-Member参数获取。
需要记住的一件事是,理论上每台机器可以有一个以上的ConsoleUser。因此,ConsoleUser可能是一个数组,也可能不是。如果您能够保证在您的环境中每台机器总是只有一个用户(在ts运行的地方),那么您可以按原样使用它。否则,您必须指定您想要使用的用户,当然,我不能告诉您,对于您的环境来说,这是一个很好的规则。
另外,我希望您检查一下WMI类CCM_UserAffinity是否已经填充到您想要运行此脚本的阶段,我无法告诉您是否是这样的。
https://stackoverflow.com/questions/55812958
复制相似问题