Ich habe ein Skript, das Informationen von einem oder mehreren Servern und zeigt sie über Passieren verschiedene Funktionen zu einer Remote-Sitzung speichert (die weitgehend als Arrays zurückgegeben werden:Wrapping Ausgabe einer Spalte
$PSSession = New-PSSession -ComputerName $comp -Credential $fetchCreds -Name $server
$buildlogsuccess = Invoke-Command -Session $pssession -ScriptBlock ${function:check-buildlog} -ArgumentList $domain
$chocologstatus = Invoke-Command -Session $pssession -ScriptBlock ${function:check-choco}
$KMSvalues = Invoke-Command -Session $PSSession -ScriptBlock ${Function:get-winlicense}
$parentOU = get-ParentOU (Get-ADComputer -Server $dc -SearchBase $searchbase -Filter {name -eq $server} -Credential $fetchCreds) | select -expand parentou
$SCCMcheck = Invoke-Command -Session $PSSession -ScriptBlock ${Function:get-sccmstatus}
$scomcheck = Invoke-Command -Session $PSSession -ScriptBlock ${function:get-scomstatus} -argumentlist $scom
$AV = Invoke-Command -Session $PSSession -ScriptBlock ${Function:get-avstatus}
$wfirewall = Invoke-Command -Session $PSSession -ScriptBlock {(get-service MpsSvc).status}
$net35 = Invoke-Command -Session $PSSession -ScriptBlock {(Get-WindowsFeature NET-Framework-Core).installed}
$admins = Invoke-Command -Session $PSSession -ScriptBlock ${Function:check-admins}
$DomainComms = Invoke-Command -Session $PSSession -ScriptBlock ${Function:get-domaininfo}
$bigfix = Invoke-Command -Session $PSSession -ScriptBlock ${Function:get-bigfix}
#clean up the remote session
Remove-PSSession -Name $server
[PSCustomObject]@{
ServerName = $comp
"Physical/Virtual" = $Devicetype
"IP Address" = $device.IPAddresses.ipaddress
"Domain" = $DomainComms[4]
"Build Script Found, Completed" = [string]$buildlogsuccess[0] + [string]"," + [string]$buildlogsuccess[1]
"Choco Package Install Finished" = $chocologstatus
"KMS License Status, Retry" = [string]$KMSvalues[0] + [string]"," + [string]$KMSvalues[1]
"Parent OU" = $parentOU
"VM Tools Version, Status" = "$vmtoolsversion,$vmtoolsstatus"
"SCCM Client, Version,Last Comms" = ([string]$SCCMcheck[0] + [string]"," + [string]$SCCMcheck[1] + [string]"," + [string]$SCCMcheck[2])
"SCOM Client, Conn Status" = [string]$scomcheck[0] + [string]"," + [string]$scomcheck[1]
"McAfee Framework Installed, Running" = [string]$AV[0] + [string]"," + [string]$AV[1]
"McAfee Vcan Installed, DAT Date" = [string]$AV[2] + [string]"," + [string]$AV[3]
"SEP Endpoint Protection Installed, Running" = [string]$AV[4] + [string]"," + [string]$AV[5]
"SEP Vcan Installed, DAT Date" = [string]$AV[6] + [string]"," + [string]$AV[7]
"BigFix Client, Version, Install Date" = [string]$bigfix[0] + [string]"," + [string]$bigfix[1] + [string]"," + [string]$bigfix[2]
"Windows Firewall Status" = $wfirewall
"Net 3.5 Installed" = $net35
"Connection to domain OK, Current DC, AD Site" = [string]$DomainComms[0] + "," + [string]$DomainComms[1] + "," + [string]$DomainComms[2]
"DelAdmin Groups in Admins" = $admins[1]
"Applied GPOs" = $DomainComms[3]
}
Ausgang (für die größte Teil) kommt wie erwartet, mit Ausnahme des letzten Feld während ok erscheint in der Liste ausgegeben und Out-GridView
, nicht richtig ausgegeben, wenn Export-Csv
(oder kopiert korrekt in Excel aus Out-GridView
):
ServerName : serverA.abc.com Physical/Virtual : Virtual IP Address : 10.20.30.40 Domain : abc.com Build Script Found, Completed : Found C:\tre\w32\Logs\Installer.log,True Choco Package Install Finished : False: can't find C:\ProgramData\chocolatey\logs\chocolatey.log KMS License Status, Retry : True,N/A BigFix Client, Version, Install Date : False,N/A,N/A Windows Firewall Status : Running Net 3.5 Installed : True Connection to domain OK, Current DC, AD Site : True,dc1.abc.com,Default-First-Site GG_admin_serverA in Admins : False DelAdmin Groups in Admins : abc\a-groupname-here Applied GPOs : SOE Server GPO 1 SOE Server GPO 2 Some-other-policy A group policy name - Infrastructure SOE Server GPO 1 SOE Server GPO 2 Some-other-policy A group policy name - Infrastructure SOE Server GPO 1 SOE Server GPO 2 Some-other-policy A group policy name - Infrastructure
ist ein Weg, umwickeln Ausgabe eines Array-Elementes, wenn dieses Element mehrzeilige Ausgabe ist, zB für CSV, HTML etc.
Wenn ich zB von Out-GridView
nach Excel oder Export-Csv
kopiere, zeigt das Feld 'Angewendete GPOs' Werte an in anderen Zeilen & Spalten außerhalb wo es sollte.
Bitte geben Proben von CSV Ausgabe gewünschten und tatsächlichen (wie Text, nicht Screenshots). –
Geben Sie bitte wieder Beispiele der gewünschten und tatsächlichen ** CSV-Ausgabe ** an. –