代码目标:提取服务器的某些对象属性。我获得这些服务器的列表下面的代码:新对象:在PowerShell脚本中找不到“服务器”的重载和参数计数:“* numberofservers *”
$serverlist = (get-adcomputer -filter {dnshostname -like "*SQL*" -and operatingsystem -like "windows *server*"}).name
然后我在列表中通过每个名称重复:
$serverlist | ForEach-Object {
$s = new-object Microsoft.SqlServer.Management.SMO.Server($serverlist)
$s | Format-List @{Name = "Server";e={$s.Name}},
@{Name = "VersionString";e={$s.VersionString}},
@{Name = "Product Level";e={$s.ProductLevel}},
@{Name = "Collation";e={$s.Collation}},
@{Name = "Credentials";e={$s.Credentials}},
@{Name = "Clustered?";e={$s.IsClustered}},
@{Name = "One Owner?";e={$s.IsSingleUser}},
@{Name = "Root";e={$s.RootDirectory}} | Out-File -path -append
我收到新物体过载错误“服务器”有很多次,因为有服务器。我不确定会导致这个问题。当我为$ serverlist硬编码一个计算机名时,代码工作正常。 I.E.
$serverlist = @("Some-Server-01")
一旦我使用服务器列表作为输入,我开始得到这个错误。帮助将不胜感激。
而且错误信息:
At C:\somepath
+ $s = new-object Microsoft.SqlServer.Management.SMO.Server($serverli ...
+ CategoryInfo : InvalidOperation: (:) [New-Object], MethodException
+ FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand
您正在传递'$ S =新物体Microsoft.SqlServer.Management.SMO.Server($服务器列表)中的整个阵列'尝试用'$ _' – BenH