programing

PowerShell을 사용하여 열 제목이 없는 데이터 출력

css3 2023. 7. 29. 08:48

PowerShell을 사용하여 열 제목이 없는 데이터 출력

열 제목 없이 PowerShell에서 데이터를 출력할 수 있기를 원합니다.다음을 사용하여 열 제목을 숨길 수 있습니다.Format-Table -HideTableHeaders하지만 맨 위에 빈 줄이 남아 있습니다.

다음은 제 예입니다.

get-qadgroupmember 'Domain Admins' | Select Name | ft -hide | out-file Admins.txt

열 제목과 빈 줄을 제거하려면 어떻게 해야 합니까?

다른 행을 추가하여 다음 작업을 수행할 수 있습니다.

Get-Content Admins.txt | Where {$_ -ne ""} | out-file Admins1.txt

그런데 이거 한 줄로 해도 되나요?

이 경우 단일 속성을 선택할 때 가장 쉬운 방법은 형식 지정을 모두 생략하는 것입니다.

get-qadgroupmember 'Domain Admins' | foreach { $_.Name }

이것은 당신에게 간단한 것을 줄 것입니다.string[]열 제목이나 빈 줄 없이.Format-*cmdlet은 주로 인간의 소비를 위한 것이므로 출력물은 기계로 쉽게 읽히거나 읽을 수 있도록 설계되지 않았습니다.

여러 속성의 경우에는 아마도-f형식 연산자.의 노선을 따르는 무언가.

alias | %{ "{0,-10}{1,-10}{2,-60}" -f $_.COmmandType,$_.Name,$_.Definition }

이는 예쁘지는 않지만 출력 형식을 쉽고 완벽하게 제어할 수 있습니다.그리고 빈 줄은 없습니다 :-)

더 나은 대답은 스크립트를 원래대로 두는 것입니다.할 때Select name따르다, 따라가다, 따라가다, 따라가다, 따라가다, 따라가다-ExpandProperty Name이와 같이:

Get-ADGroupMember 'Domain Admins' | Select Name -ExpandProperty Name | out-file Admins.txt

"format-table"을 사용하는 경우 사용할 수 있습니다.-hidetableheaders

select-object 뒤에 parameter-property를 추가하면 헤더 없이 데이터만 반환됩니다.

-expand 속성은 둘 이상의 개체에서 작동하지 않습니다.다음을 사용할 수 있습니다.

Select-Object Name | ForEach-Object {$_.Name}

값이 둘 이상인 경우:

Select-Object Name, Country | ForEach-Object {$_.Name + " " + $Country}

Joey가 언급한 것은Format-*인간의 소비를 위한 것입니다.컴퓨터 사용을 위해 파일에 쓰는 경우 사용할 수 있습니다.Export-*어떤 좋은 것들은.

  • Export-Csv쉼표로 구분된 값입니다.열이 무엇인지 알 때 유용합니다.
  • Export-Clixml전체 개체 및 컬렉션을 내보낼 수 있습니다.이것은 연재에 아주 좋습니다.

다시 읽고 싶다면 다음을 사용할 수 있습니다.Import-Csv그리고.Import-Clixml저는 제 자신의 데이터 형식을 발명하는 것보다 이것이 더 좋다는 것을 알게 되었습니다(또한 그것은 매우 쉽습니다).Import-Ini선택할 수 있습니다.).

먼저 명령 출력을 가져온 다음 래핑하여 속성 중 하나를 선택합니다.우리가 원하는 것은 오직 하나의 "이름"뿐입니다.그래서 ".name"이 있는 groups 속성을 선택한 다음 출력합니다.

텍스트 파일로

 (Get-ADGroupMember 'Domain Admins' |Select name).name | out-file Admins1.txt

csv로

(Get-ADGroupMember 'Domain Admins' |Select name).name | export-csv -notypeinformation "Admins1.csv"
$server = ('*')+(Read-Host -prompt "What Server Context?")+'*'
$Report = (Get-adcomputer -SearchBase "OU=serverou,DC=domain,DC=com" -filter {name -like $server} -SearchScope Subtree|select Name |Sort -Unique Name) 
$report.Name | Out-File .\output\out.txt -Encoding ascii -Force
$Report
start notepad .\output\out.txt

서버 SearchBase를 위에 놓습니다.서버 OU가 무엇인지 모를 경우 아래의 이 기능을 사용해 보십시오.

#Function Get-OSCComputerOU($Computername)

{
    $Filter = "(&(objectCategory=Computer)(Name=$ComputerName))"

    $DirectorySearcher = New-Object System.DirectoryServices.DirectorySearcher
    $DirectorySearcher.Filter = $Filter
    $SearcherPath = $DirectorySearcher.FindOne()
    $DistinguishedName = $SearcherPath.GetDirectoryEntry().DistinguishedName

    $OUName = ($DistinguishedName.Split(","))[1]
    $OUMainName = $OUName.SubString($OUName.IndexOf("=")+1)
    
#    $Obj = New-Object -TypeName PSObject -Property @{"ComputerName" = $ComputerName
#                                                     "BelongsToOU" = $OUMainName
#                                                     "Full" = $DistinguishedName}
    $Obj = New-Object -TypeName PSObject -Property @{"Full" = $DistinguishedName}


    $Obj
}

를 반드시 합니다.Get-OSCComputerOU Servernameselect -expandproperty Full기반에 ...그러면 검색 베이스에 대한 응답을 연결하면 됩니다.

모두 http://www.jaapbrasser.com 덕분입니다.

언급URL : https://stackoverflow.com/questions/1408042/output-data-with-no-column-headings-using-powershell