【发布时间】:2021-11-27 14:45:47
【问题描述】:
PowerShell 新手,我在哪里出错了? 任何帮助都会很棒。
Powershell 脚本将多个 Get-SMB 请求的结果传递到 csv 文件中。
将正常执行,但 csv 为空。
$OutArray= @()
$SmbCommands = @(
$SmbInfo1 = Get-SmbClientConfiguration
$SmbInfo2 = Get-SmbMapping
$SmbInfo3 = Get-SmbMultichannelConstraint
$SmbInfo4 = Get-SmbServerConfiguration
$SmbInfo5 = Get-SmbShare
)
# For Each
foreach ($i in $SmbCommands)
{
# Construct object
$myobj = "" | Select "SmbInfo1", "$SmbInfo2", "$SmbInfo3", "$SmbInfo4", "$SmbInfo5"
#$myobj = "" | Select "SmbInfo1", "$SmbInfo2", "$SmbInfo3", "$SmbInfo4", "$SmbInfo5" #im trying to pass ^^^ those commands in to the object creator <<<<<
# Fill the object
$myobj.SmbInfo1 = $SmbInfo1
$myobj.SmbInfo2 = $SmbInfo2
$myobj.SmbInfo3 = $SmbInfo3
$myobj.SmbInfo4 = $SmbInfo4
$myobj.SmbInfo5 = $SmbInfo5
# Add the object to the out-array
$OutArray += $myobj
# Wipe object
$myobj = $null
}
# After the loop, exports the array to CSV
$OutArray | export-csv "C:\Temp\SMBInfo.csv"
【问题讨论】:
-
您希望生成的 CSV 文件是什么样的?这些命令的输出对象具有不同的属性集,因此您最终会得到大多数列为空的行,或者您会丢失数据
-
不知道队友,因为我还没有让它工作,我稍后会解决格式,只是希望以任何形式输出结果
-
id 最后可能只是输出到txt
-
真正支持分层数据的格式,比如 JSON 怎么样?
$OutArray |ConvertTo-Json |Set-Content output.json -
$OutArray | ConvertTo-Json "C:\Temp\SMBInfo.json"