首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获得错误wmi powershell op_Division:String

获得错误wmi powershell op_Division:String
EN

Stack Overflow用户
提问于 2014-09-17 15:39:47
回答 1查看 3.9K关注 0票数 0

im运行这个脚本来发送包含服务器信息的邮件,但是我得到了这个错误:

代码语言:javascript
复制
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

代码语言:javascript
复制
$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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-17 16:33:21

我打赌您有多个硬盘驱动器,所以$computerHDD是一个数组,$computerHDD.size和$computerHDD.FreeSpace也是,所以您需要做一个ForEach($HDD in $computerHDD),并在其中插入一个循环(或者类似的东西)。

下面是我要更新您的脚本的内容:

代码语言:javascript
复制
$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

我在我的机器上运行,它运行没有错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25894869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档