使用Export-Csv cmdlet:
Get-CimInstance Win32_OperatingSystem | Select-Object Caption, CSDVersion, ServicePackMajorVersion, BuildNumber | Export-Csv -NoTypeInformation -Path .\OS_Info.csv
结果(OS_Info.csv):
"Caption","CSDVersion","ServicePackMajorVersion","BuildNumber"
"Microsoft Windows Server 2012 R2 Datacenter",,"0","9600"
谢谢你的工作,文件在文件夹System32中生成
正如 Rohin Sidharth 提到的,.\ 路径前缀将在当前目录(PowerShell 中的$PWD)中创建文件。您可能以管理员身份运行 PowerShell:在这种情况下,默认目录是 %WinDir%\System32。只需使用完整路径或GetFolderPath .Net 方法即可获取常用文件夹路径,如桌面:
... | Export-Csv -NoTypeInformation -Path 'C:\OS_Info.csv'
... | Export-Csv -NoTypeInformation -Path (Join-Path -Path [System.Environment]::GetFolderPath('Desktop') -ChildPath 'OS_Info.csv')
你能告诉我如何在同一个文件中导出多个结果吗?为了
例如我有一个脚本,我可以在其中知道所有更新
已安装:
Get-Hotfix | Select HotfixID,Description,InstalledOn | Sort InstalledOnfunction
我希望结果保存在同一个 CSV 文件中
您可以使用 Select-Object 的 calculated properties 来做到这一点:
# Get OS info
$OsInfo = Get-CimInstance -ClassName Win32_OperatingSystem
Get-Hotfix | # Get HotFixes
Sort-Object -Property InstalledOnfunction | # Sort them
Select-Object -Property @( # Select required fields
# Add Caption property from $OsInfo variable
@{
Name = 'Caption'
Expression = {$OsInfo.Caption}
}
# Add CSDVersion property from $OsInfo variable
@{
Name = 'CSDVersion'
Expression = {$OsInfo.CSDVersion}
}
# Add ServicePackMajorVersion property from $OsInfo variable
@{
Name = 'ServicePackMajorVersion'
Expression = {$OsInfo.ServicePackMajorVersion}
}
# Add BuildNumber property from $OsInfo variable
@{
Name = 'BuildNumber'
Expression = {$OsInfo.BuildNumber}
}
# Add other properties from original HotFix object
'HotfixID'
'Description'
'InstalledOn'
) | Export-Csv -NoTypeInformation -Path 'C:\OS_Info.csv'
您也可以尝试使用自定义函数join objects。