如何操作WMIObject String以在PowerShell中写入文件

时间:2016-12-29 20:51:20

标签: powershell

这似乎非常简单,但我似乎无法在任何地方找到如何执行此操作的语法。

我目前的脚本是:

Get-WmiObject Win32_Bios -ComputerName $Env:COMPUTERNAME |
    Select-Object SerialNumber |
    Out-File "$env:SystemDrive\IT Logs\serial.csv"

我想操纵它只是序列号,而不是文字说" SerialNumber"上面它输出到单行.csv文件。

我的目标是在每台计算机上运行此脚本,并将.csv文件发送到标签打印机以获取资产标签。这甚至可能吗?

2 个答案:

答案 0 :(得分:1)

如果您希望\IT Logs\Serial.txt文件包含当前计算机的序列号,可以这样写:

Get-WmiObject Win32_BIOS |
  Select-Object -ExpandProperty SerialNumber |
  Out-File "$Env:SystemDrive\IT Logs\Serial.txt"

在这种情况下,文本文件将仅包含序列号。如果您希望使用ASCII而不是UNICODE格式,请将-Encoding ASCIIOut-File一起使用。

如果您真的想要输出CSV文件,可以写下:

Get-WmiObject Win32_BIOS |
  Select-Object SerialNumber |
  Export-Csv "$Env:SystemDrive\IT Logs\Serial.csv" -NoTypeInformation

在这种情况下,我们省略-ExpandProperty输出对象(不仅仅是属性)并使用Export-Csv创建CSV文件(而不是Out-File)。

答案 1 :(得分:0)

仅选择属性值的第一部分问题的两种方法。

第一个是Bill_Stewart的评论建议:

Select-Object -ExpandProperty SerialNumber |

或者:

(gwmi win32_bios -ComputerName $Env:COMPUTERNAME).SerialNumber

对于第二期打印问题,您可以使用Out-Printer

之类的内容来避免.CSV中间步骤