Powershell 脚本获取多台远程 PC 上的本地管理员列表

问题描述 投票:0回答:1

我几乎有这个,但通过提示输入以逗号分隔输入多个计算机名称时出现错误。个人计算机名称有效。

$hostname = Read-Host -Prompt "Enter PC names (separated by comma)"
Invoke-Command -ComputerName $hostname -ScriptBlock{Get-LocalGroupMember -Group "Administrators"} | Export-Csv C:\temp\localadmins.csv

在没有 Read-Host 提示的情况下运行它时,输入多个以逗号分隔的工作正常,但是当使用提示输入并输入多个计算机名称时,它会返回“一个或多个计算机名称无效”。我希望将 $hostname 从输入的输入完全转换为 -ComputerName,但我认为我遗漏了一些东西。

错误输出:

Enter PC names (seperated by comma): computername1, computername2
Invoke-Command : One or more computer names are not valid. If you are trying to pass a URI, use the -ConnectionUri parameter, or pass URI objects 
instead of strings.
At \\usblfs003.global.baxter.com\users$\parksd2\docs\Scripts\LocalAdminsExport_EntitlementReview.ps1:2 char:1
+ Invoke-Command -ComputerName "$hostname" -ScriptBlock{Get-LocalGroupM ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (System.String[]:String[]) [Invoke-Command], ArgumentException
    + FullyQualifiedErrorId : PSSessionInvalidComputerName,Microsoft.PowerShell.Commands.InvokeCommandCommand
powershell hostname powershell-ise computer-name
1个回答
0
投票

$ADComputers = 获取 ADComputer -过滤器 * |选择对象名称 foreach($ADComputers 中的 $ADComputer) { $ComputerName = $ADComputer.Name Write-Host -Object“处理 $ComputerName 上的组”-ForegroundColor 青色 Invoke-Command -ComputerName $ComputerName -ScriptBlock {Get-LocalGroup -Name 管理员 | Invoke-Command -ComputerName $ComputerName -ScriptBlock ForEach-Object {Get-LocalGroupMember -Group $_.Name}} -ErrorAction SilentlyContinue }

© www.soinside.com 2019 - 2024. All rights reserved.