PowerShell을 시작하기위한 5 가지 Cmdlet
PowerShell은 IT 전문가뿐만 아니라 고급 사용자의 기본 스크립팅 언어 및 CLI로 급속히 자리 잡고 있습니다. 시작하기 위해 몇 가지 명령을 배울 가치가 있으므로 오늘 배울 수있는 유용한 cmdlet 5 개가 있습니다..
Get-Command
Get-Command는 PowerShell 전체에서 가장 유용한 cmdlet 중 하나입니다. 특정 cmdlet을 검색하여 PowerShell을 이해하는 데 도움이됩니다. 자체적으로 Get-Command를 사용하는 것은 PowerShell에있는 모든 명령을 내뱉기 때문에별로 유용하지 않습니다..
PowerShell이 출력하는 개체에는 Name과 ModuleName 속성이 있습니다. 이 정보를 사용하여 특정 용어가 포함 된 cmdlet을 검색하여 검색을 세분화 할 수 있습니다. 예를 들어 "IP"라는 단어가 포함 된 모든 cmdlet을 찾으려면 다음을 수행 할 수 있습니다.
Get-Command -Name * IP *
보시다시피 아직 몇 가지 결과가 있지만 다음 옵션은 특정 모듈 내에서 검색하는 것입니다. 우리의 경우 나는 NetTCPIP 모듈을 선택할 것이다..
Get-Command - 모듈 NetTCPIP - 이름 * IP *
Get-Help
Get-Command를 사용하여 찾고있는 cmdlet을 발견하면 구문과이 cmdlet을 사용하는 방법을 알고 싶어합니다. 이것은 Get-Help가 들어오는 곳입니다. Windows에서 명령 줄을 사용한 적이 있다면 다음과 같이했을 것입니다 :
ipconfig /?
PowerShell에서는 작동하지 않습니다. PowerShell에서는 매개 변수와 명령을 구분하는 데 공백이 사용되기 때문입니다. 대신 Get-Help를 사용하고 Get-Help에 cmdlet 이름을 매개 변수로 전달합니다.
Get-Help Get-Process
Get-Member
Get-Member를 사용하면 cmdlet에서 반환하는 개체에 대한 정보를 얻을 수 있습니다. get-member를 가진 catch는 PowerShell의 파이프 라인 기능을 사용하여이를 보여 주며 Get-Process cmdlet을 사용할 수 있습니다..
PowerShell의 출력 결과는 각 열의 맨 위에 표시되는 일부 속성을 보여줍니다. 첫 번째 문제는 이들이 대부분의 시간 동안 찾고있는 속성이지만 그 중 여전히 많은 것이 있다는 것입니다. 두 번째 문제는 객체에서 호출 할 수있는 메서드가 표시되지 않는다는 것입니다. 메서드와 속성을 보려면 출력을 Get-Member로 파이프 할 수 있습니다. 예를 들면 다음과 같습니다.
Get-Process | Get-Member
지금 당장은 아무런 의미가 없지만, 조만간 Get-Member를 사용해야 할 것이며, 더 빨리 사용하는 방법을 배울수록 좋습니다. 예를 들어 출력의 정보를 사용하면 다음과 같은 작업을 수행 할 수 있습니다.
시작 프로세스 notepad.exe
$ NotepadProc = Get-Process - 이름 메모장
$ NotepadProc.WaitForExit ()
시작 프로세스 calc.exe
이 스크립트는 메모장을 시작하고 "Get-Process -Name notepad"출력을 $ NotepadProc 변수에 할당 한 다음 $ NotepadProc에 WaitForExit 메서드를 호출하여 메모장을 닫으면 스크립트가 일시 중지되도록합니다 계산기가 시작됩니다..
$ _ (현재 파이프 라인 개체)
정확히 cmdlet은 아니지만 PowerShell에서 가장 많이 사용되는 특수 변수 중 하나입니다. $ _의 공식 이름은 "현재 파이프 라인 객체"입니다. 이것은 스크립트 블록, 필터, 함수의 프로세스 절, where-object, foreach-object 및 switches에서 사용됩니다. 그러나 예제를 통해 설명하는 것이 더 쉽습니다. 다음 예제와 마지막 cmdlet 인 Where-Object.
위치 - 개체
Where-Object는 정확히 들리는 것을 수행하고 특정 기준을 충족하는지 여부에 따라 객체를 선택합니다. 이렇게하면 $ _과 Get-Member를 사용하여 볼 수있는 속성이 결합됩니다. 이를 증명하기 위해 Get-Process의 출력을 Where-Object cmdlet으로 파이프합니다.
Get-Process | Where-Object $ _. 이름 -eq "iexplore"
그럼 여기서 무슨 일이 벌어지는거야? 먼저 우리 컴퓨터에서 프로세스 목록을 얻고 스크립트 블록을 매개 변수로 사용하는 Where-Object cmdlet에 출력 (문자 사용)을 전달합니다. 스크립트 블록 (중괄호로 정의)은 Where-Object cmdlet에 이름 매개 변수가 "iexplore"인 개체 만 선택하도록 지시하므로 실행중인 IE 인스턴스 목록 만 가져옵니다. 그게 다야, 재미있어.!