首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将CCM_UserAffinity输出格式化为tyoe Microsoft.PowerShell.Commands.LocalPrincipal

如何将CCM_UserAffinity输出格式化为tyoe Microsoft.PowerShell.Commands.LocalPrincipal
EN

Stack Overflow用户
提问于 2019-04-23 13:58:28
回答 1查看 205关注 0票数 0

我正在尝试创建一个部署脚本,它将新部署的工作站主用户添加到本地管理组。我使用CCM_userAffinity类来获取用户名,但是-不接受它的输出。

我尝试过创建任务序列变量以传递到powershell脚本,该脚本添加到组中也没有成功。最好是将解决方案集成到部署TS中,但是由于没有成功,我已经恢复到ps包部署。

代码语言:javascript
运行
复制
$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".类型

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-23 14:46:03

当您计划使用所检索的值而不是显示它时,就不需要使用类似于“format wide”之类的东西,这只会使输出变得可读性,这也是FormatStartData数据类型的原因。

你可以用:

代码语言:javascript
运行
复制
$PrimaryUser = (Get-WmiObject -class CCM_UserAffinity -computername $computer -namespace $namespace).ConsoleUser

,它返回一个字符串,该字符串由argument的-Member参数获取。

需要记住的一件事是,理论上每台机器可以有一个以上的ConsoleUser。因此,ConsoleUser可能是一个数组,也可能不是。如果您能够保证在您的环境中每台机器总是只有一个用户(在ts运行的地方),那么您可以按原样使用它。否则,您必须指定您想要使用的用户,当然,我不能告诉您,对于您的环境来说,这是一个很好的规则。

另外,我希望您检查一下WMI类CCM_UserAffinity是否已经填充到您想要运行此脚本的阶段,我无法告诉您是否是这样的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55812958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档