如何格式化 CCM_UserAffinity 输出以输入 Microsoft.PowerShell.Commands.LocalPrincipal
How to format CCM_UserAffinity output to tyoe Microsoft.PowerShell.Commands.LocalPrincipal
我正在尝试创建一个部署脚本,它将新部署的工作站主要用户添加到本地管理员组。我使用 CCM_userAffinity class 获取用户名,但是 - Add-LocalGroupMember 不接受它的输出。
我尝试创建任务序列变量以传递到 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 的输出被 Add-LocalGroupMember 接受,但是我得到的却是 -
Add-LocalGroupMember:无法绑定参数 'Member'。无法转换类型的 "Microsoft.PowerShell.Commands.Internal.Format.FormatStartData" 值
"Microsoft.PowerShell.Commands.Internal.Format.FormatStartData" 输入 "Microsoft.PowerShell.Commands.LocalPrincipal".
当您计划使用检索到的值而不显示它时,无需使用 "format-wide" 之类的东西,它只会使输出易于阅读并且是 FormatStartData 数据类型的原因。
您可以使用:
$PrimaryUser = (Get-WmiObject -class CCM_UserAffinity -computername $computer -namespace $namespace).ConsoleUser
其中 returns 一个字符串,由 Add-LocalGroupMember 的 -Member 参数获取
要记住的一件事是,理论上每台机器可以有多个 ConsoleUser。所以 ConsoleUser 可能是一个数组,也可能不是。如果您可以保证在您的环境中每台机器始终只有一个用户(在 ts 运行s 处),您可以按原样使用它。否则你必须指定你想使用哪个用户,我当然不能告诉你对你的环境有什么好的规则。
另外,我希望你检查过 WMI class CCM_UserAffinity 已经在你想要 运行 这个脚本的阶段填充,我无法告诉你这是不是案例.
我正在尝试创建一个部署脚本,它将新部署的工作站主要用户添加到本地管理员组。我使用 CCM_userAffinity class 获取用户名,但是 - Add-LocalGroupMember 不接受它的输出。
我尝试创建任务序列变量以传递到 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 的输出被 Add-LocalGroupMember 接受,但是我得到的却是 - Add-LocalGroupMember:无法绑定参数 'Member'。无法转换类型的 "Microsoft.PowerShell.Commands.Internal.Format.FormatStartData" 值 "Microsoft.PowerShell.Commands.Internal.Format.FormatStartData" 输入 "Microsoft.PowerShell.Commands.LocalPrincipal".
当您计划使用检索到的值而不显示它时,无需使用 "format-wide" 之类的东西,它只会使输出易于阅读并且是 FormatStartData 数据类型的原因。
您可以使用:
$PrimaryUser = (Get-WmiObject -class CCM_UserAffinity -computername $computer -namespace $namespace).ConsoleUser
其中 returns 一个字符串,由 Add-LocalGroupMember 的 -Member 参数获取
要记住的一件事是,理论上每台机器可以有多个 ConsoleUser。所以 ConsoleUser 可能是一个数组,也可能不是。如果您可以保证在您的环境中每台机器始终只有一个用户(在 ts 运行s 处),您可以按原样使用它。否则你必须指定你想使用哪个用户,我当然不能告诉你对你的环境有什么好的规则。
另外,我希望你检查过 WMI class CCM_UserAffinity 已经在你想要 运行 这个脚本的阶段填充,我无法告诉你这是不是案例.