728x90

PowerShell 을 이용해서 대량의 파일을 대상으로 내부 내용을 변경 하는 방법을 찾아 보았습니다.

PowerShell 에는 -replace 연산자가 존재하는데, 마치 리눅스의 sed 명령어 처럼 쓸 수 있습니다.

"wow nice olleh" | %{$_ -Replace ("nice","OLLEH")}

 




이 연산자를 사용해서 대량의 파일을 대상으로 내용을 변경 하는 것도 가능 한데요, 아래의 구조로 된 폴더를 예로 들겠습니다.



폴더의 내부에 존재하는 각 파일의 내용에는 nice 라는 문자열이 존재합니다.



만약, "MyDocument" 디렉터리및 하위 디렉터리의 모든 *.txt 파일을 대상으로 파일 내용 중 "nice" 를 "OLLEH" 라고 바꾸고 싶다면, 아래 명령어를 사용하면 됩니다.

dir -Path MyDocument -Include *.txt -Recurse | %{$tmp = Get-Content $_; $tmp=$tmp -Replace ("nice","OLLEH"); Set-Content $_ $tmp}

 


파일의 내용 중 nice 가 모두 OLLEH 로 변경 된 것을 확인 할 수 있습니다.

대량 변경 작업시에 유용하게 사용 할 수 있을 것 같네요. ^^



<참고 URL>
http://www.myitforum.com/articles/40/view.asp?id=11843
http://blogs.msdn.com/b/zainnab/archive/2007/07/09/grep-and-sed-with-powershell.aspx

<참고 도움말>
about_Comparison_Operators

감사합니다.

출처: https://svrstudy.tistory.com/81?category=352377 [Windows Server 공부방]

728x90
728x90

New-Mailbox Cmdlet을 이용하여 대량으로 사용자 계정 등록하기에 대하여 알아 보도록 하겠습니다.

New-mailbox 를 통하여 계정을 하나하나 생성이 가능하지만 아래와 같은 스크립트와 생성이 필요한 사용자의 계정정보가 포함됨 CSV파일을 임포트 하여 대량으로 계정의 등록이 가능합니다.


임포트할 CSV 파일은 아래와 같이 만들어 줍니다.



변수 $password 선언은 패스워드의 경우 암호화 처리가 되어 저장이 됨으로 변수를 선언하여 직접 입력 받도록  설정합니다.


$password = Read-Host "Enter password" -AsSecureString

$DB = import-csv $args[0]

foreach ($i in $db)

{

New-Mailbox -UserPrincipalName ($i.id + "@test-domain.co.kr") -Alias $i.Alias -Database "Mailbox Database 1602724241" -Name $i.Name -OrganizationalUnit Users -Password $password -FirstName $i.FirstName -LastName $i.LastName -DisplayName $i.DisplayName -ResetPasswordOnNextLogon $false

}



이상으로  New-Mailbox Cmdlet을 이용한 대량 사용자 계정 등록하기에 대하여 알아 보았습니다.

728x90

+ Recent posts