출력을 PowerShell의 화면과 파일에 표시
화면 출력뿐만 아니라 CSV 형식의 텍스트 파일에 저장하려면 어떻게 해야 합니까?
$OUs = Get-ADObject -LDAPFilter "(objectCategory=organizationalUnit)" `
-SearchBase "OU=GA,OU=EAST,DC=corp,DC=chm,DC=com" | Select distinguishedName
ForEach ($OU In $OUs)
{
$OU.distinguishedName
Get-ADComputer -SearchBase $OU.distinguishedName -SearchScope OneLevel `
-Filter * | Select Name
}
난 시도했다.
$OUs = Get-ADObject -LDAPFilter "(objectCategory=organizationalUnit)" `
-SearchBase "OU=GA,OU=EAST,DC=corp,DC=chartercom,DC=com" | Select distinguishedName
ForEach ($OU In $OUs)
{
$OU.distinguishedName
Get-ADComputer -SearchBase $OU.distinguishedName -SearchScope OneLevel `
-Filter * | Select Name
} | | export-CSV c:\temp\outfile.csv –noType
그 외에도 많은 형식이 있지만 항상 오류가 발생합니다.
파이프 요소는 비워 둘 수 없습니다.
cmdlet을 사용합니다.
Tee-Object cmdlet을 사용하면 Windows PowerShell 창에 데이터를 표시하고 동일한 데이터를 텍스트 파일에 저장할 수 있습니다.
dir | Tee-Object -file dir.txt
이렇게 써야 돼요.
ForEach ($OU In $OUs)
{
$OU.distinguishedName
Get-ADComputer -SearchBase $OU.distinguishedName -SearchScope OneLevel `
-Filter * | Select Name
} | Tee-Object -file c:\temp\outfile.txt
참고: 가명을 사용하고 있습니다.tee
, 유닉스와 같은 것입니다.
작동 내용:
Get-WmiObject -Class Win32_Product | Select Name, Version | Sort Name | Tee-Object -file h:\InstalledApps.TXT
파이프 요소는 비워 둘 수 없습니다.
마지막 줄에 중복되는 막대가 있습니다.
} | | export-CSV c:\temp\outfile.csv –noType
각 루프에서 직접 파이프링할 수 없기 때문에 오류가 완전히 해결되지는 않습니다.Tee-Object처럼 텍스트 파일 대신 CSV 파일로 내보낼 수 있습니다(Tee-Object를 CSV로 변환할 수 있음).이렇게 하면 결과를 CSV 파일로 출력하고 결과를 화면에 출력합니다.
$OUs = Get-ADObject -LDAPFilter "(objectCategory=organizationalUnit)" `
-SearchBase "OU=GA,OU=EAST,DC=corp,DC=chartercom,DC=com" | Select distinguishedName
$results = @()
ForEach ($OU In $OUs)
{
$OU.distinguishedName
Get-ADComputer -SearchBase $OU.distinguishedName -SearchScope OneLevel `
-Filter * | Select Name
} $results | Export-Csv c:\temp\outfile.csv -NoTypeInformation
write-host $results
이 작업은 훨씬 간단한 스크립트를 사용하여 수행할 수도 있습니다.
Get-ADComputer -SearchBase "OU=GA,OU=EAST,DC=corp,DC=chartercom,DC=com" -SearchScope OneLevel -Filter * | Select Name | Export-Csv c:\temp\outfile.csv -NoTypeInformation
Import-Csv c:\temp\outfile.csv
티 오브제는 좋지만 매우 제한적입니다.함수에 대한 더 많은 제어가 필요한 사람들을 위해 - eNLib의 write-log 함수를 사용합니다.
설치 모듈 eNLib
write-log를 사용하면 텍스트, 객체를 포크하고, 시작-스크립트 기능으로 로그 파일을 정의할 수 있으며, 매번 로그 파일 이름을 정의할 필요가 없어 고급 스크립팅에 매우 유용합니다.
언급URL : https://stackoverflow.com/questions/11161929/show-output-on-screen-and-in-file-in-powershell
'programing' 카테고리의 다른 글
SQL 개발자 문제입니다.java.library.path에 ocijdbc21 없음 (0) | 2023.09.12 |
---|---|
Android에서 .docx 파일 및 .xlsx 파일을 만드는 방법 (0) | 2023.09.12 |
SELECT 절에 집계 함수가 없는 경우 GROUP BY 동작 (0) | 2023.09.07 |
문자열 내의 URL을 찾는 정규식 (0) | 2023.09.07 |
스위프트 등화 프로토콜 (0) | 2023.09.07 |