请求编写PowerShell脚本批量检查远程服务器.NET版本
批量检查远程服务器.NET Framework版本的PowerShell脚本
实现方案
直接用Invoke-Command批量远程执行你已掌握的.NET版本检查命令,同时读取服务器列表、统一收集结果导出为CSV,完整脚本如下:
# 读取服务器列表文件(每行填一个服务器名/IP) $serverList = Get-Content -Path "C:\your_path\servers.txt" # 定义远程执行的.NET版本检查逻辑 $dotNetCheckBlock = { Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse | Get-ItemProperty -Name version -ErrorAction SilentlyContinue | Where-Object { $_.PSChildName -Match '^(?!S)\p{L}'} | # 新增服务器名字段,方便区分结果归属 Select-Object @{Name='ServerName'; Expression={$env:COMPUTERNAME}}, PSChildName, version } # 批量执行检查并导出结果到CSV Invoke-Command -ComputerName $serverList -ScriptBlock $dotNetCheckBlock -ErrorAction SilentlyContinue | Export-Csv -Path "C:\your_path\dotnet_version_results.csv" -NoTypeInformation -Encoding UTF8
注意事项
- 服务器列表文件
servers.txt要每行一个服务器名称或IP,替换成你实际的路径 - 执行脚本的账号必须有目标服务器的管理员权限,且目标服务器开启了WinRM服务(Windows服务器默认开启,Windows 10客户端可能需要手动执行
Enable-PSRemoting -Force开启) - 若需要排查连接失败的服务器,去掉
-ErrorAction SilentlyContinue参数就能看到具体错误信息 - 导出的CSV里会明确显示每个服务器对应的.NET版本分支和具体版本号,方便你对比排查升级失败的原因
内容的提问来源于stack exchange,提问作者DrewIQ
相关产品推荐
相关产品推荐

