繁体   English   中英

如何将所有PowerShell屏幕输出写入.csv报告文件

[英]How to write all PowerShell screen output to .csv report file

图1图 2虽然我知道这与许多其他问题类似,但是,我一直很难确定如何使屏幕上显示的内容进入输出文件。 我正在使用PowerShell版本5.1.16299.1146。 图1是我在PS屏幕上看到的图像。 我希望脚本查看是否存在特定文件,并且该文件为TRUE或FALSE,然后将信息写入.csv文件。 Fig2图像是实际写入.csv报告中的图像。 我希望将计算机名称,结果(TRUE / FALSE)和用户+ LastWriteTime写入.csv文件(如果在特定计算机上的每个用户的用户AppDate位置中找到该文件)。

Set-ExecutionPolicy Bypass
$javausers = @()
$env:COMPUTERNAME = HostName

$TestPath = "$env:userprofile\AppData\LocalLow\Sun\Java\Deployment\deployment.properties"
$TestResult = if ( $(Try { Test-Path $TestPath.trim() } Catch { $false }) ) { Write-Output "True - deployment.properties" } Else { Write-Output "False - Path not found" }

$users = Get-ChildItem c:\users

foreach ($user in $users)
{

$folder = "C:\users\" + $user + "$env:userprofile\AppData\LocalLow\Sun\Java\Deployment\deployment.properties" 

if ( $(Try { Test-Path $TestPath.trim() } Catch { $false }) ) { Write-Output "True - deployment.properties" $users -join ','} Else { Write-Output "False - Path not found" $users-join ','}

}

$javauser = New-Object System.Object
$javauser | Add-Member -MemberType NoteProperty -Name "Computer Name" -Value $env:COMPUTERNAME
#$javauser | Add-Member -MemberType NoteProperty -Name "Java User" -Value $TestPath
$javauser | Add-Member -MemberType NoteProperty -Name "Results" -Value $TestResult
$javauser | Add-Member -MemberType NoteProperty -Name "Users" -Value $folder
#$javauser | Add-Member -MemberType NoteProperty -Name "Users" -Value $users

$javausers += $javauser

$javausers | Export-Csv -NoTypeInformation -Path "C:\Temp\JavaUsersList.csv" -Append

要读取其他用户的文件夹,您需要RunsAsAdmin。

#Requires -RunAsAdministrator
## Q:\Test\2019\08\29\SO_57714265.ps1

Set-ExecutionPolicy Bypass

$env:COMPUTERNAME = HostName

$DeplPath = "AppData\LocalLow\Sun\Java\Deployment\deployment.properties"

$javausers = foreach ($User in Get-ChildItem C:\Users -Directory){
    $folder = Join-Path $User.FullName $DeplPath
    if (Test-Path $folder) {
        $TestResult = "True  - deployment.properties"
    } Else {
        $TestResult = "False - Path not found"
    }
    [PSCustomObject]@{
        "Computer Name" = $env:COMPUTERNAME
        "Results"       = $TestResult
        "Users"         = $user.Name
    }
}
$javausers

#$javausers | Export-Csv -NoTypeInformation -Path "C:\Temp\JavaUsersList.csv" -Append

样本输出:

Computer Name Results                       Users
------------- -------                       -----
VBoxWin10     False - Path not found        SomeOne
VBoxWin10     False - Path not found        Public
VBoxWin10     True  - deployment.properties LotPings

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM