2016-07-13 2 views
0

필자는 필 요한 경우 모든 AD 사용자의 속성에 포함 된 URL의 대소 문자를 확인하고 변경하는 powershell 스크립트를 만들려고합니다. 도메인 컨트롤러에는 Mac 사용자를위한 mcx 설정을 허용하는 확장 스키마가 적용되었으며 URL은 각 Mac 사용자에게 적용되는 홈 폴더 경로입니다.powershell 및 확장 스키마로 AD 사용자 속성 수정하기

Get-ADUser <username> -properties * | Select-Object -ExpandProperty apple-mcxsettings 

은이 URL 경로를 포함하여이 속성의 전체 정보를 xml 데이터로 표시합니다. 이 출력은 보통 <?xml version="1.0" encoding="UTF-8"?> 등으로 시작하지만이 출력 내에서 더 깊게 필터링하여 _CFURLString이라는 키 아래의 문자열 인 URL을 찾을 수 없었습니다.

대부분의 경우 경로는 소문자이지만 볼륨 경로의 각 단어는 대문자로 시작해야하지만 속성 결과를 필터링하는 방법을 찾고 특정 키의 문자열 값을 표시하는 데 어려움을 겪고 있습니다. . Select-String -pattern이 작동하지 않습니다. 배열로 전달하려고하면 배열의 첫 번째 요소에 전체 XML 문자열이 포함되므로이 xml 정보를 모두 필터링하여 문자열 값을 확인하고 수정하는 방법을 찾고 있습니다.

답변

1

속성 값은 XML 문서는 다음 [xml] 형 가속기와 같은 취급 경우 :

$settingsXml = [xml](Get-ADUser syone201 -properties apple-mcxsettings | Select-Object -ExpandProperty apple-mcxsettings) 

를 XML이 an XML-formatted PropertyList로 구성되어 있다고 가정하면, 먼저 정확한 키를 찾을 수있을 것입니다, 그 값은 다음 형제 노드에서 찾을 수 있습니다.

$CFURLStringKey = Select-Xml -Xml $settingsXml -XPath '//plist/dict/key[. = "_CFURLString"]' |Select-Object -ExpandProperty Node 
$CFURL = $CFURLStringKey.NextSibling.InnerText 
+0

안녕하십니까. 빠른 답장을 보내 주셔서 감사합니다. 문제가 더 깊어지는 것 같습니다. "Get-ADUser syone201 -properties apple-mcxsettings | Select-Object -ExpandProperty apple-mcxsettings"결과에서 변수를 생성하여 제안한 것을 시도해 보았습니다. 값을 변환 할 수없고 평소와 같은 내용을 화면에 출력한다고합니다. style Apple xml plist Syone201

+0

오류 메시지의 마지막 부분은 무엇이라고 말합니까? 모든 내용이 포함 된 xml 내용 –

+0

뒤에 "지정된 경로의 형식은 지원되지 않습니다."라는 내용으로 끝납니다. 그것은 내가 변화시키고 자하는 가치를 읽을 수 없다면 그것을 부패하지 않고 수정을 어떻게 다시 쓰는지에 대한 두려움을 준다. 추가 변환이 가능합니까? – Syone201

관련 문제