일일이 부서 및 직원들에게 GPupdate.exe /Force 명령어를 실행도록 부탁 하는것은 현실적으로 무리한 일이다.
이때, Window Remote Management 서비스를 이용하여 PowerShell 명령어를 사용함으로써,
수십대, 수백대의 컴퓨터에 명령어를 강제집행(?) 할 수 있다.
앞서 WinRM 서비스를 참고 한 뒤,
다음과 같이 명령어를 실행~!!
- Get-Adcomputer -Filter * | ForEach-Object {Invoke-Command -Computername $_.DnsHostname -Scriptblock {gpupdate.exe /force}}
ForEach-Object {Invoke-Command -Computername $_.DnsHostname -Scriptblock
{gpupdate.exe /force}} 를 알아두어야 한다.
ForEach는 처리 속도면에서 좀 느리다. 좀 더 빨리 처리하기 위해서는 아래와 같이 하면 좋다.
- Invoke-Command -ComputerName (Get-ADComputer -Filter * | Select-Object -ExpandProperty Name) {gpupdate.exe /force}
위의 두 명령어에 대하여 앞에 Measure-Command { }을 해서 TotalMilliseconds를 보면 처리 속도를 확인할
수 있다.
- Measure-Command {Get-Adcomputer -Filter * | ForEach-Object {Invoke-Command -Computername $_.DnsHostname -Scriptblock {gpupdate.exe /force}}}
- Measure-Command {Invoke-Command -ComputerName (Get-ADComputer -Filter * | Select-Object -ExpandProperty Name) {gpupdate.exe /force}}
한가지 더, 위의 명령어들은 DC내 모든 PC를 통합하여 설정을 내린다.
이때, DC로 등록되어진 본 서버에게도 명령어가 내려가므로 에러 표시가 나올 수 있다.
원하는 개체에(예:부서)만 해당명령어를 내리고 싶을땐, 아래와 같이 해준다.
- ICM -Computer (Get-ADComputer -Filter * -SerchBase "OU=abc, DC=xyz, DC=COM" | Select-Object -ExpandProperty Name) {GPupdate.exe /Force}
자료 참고: http://powershell.kr/ 이용식 강사님
댓글 없음:
댓글 쓰기