im运行这个脚本来发送包含服务器信息的邮件,但是我得到了这个错误:
Method invocation failed because [System.Object[]] does not contain a method named 'op_Division'.
At C:\Users\admin-ran\Desktop\Startup-SendMailTEST.ps1:22 char:1
+ $compinfo = New-Object PSObject -property @{
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (op_Division:String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound
$compinfo = @()
$computerSystem = get-wmiobject Win32_ComputerSystem
$computerBIOS = get-wmiobject Win32_BIOS
$computerOS = get-wmiobject Win32_OperatingSystem
$computerCPU = get-wmiobject Win32_Processor
$computerHDD = Get-WmiObject Win32_LogicalDisk -Filter drivetype=3
$colItems = Get-WmiObject Win32_NetworkAdapterConfiguration -Filter "IpEnabled = TRUE"
# Build objects
$compinfo = New-Object PSObject -property @{
'PCName' = $computerSystem.Name
'Manufacturer' = $computerSystem.Manufacturer
'Model' = $computerSystem.Model
'SerialNumber' = $computerBIOS.SerialNumber
'RAM' = "{0:N2}" -f ($computerSystem.TotalPhysicalMemory/1GB)
'HDDSize' = "{0:N2}" -f ($computerHDD.Size/1GB)
'HDDFree' = "{0:P2}" -f ($computerHDD.FreeSpace/$computerHDD.Size)
'CPU' = $computerCPU.Name
'OS' = $computerOS.caption
'SP' = $computerOS.ServicePackMajorVersion
'User' = $computerSystem.UserName
'BootTime' = $computerOS.ConvertToDateTime($computerOS.LastBootUpTime)
'IP_Address' = [string]$colItems.IpAddress
'MAC_Address' = [string]$colItems.MacAddress
'Default_Gateway' = [string]$colItems.DefaultIpGateway
'DNS_Domain' = $colItems.DNSDomain
'DHCP_Enabled' = $colItems.DHCPEnabled
}
$compinfo | select -Property HDDFree ,HDDSize ,Ram ,OS ,CPU ,SP ,IP_Address,Mac_Address ,BootTime ,DHCP_Enabled
发布于 2014-09-17 16:33:21
我打赌您有多个硬盘驱动器,所以$computerHDD是一个数组,$computerHDD.size和$computerHDD.FreeSpace也是,所以您需要做一个ForEach($HDD in $computerHDD),并在其中插入一个循环(或者类似的东西)。
下面是我要更新您的脚本的内容:
$compinfo = @()
$computerSystem = get-wmiobject Win32_ComputerSystem
$computerBIOS = get-wmiobject Win32_BIOS
$computerOS = get-wmiobject Win32_OperatingSystem
$computerCPU = get-wmiobject Win32_Processor
$computerHDD = Get-WmiObject Win32_LogicalDisk -Filter drivetype=3
$colItems = Get-WmiObject Win32_NetworkAdapterConfiguration -Filter "IpEnabled = TRUE"
# Build objects
ForEach($HDD in $computerHDD){
$compinfo += New-Object PSObject -property @{
PCName = $computerSystem.Name
Manufacturer = $computerSystem.Manufacturer
Model = $computerSystem.Model
SerialNumber = $computerBIOS.SerialNumber
RAM = "{0:N2}" -f ($computerSystem.TotalPhysicalMemory/1GB)
HDDSize = "{0:N2}" -f ($HDD.Size/1GB)
HDDFree = "{0:P2}" -f ($HDD.FreeSpace/$HDD.Size)
CPU = $computerCPU.Name
OS = $computerOS.caption
SP = $computerOS.ServicePackMajorVersion
User = $computerSystem.UserName
BootTime = $computerOS.ConvertToDateTime($computerOS.LastBootUpTime)
IP_Address = [string]$colItems.IpAddress
MAC_Address = [string]$colItems.MacAddress
Default_Gateway = [string]$colItems.DefaultIpGateway
DNS_Domain = $colItems.DNSDomain
DHCP_Enabled = $colItems.DHCPEnabled
}
}
$compinfo | select -Property HDDFree ,HDDSize ,Ram ,OS ,CPU ,SP ,IP_Address,Mac_Address ,BootTime ,DHCP_Enabled我在我的机器上运行,它运行没有错误。
https://stackoverflow.com/questions/25894869
复制相似问题