You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell远程多PC本地管理员查询脚本:多主机输入报错问题

问题原因

你当前的脚本里,Read-Host获取到的是单个字符串(比如"computername1, computername2"),而Invoke-Command的-ComputerName参数需要的是字符串数组(每个元素对应一台主机)。直接把这个字符串传进去,PowerShell会把整个字符串当成一台主机的名字,自然找不到对应的机器,触发错误。

解决方案

修改脚本,把输入的逗号分隔字符串拆分成干净的主机名数组,再传给-ComputerName:

# 获取用户输入的逗号分隔主机名字符串
$hostnameInput = Read-Host -Prompt "Enter PC names (separated by comma)"
# 按逗号分割,同时去掉每个主机名前后的空格,过滤掉空值(避免误输入多逗号的情况)
$hostnames = $hostnameInput -split ',' | ForEach-Object { $_.Trim() } | Where-Object { $_ -ne '' }

# 执行远程命令并导出结果
Invoke-Command -ComputerName $hostnames -ScriptBlock { Get-LocalGroupMember -Group "Administrators" } | Export-Csv C:\temp\localadmins.csv -NoTypeInformation
关键说明
  • -split ',':把输入的单个字符串按逗号拆分成多个元素的数组
  • ForEach-Object { $_.Trim() }:去掉每个主机名前后的空格(比如输入"comp1, comp2"里的空格)
  • Where-Object { $_ -ne '' }:过滤掉拆分后可能出现的空字符串(比如用户输入"comp1,,comp2"的情况)
  • 加上-NoTypeInformation参数可以让导出的CSV文件更干净,不会包含PowerShell的类型信息

内容的提问来源于stack exchange,提问作者dptc19

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 20:35:11