12. 로 컬 워크스테이션 이나 원 격 컴퓨터 시간 과 시간 대 문 제 를 해결 합 니 다.

2419 단어 windowspowershell
오늘 우 리 는 로 컬 워크스테이션 의 날짜 와 시간, 시간 대 문제 와 해결 방법 을 어떻게 검사 하 는 지 계속 이야기 합 니 다.
우리 의 서버 와 사용자 의 컴퓨터 는 항상 정확 하지 않 습 니 다. 그 이 유 는 시간 이 이동 하기 때 문 입 니 다. 어떤 사람 은 나 에 게 일부 워크스테이션 의 시계 가 1 시간 느리다 고 알려 주 었 습 니 다.
대부분의 운영 자 들 은 PowerShell 스 크 립 트 를 이용 하여 원 격 기기 에 있 는 WMI 로 컬 날짜 와 시간 값 을 빠르게 가 져 오 는 목록 을 작성 하여 읽 을 수 있 는 DateTime 대상 으로 변환 하면 해결 할 수 있 습 니 다.
$computers = 'pc1','pc2','pc3'
$computers | ForEach-Object{
   $os = Get-WmiObject -Class Win32_OperatingSystem -ComputerName $_
   $cdt = @{Name='ConvertedDateTime';Expression={$_.ConvertToDateTime($os.LocalDateTime)}}
   $os | Select-Object -Property Name,LocalDateTime,$cdt
}
 

이렇게 하면 너 는 얻 을 수 있다
Name  LocalDateTime              ConvertedDateTime
----  -------------              ----
pc1   20130627093710.927000+120  6/27/2013 9:37:10 PM
pc2   20130627103722.322000+120  6/27/2013 9:37:22 PM
pc3   20130627103703.530000+120  6/27/2013 9:37:03 PM

마지막 열 을 보 여 주세요. 지금 우 리 는 문제 가 있 는 기계 의 시간 이 정확 하 다 는 것 을 확인 할 수 있 습 니 다. 그렇습니까?
틀 렸 어!결과 출력 목록 을 자세히 보 세 요.
뭐 공부 해요?PC1 과 PC2 사이 에 한 시간의 시차 가 있 고 Local DateTime 에서 얻 은 것 과 9VS 10 이라는 것 을 알 수 있 을 것 이다.
나 는 이렇게 원 격 컴퓨터 DMTF 에서 전환 해 야 한 다 는 인상 을 받 았 지만, 분명히 이것 은 옳지 않다.
ETS (확장 형식 시스템) 를 통 해 속성 을 계산 하 는 방법 매개 변수: ConvertToDateTime,
우리 스 크 립 트 에는 [System. Management. Management DateTimeconverter]::ToDateTime 이 있어 야 합 니 다.
MSDN 의 방법 설명: 주어진 DMTF 날짜 와 시간 을 DateTime 으로 합 니 다.돌아 오 는 DateTime 은 이 시스템 이 현재 시간 대 에 있 을 것 입 니 다.
이 방법 을 사용 하면 현재 시간 대의 원 격 컴퓨터 나 스 크 립 트 를 실행 하 는 기계 의 시간 대 를 얻 을 수 있 습 니까?
원 격 연결 ToDateTime 방법 전환 은 지원 되 지 않 기 때문에 로 컬 에서 만 가능 합 니 다.LocalDateTime 의 가 치 를 진정 으로 검사 하 는 사람 은 없습니다. 제 가 계산 해 온 것 은 ConvertToDateTime 방법 입 니 다.
현재, 우 리 는 LocalDateTime 가 치 를 사용 하여 스 크 립 트 를 작성 하고 컴퓨터 상의 시간 변환 을 하 는 것 을 알 고 있 습 니 다 (Win 32 LocalTime 류 지원 XP/Windows Server 2003 이상).
PS> $lt = Get-WmiObject -Class Win32_LocalTime -ComputerName pc1
PS> Get-Date -Year $lt.Year -Month $lt.Month -Day $lt.Day -Hour $lt.Hour -Minute `
              $lt.Minute -Second $lt.Second
Thursday, June 27, 2013 21:37:10 AM
or
PS> [datetime]::ParseExact($lt.split('.')[0],'yyyyMMddHHmmss',$null)
Thursday, June 27, 2011 21:37:10 AM

감사합니다. 오늘 일이 좀 바 빠 서 업데이트 가 느 려 요.

좋은 웹페이지 즐겨찾기