从我的服务器到远程计算机,一个内衬工作正常。我想把我的一个衬垫转换成ForEach循环。我想循环遍历我环境中的所有计算机。
一个班轮:
Write-output (Get-ChildItem '\\mycomputer\C$\Program Files\OSC\LogGen\LOGS').Count
ForEach尝试(不工作)foreach遍历计算机列表并返回列表中每台计算机的计数结果。
$computerlist = gc "D:\computerlist.txt"
ForEach ($host in $computerlist) {
Write-Output (Get-ChildItem "\\$host\C$\Program Files\LOGS").Count
}
答案 0 :(得分:4)
尝试查看ps驱动器,它们非常整洁,我现在到处都使用它们。
New-PSDrive -Name U -PSProvider FileSystem -Root "\\$PC\C$"
这将创建一个名为U:
的新驱动器,您可以像网络驱动器一样进行交互。主要区别在于此驱动器仅存在于脚本范围内。在循环中创建驱动器时,其关键在于关闭驱动器以释放下一次迭代的字母。
ForEach ($PC in $computerlist) {
New-PSDrive -Name U -PSProvider FileSystem -Root "\\$PC\C$"
Write-Output (Get-ChildItem "U:\Program Files\LOGS").Count
Remove-PSDrive U -force
}