【发布时间】:2021-01-05 22:26:05
【问题描述】:
我有一个关于导出到 CSV 的快速问题。
如何决定导出到 CSV 的内容?我是什么意思?下面的示例只是读取列表并查询 AD 的 Systemversion。然后,我将它与我们使用的正确版本相关联。不幸的是,它确实正确地导出了它,或者有时根本没有。我不确定这是否有意义,请原谅我的无知。
$CStrings = Get-Content "C:\users\ME\Desktop\Comps.txt"
$comps = Foreach($Computer in $CStrings){
$VS = Get-ADComputer -Identity:"CN=$Computer,OU=MY Computers,OU=LAB " -Properties:operatingSystemVersion | Select-Object -ExpandProperty operatingsystemversion
if($VS -like "21543"){
"$Computer", "Version 45.32"}
else {
if($VS -like "21544"){
"$Computer", "Version 45.33"}
else{
if($VS -like "21545"){
"$Computer", "Version 45.34"}
else{
"$Computer", "$VS"
}
}
}
}
Foreach($comp in $comps){
Write-Output $comp | Out-File C:\users\ME\Desktop\comps.csv
}
CSV 中的结果仅输出一个版本,没有其他输出。我尝试了 "$computer - Versions 45.32" 加入它,并导出每台计算机,但它都在一个列中。
在我被追捕之前,我确实检查了其他论坛,包括 ms_docs 哈哈,如果可能的话,我宁愿有人为我做傻事。
总结:希望将计算机名称和版本保留在单独的列中。
顺便说一句,新年快乐!(:
【问题讨论】:
-
-like匹配 entire 输入,因此要查找 substrings 您应该使用$VS -like '*21543*'之类的东西 - 否则,只需使用 @987654325 @。相比之下,-match确实执行子字符串匹配,但 RHS 被解释为正则表达式。 -
[1] 你为什么不使用
Export-CSV? [grin] ///// [2] 为什么要在 ELSE 中嵌入 IF 而不是使用 ELSEIF? -
“它确实正确导出”是什么意思?样本数据会给我们一个线索
-
听着,伙计们……我只是按照我知道的方式去做。 @lee 我确实尝试了
Export-CSV,但是结果更差。生病查看 ELSEIF,不熟悉的所以在 MS_Docs 中查找它。谢谢!顺便说一句,我得到的结果只是 CSV 中的版本输出,如下所示:Versions 45.32,它显示在第一个块上,就是这样。没有其他内容被导出。 -
哦!正确地说,我的意思是,导出到 csv 需要什么,如何指定这些字符串等。如果有意义的话,Idk。它如何知道要导出到第一列和第二列的内容。
标签: powershell