首页 > 解决方案 > 使用 get-wmiobject 获取所有服务器的 SQL 版本

问题描述

我想在 200 多个不同的服务器上获取所有已安装的 SQL 版本值。

计划是在 ServerListSQLVersions.txt 中包含所有服务器名称,并将所有 SQL 版本放入 CSV。

$Username = ''
$Password = ''
$pass = ConvertTo-SecureString -AsPlainText $Password -Force
$SecureString = $pass
# Users you password securly
$MySecureCreds = New-Object -TypeName 
System.Management.Automation.PSCredential -ArgumentList $Username,$SecureString

$Array = @()
##Create a Folder called SQLVersions##
$scriptPath = "C:\Transfer to SV000229\SQL Script"
$server = Get-Content "$scriptPath\ServerListSQLVersions.txt"
$wmiobj = Get-WmiObject -class Win32_product | where Name -like '*SQL*' | Select-Object name,version


function getWMIObject($server, $wmiobj, $MySecureCreds) {
     $result = Get-WmiObject $wmiobj -ComputerName $server -Credential $MySecureCreds 
     #Write-Host "Result: "$result
     $Array+= $Result
}  

$Array = Export-Csv $scriptpath\output.csv -NoTypeInformation

我在 CSV 中的输出是:

长度

0

标签: sqlpowershellregistrywmiget-wmiobject

解决方案


我用了一个

foreach($computers in $computers){

而不是功能并手动提供信息。

输出也无法导出,因为我使用了 = 而不是 |

现在工作。


推荐阅读