2014-06-19 2 views
0

그래서 저는 PowerShell을 처음 사용합니다. 나는 기초의 일부를 이해하고, 가능한 한 많이 나 자신을 가르치려고 아직도 노력하고있다.연락처를 사서함으로 가져오고 powershell로 덮어 쓰려면 어떻게해야합니까?

우리 회사의 연락처를 모든 사람의 사서함 (60-70 개의 연락처는 60-70 개의 사서함)에 자동으로 푸시하도록 요청되었습니다. Office 365를 사용합니다. 연락처도 휴대폰과 동기화되기를 원합니다. 공유 연락처 목록을 사용했습니다. MAIN 연락처 목록 만 전화기에 동기화 할 수 있습니다. 지금까지 내가 이것을 사용하고

:

import-contactlist -csv -csvdata ([system.io.file]::readallbytes("PATH TO CSV FILE")) -identity USER 

이 잘 작동하지만, 거기에 CSV에 대한 변경은 내가 다시 실행하면, 그냥 대신 덮어 쓰기의 모든 연락처를 두 배로. 연락처를 덮어 쓸 수 있습니까?

Search-Mailbox -identity USER -SearchQuery kind:contacts -deletecontent 

이것은 내가 처음에 만든 연락처를 삭제 않지만, 사용자가 생성 한 다른 연락처가있는 경우, 그것은뿐만 아니라 사람들을 삭제합니다 :

나는 또한이 시도했다. 나는 올바른 방향으로 향하고있는 것처럼 느낍니다. 아무도 도와 줄 수 있습니까?

+0

CSV 파일을 메모리에로드 한 다음 CSV를 통해 각 사용자 루프에 대해 검색하고 연락처가 이미있는 경우 검색/삭제해야하는 것처럼 들립니다. 특정 연락처를 찾기 위해'-SearchQuery'에서 지정할 수있는 것이 있어야합니다. – TheMadTechnician

+0

themadtechnician에게 감사드립니다. 나는 당신의 제안과 비슷한 것을했습니다. – user3267830

답변

0

좋아요. 알아 냈다고 생각합니다. 내가 가진 접촉 가져온 후 :

import-contactlist -csv -csvdata ([system.io.file]::readallbytes("PATH TO CSV")) -identity USER 

을 나는이 찾아 각 추가 접촉 삭제 실행할 수 있습니다 : 나는 (? 내가 생각)하지만 때문에 포인터 문제의 xcontacts = scontacts 사용 어쨌든

$tcontacts = get-content PATH TO CSV WITH ONLY NAMES 
$zcontacts = get-content PATH TO CSV WITH NAMES OF MAILBOXES YOU WANT TO REMOVE CONTACTS FROM 
$ccontacts = "null" 
$scontacts = "null" 
$xcontacts = "null" 
foreach ($ccontacts in $tcontacts) {foreach ($scontacts in $zcontacts) {$xcontacts = $scontacts; Search-Mailbox -identity $xcontacts -SearchQuery kind:'contacts', $ccontacts -deletecontent -force}} 

을, -identity doesnt 작업에 $ scontacts를 사용합니다.

이것은 매우 거친 스크립트이며 여러분은 아마도 더 짧은 스크립트를 찾을 수 있지만 작동합니다! 감사합니다

관련 문제