매개변수 -CompuerName 사용법


  • Get-Process, Get-Service 등등을 실행할  -ComputerName이라는 매개변수(Parameter)를 사용하게 된다. 이  -Computername을 사용하지 않으면 기본적으로 로컬 컴퓨터 이름이 입력된다.
  • 하지만 -ComputerName을 사용할 때는 그 뒤에 컴퓨터 이름을 반드시 사용해주어야 한다.
  • 그렇다면 컴퓨터 이름을 어떻게 사용하는지 알아본다. 다음과 같은 방법으로 사용된다.
    • 그냥 뒤에 컴퓨터 이름을 직접 입력하면 된다.
      Get-Process -ComputerName pc1, pc2

    • 컴퓨터 이름을 Text 파일에 입력된 것을 불러 와서 사용한다. 이렇게 하면 늘 검사하는 컴퓨터 이름을 입력되어 있기 때문에 사용하는데 추가로 입력할 필요가 없어서 편리하다.
      Get-Service -ComputerName (Get-Content c:\computers.txt)

    • 컴퓨터 이름을 어떤 cmdlet의 결과 값을 사용한다.
      Get-Hotfix -ComputerName (Get-ADComputer -Filter * | Select-Object -ExpandProperty name)
      Invoke-Command -ComputerName (Get-ADComputer -Filter {Name -like “nyc-svr*”} | Select-Object -ExpandProperty name) -ScriptBlock {ipconfig}

      ** 여기서 Select-Object -ExpandProperty Name으로 하면 결과가 나오고,  Select-Object -Property Name으로 하면 결과가 나오지 않으니 주의한다.  그 이유는 아래의 그림을 보면
      알 수 있다.


      ** Select-Object -Property를 사용하면, 값만 나오는 것이 아니라 부가적인 정보나오기 때문에 문제가 되는 것이다. 우리가 원하는 것은 (컴퓨터 이름)만 나와야지 다음 단계를 처리할 수 있기 때문에 Select-Object -ExpandProperty를 사용해야 하는 것이다.
      ** 여기서 우리는 Select-Object에서 사용 가능한 매개변수인 -Property -ExpandProperty의 차이점을 알 필요가 있다.

      ** 특히 여러 개의 컴퓨터 이름을 이용할 , 즉 Active Directory에 있는 컴퓨터 이름을 활용하는 이 형식을 알아 두면 참 편리하다. 꼭 기억해 두기를…
      Get-Hotfix -ComputerName (Get-ADComputer -Filter * | Select-Object -ExpandProperty name)
       

      • 컴퓨터 이름을 파이프라인의 입력 값 중에서 특정한 속성 값을 사용한다.
        Get-ADComputer -Filter * | ForEach-Object {Invoke-Command -ComputerName $_.DnsHostname-ScriptBlock {gpupdate.exe /force}}
        Get-ADComputer -Filter * | ForEach-Object {Invoke-Command -ComputerName $_.Name -ScriptBlock {mkdir c:\powershell}}
        ** -computername $_.Name도 되고 -computername $_.DnsHostName도 모두 가능하다. , Get-ADComputer -Filter *에서 나온 결과를 보면 DnsHostName nyc-svr1.contoso.com이고 Name nyc-svr1이기 때문에 결과를 도출하는데는 아무 문제가 없다.
        ** c.번과 d.번의 결과는 동일한 것임을 알 수 있다. , C.번 형식으로 하나 D.번 형식으로 하나 동일한 표현이라는 것이다.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s