작동하는 스크립트가 있지만 이름에 ö, ü, ä가있는 동료가 있으므로 csv에서? (예 : Hörnlima = H? rnlima). 이 때문에 SamAccountname을 돌려주지 않으며 목록이 더 이상 정확하지 않습니다. 어떻게 수정할 수 있습니까?
스크립트:
Import-Csv D:\Files\PowerShell\Test\4ME\DisplaynameToSamAccountName\Displaynames.txt | ForEach {
Get-ADUser -Filter "DisplayName -eq '$($_.DisplayName)'" -Properties Name, SamAccountName |
Select Name,SamAccountName
} | Export-CSV -path D:\Files\PowerShell\Test\4ME\DisplaynameToSamAccountName\Accountnames.csv -NoTypeInformation
어떤 아이디어라도 감사합니다.
tl; dr :
예를 들어, UTF-8 문자 인코딩으로Export-Csv -Encoding utf8 ...
파일을 저장 하려면을 사용하십시오. 이렇게하면과 같은 악센트 부호가있는 문자 가 보존됩니다.ö
에서 Windows PowerShell을 , Export-Csv
ASCII 인코딩 유감스럽게도 기본적으로 , 어떤 수단 것을 미국 ASCII 범위 밖의 모든 문자 - 특히 악센트 등의 문자는 ö
-로 음역하는 문자 ?
.
즉, 이러한 문자는 ASCII 인코딩으로 표현할 수 없기 때문에 손실됩니다 .
에서는 PowerShell을 [코어] + V6 , 모두 를 포함하는 cmdlet, Export-Csv
지금 다행히 UTF-8 인코딩 BOM없는 기본값 .
지정하지 않고 스위치 를 사용하여 기존 CSV 파일에 추가 할 때의 동작 에 대해서는 이 답변을 참조하십시오 .-Append
-Encoding
따라서, 특히 Windows PowerShell을에, 사용을 -Encoding
원하는 문자 인코딩을 지정하는 매개 변수를 :
-Encoding utf8
모든 유니 코드 문자 를 인코딩 할 수 있기 때문에 권장 됩니다.
-Encoding utf8BOM
BOM이 사용.-Encoding Unicode
( UTF-16 LE) 인코딩은 또 다른 옵션이지만 더 큰 파일이 생성됩니다 (대부분의 문자는 2 바이트 로 인코딩 됨 ). 이 인코딩은 항상 BOM을 생성합니다.
-Encoding Default
Windows의 (Windows PowerShell) 또는
-Encoding (Get-Culture).TextInfo.ANSICodePage
(PowerShell [Core] v6 +)는 시스템의 활성 ANSI 코드 페이지 를 사용하여 BOM이없는 파일을 만듭니다.
많은 최신 애플리케이션은 BOM이없는 경우 UTF-8 인코딩을 가정합니다.
파일을 ANSI로 인코딩 된 파일로 읽는 경우에도 호스트 시스템에 다른 활성 ANSI 페이지 가있는 경우 파일을 다르게 해석 할 수 있습니다 .
활성 ANSI 코드 페이지는 (서구 문화의 경우) 고정 된 단일 바이트 인코딩이므로 모든 유니 코드 문자의 작은 하위 집합 인 256 자만 나타낼 수 있습니다.
참고 PowerShell을 때 읽어 BOM-작은 파일 의 소스 코드, 두 버전 사이의 행동 다르다을 포함하여 :
에서 Windows PowerShell을 , Default
즉에게 시스템의 가정 활성 ANSI 코드 페이지를 .
에서는 PowerShell을 [코어] + V6 , UTF-8은 가정한다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다