powershell - 要求进行代码审查:PowerShell 对本地 PC 而不是 $inventory 中所需的远程 PC 执行多次
问题描述
Stack Overflow 社区——您好!长期聆听者,第一次来电者。另外,这是我第一次涉足脚本领域,所以不要把我打得太惨!
我拼凑了一个测试脚本(来自多个网站),我试图用它来识别一些 USB 设备。它目前正在我本地网络上的 4 台机器上进行测试,但最终会达到数千台。
长话短说,我的 PS 脚本在运行时似乎没有使用我的$inventory变量,而是在我的本地 PC 上运行脚本的次数与我在变量中有条目的次数相同,并且输出相同(四个在这种情况下时间)。当然,我忽略了一些简单的事情,但是阅读相同的文章数小时并没有让我到任何地方。我愿意接受任何建议!
$inventory = "pc1","pc2","pc3","pc4"
$target = "*usb*"
ForEach ($i in $inventory) {
Get-WmiObject win32_usbcontrollerdevice |%{[wmi]($_.Dependent)} | Where-Object {($_.Service -like $target)} | Sort SystemName,Manufacturer,Description,DeviceID | ft SystemName,Manufacturer,Description,DeviceID -auto
}
输出(请注意,下面列出的MyLocalPC应该是上面列出的四台远程 PC):
SystemName 制造商 描述
DeviceID
---------- ------------ ----------- --------
MyLocalPC (Generic USB Audio ) USB 音频设备 USB\VID_046D&PID_0A44&MI_00\7&73B6162&0&0000 (...为简洁起见缩短输出...)SystemName 制造商 描述
DeviceID
---------- ------------ ----------- --------
MyLocalPC (Generic USB Audio ) USB 音频设备 USB\VID_046D&PID_0A44&MI_00\7&73B6162&0&0000 (...为简洁起见缩短输出...)SystemName 制造商 描述
DeviceID
---------- ------------ ----------- --------
MyLocalPC (Generic USB Audio ) USB 音频设备 USB\VID_046D&PID_0A44&MI_00\7&73B6162&0&0000 (...为简洁起见缩短输出...)SystemName 制造商 描述
DeviceID
---------- ------------ ----------- --------
MyLocalPC (Generic USB Audio ) USB 音频设备 USB\VID_046D&PID_0A44&MI_00\7&73B6162&0&0000 (...为简洁起见缩短输出...)
另一条可能很重要的信息(?)——如果我写出 $i 的输出,它似乎是正确的:
PS C:\Users\me\Desktop> $inventory = "pc1","pc2","pc3","pc4"
$target = "*usb*"
ForEach ($i in $inventory) {Write-Output $i}
pc1
pc2
pc3
pc4
解决方案
那是因为您只是根据 $inventory 中的项目数运行相同的代码。您实际上并没有在任何地方输入计算机名称。
-ComputerName
使用当前项目添加参数,它应该可以按预期工作:
ForEach ($computer in $inventory) {
Get-WmiObject win32_usbcontrollerdevice -ComputerName $computer | # pipe to other stuff
}
推荐阅读
- php - 如何修复致命错误:未捕获的错误:调用字符串上的成员函数 children()
- java - 如何在 gRPC 中为 Java 手动生成客户端和服务器代码?
- python - 对流程时间戳数据进行数据分析以发现瓶颈和模式
- php - 当我使用 android retrofit2 将 uuid 发布(发送)到服务器时,我得到了不同的号码
- mysql - 存储插入行的时间并且在更新时不会更改它的字段
- amazon-web-services - 如何为角色赋予角色 - “arn:aws:sts::913xxxxx71:assumed-role”
- asp.net-core - 在 HystrixCommand 的 RunFallbackAsync 中访问服务提供者上下文
- python - 在 Python 中有效地计算 pf CDF 值
- javascript - 在 EmberJS 中,如何在控制器中使用转换数据?
- java - Java - 根据泛型类型的字段应用不同的逻辑