을 받고 컴퓨터 작동 시간을 사용하여 PowerShell

0 Comments

컴퓨터의 작동 시간은 중요한 통계 시스템에서 관리 합니다. 다음은 컴퓨터의 시스템 가동 시간을 결정할 수있는 몇 가지 방법입니다(이 목록은 철저한 것은 아닙니다).

1. 작업 관리자의 성능 탭에는 컴퓨터 가동 시간이 일,시,분 및 초로 표시됩니다.<피>2. Systeminfo 명령 줄 도구는 컴퓨터의 마지막 부팅 시간을 표시합니다.<피>3. 컴퓨터의 시스템 이벤트 로그에서 가장 최근의 이벤트 ID6005 는 컴퓨터의 마지막 부팅 시간을 기록합니다.<피>4., WMI Win32_OperatingSystem 클래스에는 컴퓨터의 마지막 부팅 시간이 포함 된 LastBootUpTime 속성이 있습니다.

이러한 각 기술에는 장단점이 있습니다. 예를 들어,작업 관리자를 제공합성에 대한 단일 컴퓨터의 작동 시간,그리고 이벤트 로그에 추가 정보가 포함되어 주위에 6005 이벤트를 제공할 수 있는 통찰력에 대한 시스템은 실패입니다. 처음 세 가지 선택이 없습니다 아마 최고의 자동화를 위한 목적으로(예를 들어,쿼리하는 서버 목록을 위해 가동 시간),그래서 그 모습을 WMI. 첫째,하지만,우리는 wmi 가 가동 시간 정보를 반환하는 방법을 살펴해야합니다.,

Wmi 를 사용하여 컴퓨터 가동 시간 얻기

WMI 를 사용하여 컴퓨터의 가동 시간을 검색 할 수있는 몇 가지 방법이 있습니다. Windows PowerShell 이전에 가장 확실한 방법 중 하나는 WMIC 명령을 사용하는 것이 었습니다. 예:

이 명령은 컴퓨터에서 Win32_OperatingSystem 클래스 인스턴스의 LastBootUpTime 속성을 검색합니다., PowerShell,우리가 사용하는 것을 얻-WmiObject cmdlet 보다 WMIC:

도 이러한 명령에 자신을,그리고 당신이 볼 것 출력이 반드시”사용자 친화적이기 때문에”날짜와 시간 표현에 LastBootUpTime 숙박 시설은 형식으로 CIM(일반적인 정보를 모델)datetime 문자열입니다. 예:

이 날짜 시간 문자열은 다음과 같이 변환됩니다.12, 2016, 15:48:36 (3:오후 48 시). 125599 는 마이크로 초 수이고(우리는 무시할 것입니다)-360 은 GMT 에서 오프셋 된 분 수를 나타냅니다., 이 예에서 -360 은 시간이 GMT 보다 6 시간 뒤임을 의미합니다. (마찬가지로+180 은”GMT 보다 3 시간 앞당겨집니다.”)

CIM datetime 문자열을 더 사용할 수있게하려면 사용 가능한 날짜(DateTime 객체)로 변환해야합니다. 다행히도 PowerShell 은 이것을 간단하게 만듭니다:시스템의 ToDateTime 정적 메소드.관리.ManagementDateTimeConverter.NET 클래스는 Cim datetime 문자열을 PowerShell 에서 더 쉽게 사용할 수있는 DateTime 객체로 변환합니다. 그림 1 은 예를 보여줍니다.,

림 1-로 변환하 컴퓨터의 마지막 부팅 시간으로 DateTime

그림 1 에서$dateTime 변수를 포함한 날짜와 시간을 현재 컴퓨터가 마지막으로 부팅이다. 을 얻을 출력의 가동 시간(오히려는 날짜와 시간의 마지막 부트),우리는 그것을 빼서 현재 시간이(날짜),결과는 기간을 포함하는 개체에 차이가 있습니다. 그림 2 는 이에 대한 예를 보여줍니다.,

림 2-로 변환하 컴퓨터의 마지막 부팅 시간을 읽을 수 있는 가동 시간

첫 번째 명령에서 그림 2 만들 기간을 포함하는 개체의 차이는 현재 날짜와 시간 및 마지막 부팅 시간($dateTime 객체를 우리에서 만든 그림 1). 두 번째 명령을 출력한 기간체,그리고 마지막 명령을 사용하 f 자를 출력하는 기간으로 읽을 수 있는 형식 문자열을 알리는 우리에게 현재 컴퓨터가 되었습니다 4 일,19 시간,56 분 44 초입니다.,

원격 컴퓨터에서 마지막 부팅 시간 가져 오기

그림 1 과 2 의 예는 로컬 컴퓨터를 대상으로합니다. 원격 컴퓨터를 어떻게 타겟팅 할 수 있습니까? 다행히 WMI 는-ComputerName 매개 변수를 사용하여 원격 컴퓨터에 대한 정보를 검색 할 수 있습니다. WMI 는 또한 pscredential 객체에서 원격 컴퓨터에 대한 대체 자격 증명을 지정할 수있게합니다. 그림 3 은 server1 이라는 컴퓨터의 마지막 부팅 시간을 얻는 예를 보여줍니다.,

림 3-받고 마지막 부팅 시간을 원격 컴퓨터에서

첫 번째 명령에서 그림 3PSCredential 체$들을 보호하는 변수이고,두 번째 명령은 CIM datetime 문자열을 포함하는 마지막 부팅 시간을 컴퓨터 server1(알-컴퓨터이름과 자격증명 매개 변수). 세 번째 명령은 마지막 부팅 시간을 DateTime 객체로 변환하고 마지막 명령은 컴퓨터의 마지막 부팅 시간을 출력합니다.모든 것을 함께 모으는 것-가동 시간.,ps1 스크립트

의 예에 표시된 그림 1 과 그림 2 하는 방법을 보여 얻을 컴퓨터의 마지막 부팅 시간과 쇼으로 읽기 쉬운 문자열을 그림 3 을 가져오는 방법을 보여줍 원격 컴퓨터의 마지막 부팅 시간입니다. 물론 논리를 사용하기 쉬운 스크립트로 캡슐화하면 모든 뉘앙스를 기억할 필요가 없습니다. Get-Uptime.ps1 스크립트는 우리를 위해 모든 노력을 다합니다. 스크립트의 구문은 다음과 같습니다:

-매개 변수는 컴퓨터이름이 선택하고 이름을 컴퓨터(s)for which you 을 얻고 싶은 가동 시간 정보입니다., 이 매개 변수는 여러 개체,파이프라인 입력 및 ComputerName 속성이 있는 개체를 지원합니다. -ComputerName 매개 변수 이름은 선택 사항입니다. 이 매개 변수를 생략하면 기본값은 현재 컴퓨터의 가동 시간 정보를 출력하는 것입니다.

-Credential 매개 변수 공급을 대체 자격 증명하려는 경우 쿼리 하나 이상의 컴퓨터에 원격하고 당신의 현재 로그인 계정에 액세스 권한을 가지지 않. 가동 시간을 쿼리하면 로컬 컴퓨터에 대한 관리자 권한이 필요하지 않지만 원격 컴퓨터에 필요합니다.,

스크립트 출력이체 세 가지 속성:컴퓨터(컴퓨터의 이름),LastBootTime(날짜/시간이 포함된 컴퓨터의 마지막 부팅 시간),그리고 가동 시간(는 읽기 쉬운 가동 시간 문자열).

을 얻기 위해 가동 시간의 여러 컴퓨터

그림 4 을 얻기 위해 가동 시간 세 개의 원격 컴퓨터에 두 개의 서로 다른 방법이다.,

림 4-을 얻기 위해 가동 시간 세 개의 원격 컴퓨터에 두 개의 서로 다른 방법

첫 번째 명령은 그림 4 에서 지정한 세 개의 컴퓨터를 매개 변수로 얻을-가동 스크립트이고,두 번째 명령을 지정하는 세 대의 컴퓨터로 파이프라인 입력이 있습니다. 참고 두 명령을 생산하는 동일한 출력(제외하고는 가동 시간에서 문자열을 출력에서 두 번째 명령은 약간 늦).

스크립트가 파이프라인 입력을 지원하므로 Get-ADComputer cmdlet 의 출력을 사용하여 OU 의 모든 컴퓨터에 대한 가동 시간을 보고할 수도 있습니다., 예를 들어 다음 명령을 고려하십시오.

(읽기 쉽도록 명령을 여러 줄로 분할했습니다. 다)이 명령의 이름을 검색하에 있는 모든 컴퓨터 서버는 OU 를 선택한 이름만산의 각 컴퓨터(선택-Object-ExpandProperty),의 목록을 정렬 컴퓨터 이름,그리고 마지막으로 가져 가동 시간에서는 각 컴퓨터입니다.

컴퓨터 가동 시간이 쉬워졌습니다.

컴퓨터 가동 시간은 중요한 측정 기준입니다. 가동 시간을 얻는 방법은 다양하지만 PowerShell 에서는 간단한 방법이 아닙니다. Get-가동 시간.,ps1 스크립트를 채우기에 이 갭을 쉽게 얻을 컴퓨터의 가동률,상관없이 당신을 얻고 싶은 현재 컴퓨터의 작동 시간 또는 작동 시간을 원격 컴퓨터입니다.


답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다