홈페이지 » 어떻게 » Geek School 첫 번째 전체 PowerShell 스크립트 작성

    Geek School 첫 번째 전체 PowerShell 스크립트 작성

    몇 주 전에 The Geek은 명령 프롬프트를 사용하여 컴퓨터가 마지막으로 시작된시기를 찾는 방법을 보여주었습니다. Geek School for PowerShell의 마지막 설치에서 PowerShell 재사용 명령을 작성하여 동일한 작업을 수행합니다..

    시리즈의 이전 기사를 읽으십시오.

    • PowerShell을 사용하여 Windows를 자동화하는 방법 배우기
    • PowerShell에서 Cmdlet을 사용하는 방법 학습
    • PowerShell에서 개체를 사용하는 방법 학습
    • PowerShell에서 형식 지정, 필터링 및 비교 학습
    • PowerShell에서 Remoting 사용 방법 배우기
    • PowerShell을 사용하여 컴퓨터 정보 가져 오기
    • PowerShell의 컬렉션 작업
    • PowerShell에서 작업을 사용하는 방법 배우기
    • PowerShell 확장 방법 배우기
    • PowerShell 변수, 입력 및 출력 학습

    첫 번째 스크립트 작성하기

    우리가해야 할 첫 번째 일은 우리가 찾고있는 정보에 접근하는 방법을 찾는 것입니다. 관리 정보를 다루기 때문에 WMI 사용에 대해 살펴볼 필요가 있습니다. Win32_OperatingSystem이라는 클래스가 있습니다. Win32_OperatingSystem을 사용하면 운영 체제에 대한 자세한 정보 (예 : 시작한 시간 포함)를 볼 수 있습니다.

    이제 우리가 원하는 정보를 어디에서 찾을 수 있는지 알게되었으므로 ISE를 열고 다음을 입력하십시오.

    Get-WmiObject -Class Win32_OperatingSystem -ComputerName 로컬 호스트 |

    선택 개체 - 속성 CSName, LastBootUpTime

    참고 : 스크린 샷에 모두 들어갈 수 있도록 코드를 두 줄로 나누어야했지만 한 줄에 자유롭게 입력 할 수 있습니다. 두 줄로 나누는 것을 선택하는 경우 파이프 문자가 줄 1의 마지막 글자인지 확인하십시오.

    이제 "Run Script"버튼을 클릭하거나 키보드의 F5 키를 눌러 코드를 테스트하십시오..

    WMI 시간은 조금 이상 할 수 있습니다. 그 말은 LastBootUpTime 속성을 보면 2013-03-19, 18:26:21에 표시되지만, 어떤 이유로 WMI 사람들은이 모든 것을 단일 문자열로 연결하기로 결정했습니다. 다행스럽게도 문자열을 수동으로 파싱하는 것에 대해 걱정하지 않아도됩니다. 다음과 같이 코드의 Select-Object 부분을 변경해야합니다.

    Select-Object -Property CSName, @ n = "마지막으로 부팅 됨";

    e = [Management.ManagementDateTimeConverter] :: ToDateTime ($ _. LastBootUpTime)

    여기서 "Last Booted"라는 사용자 지정 속성을 만들고 그 값이 현재 파이프 라인 개체의 LastBootUpTime 속성에서 ToDateTime 정적 메서드를 호출 한 결과 여야한다는 것을 지정합니다. 이제 코드는 다음과 같아야합니다..

    코드를 실행하면 마지막 부팅 시간이 훨씬 더 읽기 쉽습니다..

    스크립트의 기본 기능에 만족했기 때문에 저장해야합니다. 간단히하기 위해 다음과 같이 저장하십시오.

    C : \ Get-LastBootTime.ps1

    이제 ISE의 ​​아래쪽 절반으로 전환하고 다음을 실행하십시오.

    C : \ Get-LastBootTime.ps1

    큰! 우리 스크립트는 예상대로 작동하지만 스크립트에는 여전히 한 가지 문제가 있습니다. 우리는 마지막 부팅 시간을 얻고 자하는 컴퓨터의 이름을 하드 코드했습니다. 값을 하드 코딩하는 대신 스크립트를 사용하는 사람이 스크립트를 실행하는 컴퓨터를 선택할 수 있도록 매개 변수를 제공해야합니다. 그렇게하려면 스크립트 맨 위로 이동하여 다음을 수행하십시오..

    param (
    [문자열] $ ComputerName
    )

    그런 다음 하드 코딩 된 localhost 값을 $ ComputerName 변수로 대체하십시오. 이제 스크립트는 다음과 같이 보입니다.

    스크립트를 저장 한 다음 ISE의 ​​아래쪽으로 돌아가 스크립트 도움말을 봅니다..

    도움말 C : \ Get-LastBootTime.ps1

    이제는 새로운 ComputerName 매개 변수를 사용하여 마지막 부팅 시간을 가져 오려는 컴퓨터의 이름을 지정할 수 있습니다. 불행히도 여전히 몇 가지 문제가 있습니다. 첫째, ComputerName 매개 변수는 선택 사항입니다. 둘째, 지금까지 보아온 가장 힘든 도움이되었으므로 신속하게 문제를 해결해 보겠습니다. ComputerName 매개 변수를 필수로 만들려면 param 블록의 내용을 다음과 같이 변경하십시오..

    [매개 변수 (필수 = $ true)] [문자열] $ 컴퓨터 이름

    더 나은 도움말 파일을 만드는 가장 일반적인 방법은 주석 기반 도움말을 사용하는 것입니다. 즉, 스크립트의 맨 위에 추가로 긴 주석을 추가하는 것입니다..

    <#
    .개요
    마지막으로 PC가 시작된 시간을 보여줍니다..
    .기술
    이것은 PC가 마지막으로 시작한 시간을 가져 오는 WMI 래퍼 함수입니다..
    .매개 변수 ComputerName
    명령을 실행할 컴퓨터의 이름입니다..
    .예
    Get-LastBootTime -ComputerName localhost
    .링크
    www.howtogeek.com
    #>

    모든 작업이 완료되면 다음과 같은 스크립트로 끝내야합니다..

    이제 새 도움말 파일을 확인해 보겠습니다..

    아하, 멋지다! 이제 스크립트가 완료되었으므로 마지막으로해야 할 일이 있습니다. 테스트. 이를 위해 ISE를 종료하고 PowerShell 콘솔로 돌아가서 이상 현상이 없는지 확인할 수 있습니다..

    간단한 한 개의 라이너로 시작하여이 가이드에서했던 것처럼 계속 구축하면 즉시 시간을 들여 놓을 수 있습니다. 그게 다야, 다음에 Geek School을 설치할 때 보자..