PowerShell(4)PowerShell 의 대상,형식 및 매개 변수 탐색

오늘 박문 을 붙 이 는 것 이 늦 었 습 니 다.여러분 이 계속 관심 을 가 져 주 셔 서 감사합니다!
이 절 에 서 는 PowerShell 의 대상,기본 형식 및 인 자 를 소개 합 니 다.여전히 PowerShell 의 기본 입 니 다.
PowerShell 의 대상
이 튜 토리 얼 의 시작 부분 에서 PowerShell 은 대상 화 된 것 으로 전통 적 인 셸 처럼 텍스트 를 기반 으로 하지 않 습 니 다.그 중에서 가장 중요 한 이 유 는 Win 플랫폼 이 관리 작업 에 있어 주로 대상 을 대상 으로 하기 때문에 시스템 특징 과 우리 의 조작 습관 에 부합 하기 위해 PowerShell 도 이러한 특색 을 계승 했다.따라서 전통 적 인 셸 과 달리 PowerShell 에서 우 리 는 대상 과 자 유 롭 게 상호작용 을 할 수 있 습 니 다.
먼저 대상 이 무엇 인지 알 아 보 자.
여러분 이 개발 에 종사 한 경험 이 있 는 지 모 르 겠 습 니 다.실제로 대상 을 대상 으로 한 다 는 개념 은 프로그램 언어 로 현실 문 제 를 잘 해결 하기 위해 제 기 된 것 이다.
잔말 말고 본론 으로 들 어가 라.PowerShell 에서'대상'은 저희 가 정 보 를 수집 하거나 실행 하 는 행 위 를 말 합 니 다.속성(정보,우 리 는 수집 할 수 있 습 니 다)과 방법(우 리 는 실행 할 수 있 습 니 다)을 포함 합 니 다.
전구대상 은 분명 하 다.그것 은 전구 이다.하나의 전구 의 속성 은 색깔,출력 과 유형(형광등,백열등 또는 할로겐 등)을 포함 할 수 있다.그것 의 조작 이나 방법 이 라 고 부 르 는 것 은 우리 가 실행 할 수 있 는 행동 이다.예 를 들 어 열 고 닫 는 것 이다.이해 하기 쉬 워!
PowerShell 에 있 는 대상 의 속성 과 방법 을 보 여 줍 니 다.
우선,"Get-member"를 자주 사용 할 수 있 습 니 다.이 cmdlet 는 대상 이 어떤 속성 과 방법 을 가지 고 있 는 지 검사 하 는 데 사 용 됩 니 다.

get-service | get-member 

이 명령 을 사용 하면'get-service't 의 속성 과 방법 을 볼 수 있 습 니 다.이 예 에서 우 리 는 파이프 부 호 를 사용 하여 명령 을 전달 합 니 다.실행 결 과 는 다음 과 같 습 니 다.

물론"get-member"의 매개 변 수 를 사용 하여"get-service"의 모든 속성 류 대상 이나 방법 류 대상 을 볼 수 있 습 니 다.
예 를 들 면:
"get-service"의 모든 속성 클래스 대상

Get-Service | Get-Member -MemberType Property<enter> 

보기
get-service"의 모든 방법 클래스 대상

Get-Service | Get-Member -MemberType Method<enter> 

보기
왜 우 리 는 이렇게 대상 을 강조 합 니까?그 이 유 는 PowerShell 에서 모든 것 이 대상 이기 때 문 입 니 다.
예 를 들 면:
우 리 는 지정 한 날짜 에 d:\에 기 록 된 파일 이 어떤 것 이 있 는 지 찾 아야 합 니 다.다음 명령 을 사용 하 십시오:
Get-ChildItem -Path d:\ -Recurse | Where-Object {$_.LastWriteTime -gt "01/01/2010"}<enter>
이제 설명 하 겠 습 니 다.
우선,"get-childitem"은 우리 의 파일 시스템 을 매 거 진 하 는 데 사 용 됩 니 다."-path"인 자 를 사용 하여 경 로 를"d:\"로 가리 키 고"-recurse"인 자 를 사용 하면 모든 파일,심지어 하위 디 렉 터 리 에 표 시 됩 니 다.다음 에 우 리 는 결 과 를 파이프 문 자 를 사용 하여 순환 성명 인'where-object'에 전달 하여 조건 에 맞 는 결 과 를 선별 합 니 다.
그렇다면'last writetime'은 무엇 일 까?
우 리 는 다음 명령 을 사용 하여"get-childitem"에 어떤 속성 이 있 는 지 확인 할 수 있 습 니 다:
get-chileitem | get-member
그 중 하 나 를 발견 할 수 있 습 니 다:

네,바로 이것 입 니 다.우리 가 선별 해 야 할 대상 속성 은 마지막 으로 날 짜 를 쓰 는 것 이다.다음 정의 에서"Last WriteTime"은"Syetem.DateTime"데이터 형식 을 피드백 합 니 다.따라서 전체 문장의 후반 부 에 우 리 는'-lt'를 사용 하여 진일보 한 선별 을 했다.'-lt'는'greater than'의 줄 임 말로'크다'는 뜻 이다.앞으로 의 튜 토리 얼 에서 나 는 이런 조작 을 더 많이 소개 할 것 이다.앞에서 말 했 듯 이'라스트 라이트 타임'은'Syetem.DateTime'형식의 데이터 이기 때문에 우 리 는 최종 적 으로'01/01/2010'과 같은 표현 을 사용한다.이 점 은 여러분 이 더욱 주 의 를 기울 여야 하 며,앞으로 의 운용 에서 데이터 유형 에 주의해 야 합 니 다.
후속 적 인 튜 토리 얼 에서 저 는 가능 한 한 WMI,COM 과.NET 을 전면적으로 소개 할 것 입 니 다.그러나 우 리 는 지금 위의 것 을 알 고 파악 하면 충분 합 니 다.
PowerShell 형식
이 소절 에서 PowerShell 의 포맷 출력 을 소개 합 니 다.cmdlet 를 사용 할 때 인자'format-'는 습관 적 인 출력 모드 를 선택 할 수 있 습 니 다.다음 명령 을 사용 하여 시험 해 보 세 요:
Get-Command Format-* <enter>
그 결 과 는:

자,이 지식 은 아주 간단 합 니 다.어린이 신발 은 다음 명령 을 사용 해 보 세 요.결 과 는 어떻게 되 는 지 보면 알 수 있 습 니 다.
get-childitem c:\windows | format-table <enter>get-childitem c:\windows | format-table -autosize <enter>get-childitem c:\windows | format-custom <enter>get-childitem c:\windows | format-list <enter>get-childitem c:\windows | format-list -Property FullName <enter>get-childitem c:\windows | format-wide <enter>
물론 복잡 한 것 은 다음 과 같은 것들 도 있 습 니 다.저 는 너무 많은 설명 을 하고 싶 지 않 습 니 다.여러분 들 이 직접 해 보면 한눈 에 알 수 있 습 니 다.

Get-ChildItem C:\Windows -Recurse | Format-List -Property FullName,CreationTime,LastWriteTime<enter>

Get-ChildItem C: | Format-Wide -Column 3<enter>

또한 다른 cmdlet 에는 다른 형식의 출력 이 존재 합 니 다.예 를 들 어'get-process'에'group-object'가 있 고'Get-ventLog'에 서 는'Sort-Object'를 사용 할 수 있 으 며,심지어'Converto-HTML'을 사용 하여 html 로 출력 할 수 있 으 며,'Export-CSV'를 사용 하여 표 격 파일 로 출력 할 수 있 습 니 다(Excel 로 열 수 있 습 니 다).
모두 예 를 들 면 다음 과 같다.
파일 열기 에 대해 서 는 다음 명령 을 사용 하면 됩 니 다:

Get-Process | Group-Object Company<enter>

Get-EventLog System | Group-Object eventid<enter>

Get-EventLog System | Group-Object eventid | Sort-Object Count -descending<enter>

Get-Process | ConvertTo-html<enter>

Get-Process | ConvertTo-html | out-file “Processes.html”<enter>

Get-Process | Export-CSV Processes.csv<enter>

캡 처 를 보 세 요.

"Invoke-item"명령 으로 열기:

Invoke-Item Processes.html<enter> 

Invoke-Item Processes.csv<enter>


PowerShell 의 포맷 출력 을 사용 하 는 것 은 간단 하지 않 습 니까?개인 적 으로 VBScript 보다 더 쉽게 손 에 넣 을 수 있다 고 생각 합 니 다.관리 시스템 이 더 편리 해!
PowerShell 의 흔 한 매개 변수
앞에서 소개 한 바 와 같이 PowerShell 은 우리 의 기억 을 간소화 하기 위해 cmdlet 에 대해 새로운'동사-명사'의 명명 방식 을 사 용 했 습 니 다.더욱 편리 한 것 은 거의 모든 cmdlet 가 통 일 된 표준화 파 라미 터 를 가지 고 있 습 니 다.물론 거의 모든 것 이 아 닙 니 다.아래 목록 은'공공 매개 변수'를 열거 합 니 다.(이 매개 변수의 이름 은 사용자 정의 로 사용 할 수 없습니다.)
-confirm 은 cmdlet 를 실행 하기 전에 사용자 에 게 알려 줍 니 다.
-debug  관련 디 버 깅 정 보 를 제공 하 다.
-errorAction 은 cmdlet 가 어떤 작업 을 수행 할 때 발생 할 수 있 는 오 류 를 알려 줍 니 다.계속,정지 등. 
-ErrorVariable  잘못된 정 보 를 저장 하려 면 특정한 변수($error)를 사용 하 십시오.
-OutVariable 은 출력 정 보 를 저장 하 는 변수 입 니 다.
-OutBuffer 는 다음 파이프 전달 을 진행 하기 전에 캐 시 대상 의 수 를 확인 합 니 다.
-Verbose 는 우리 에 게 더 많은 세부 사항 을 제공 합 니 다.
-whatif  cmdlet 를 진정 으로 실행 하 지 는 않 을 것 입 니 다.다만 무슨 일이 일어 날 지 알려 줄 뿐 입 니 다.
이 밖 에 PowerShell 에는 vb,db,ea,ev,ov,ob 등 매개 변수의 다음 별명 도 남아 있 습 니 다.
인자 가 너무 많아 기억 하기 어렵 습 니까?하기 쉽 습 니 다."Tab"키 를 사용 하 십시오.예 를 들 어

Invoke-Item Processes.csv <Enter>

.
또는 도움말 명령"get-help"사용:

get-service -<Tab> 

자,우리 간단 한 시범 을 보 여 줍 시다.

get-help get-service -full <Enter>


너무 편 하 죠?cmdlet 를 실행 하기 전에"-whatif"는 다음 에 무슨 일이 일어 날 지 알려 줄 것 이다.
그럼 다음 cmdlet 는

Set-ExecutionPolicy Unrestricted -whatif <enter> 

입 니 다.

예,사용자 의 추가 허 가 를 얻 기 위해 인증 작업 을 되 돌려 줍 니 다.다만'Y','A','N','L'과'?'우 리 는 모두 쉽게 이해 할 수 있다.그러면'S'는?
아래 의 집행 결 과 를 주의 깊 게 관찰 하 세 요:

Set-ExecutionPolicy Unrestricted -confirm <enter> 

인 스 턴 스 캡 처 실행:

똑똑 한 너,알았지?
자,이 절의 내용 은 여기까지 입 니 다.이 절 에서 PowerShell 의 대상,형식 과 매개 변수 에 대한 소 개 는 빙산 의 일각 에 불과 합 니 다.후속 적 인 튜 토리 얼 에서 우 리 는 오늘 배 운 것 을 계속 이용 하여 작업 을 진행 할 것 입 니 다.물론 이 절 에는 우리 가 언급 하지 않 은 내용,파라미터 등 이 많 습 니 다.어린이 신발 은 PowerShell 에서 제공 하 는 도 구 를 적극적으로 이용 하여 탐색 하 시기 바 랍 니 다.예 를 들 어'get-help','get-member'명령 등 입 니 다.
Ps:마지막 으로 본 튜 토리 얼 에 열정 적 이 고 지속 적 으로 관심 을 가 져 주 셔 서 감사합니다. 의견 이나 질문 이 있 으 시 면 메 시 지 를 남 겨 주세요.저 는 상세 한 해답 을 드 리 겠 습 니 다!감사합니다.

좋은 웹페이지 즐겨찾기