我是Powershell的新手,并且了解`n 和“”可以在正确的位置添加空白行。我似乎无法让它在输出之前或之后正确地放置空白行
这只是我创建的基本代码,可以更好地理解powershell,而该代码可以执行我想要的工作。现在我可悲的是似乎很难将`n
放在哪里 Get-ADComputer -filter * | Where-Object {$_.name -like "test-*"} | ForEach-Object { systeminfo /s $_.name } | Select-String 'Host Name', 'Total Physical memory', 'Available Physical Memory' | Add-Content C:\scripts\RamConfig.txt
输出是正确的,而不是像30台计算机一样停止。只是看起来草率,因为每台AD计算机之间都没有空白行。
答案 0 :(得分:2)
在使用AD cmdlet时,建议不使用通配符过滤器 ever 。另外,使用wmi
代替systeminfo.exe
,因为使用对象总是比使用字符串容易。
foreach ($computer in Get-ADComputer -Filter 'Name -like "test-*"') {
$os = Get-WmiObject -Class Win32_OperatingSystem -ComputerName $computer.Name
$mem = Get-WmiObject -Class Win32_ComputerSystem -ComputerName $computer.Name
$hostname = $os.CSName
$availMem = ($os.FreePhysicalMemory / 1GB).ToString('00.00')
$totalMem = ($mem.TotalPhysicalMemory / 1GB).ToString('00.00')
@"
Host Name: $hostname
Total Physical Memory: $totalMem GB
Available Physical Memory: $availMem GB
"@ | Add-Content -Path C:\scripts\RamConfig.txt
}