PowerShell獲取遠端計算機的時間
獲得本地計算機時間很容易, 使用cmdlet: Get-Date即可
PS C:\Users\Administrator> Get-Date
2011年6月15日 14:09:28
但是, 如果您想獲得遠端計算上的時間恐怕就沒有這麼容易了. 幸虧PowerShell無縫整合了WMI, 因此, 我們可以通過WMI來進行嘗試.
注意到WMI中的類win32_localtime可以獲得計算機上的時間, 我們先在本地計算機上實驗一把:
注意到WMI中的類win32_localtime可以獲得計算機上的時間, 我們先在本地計算機上實驗一把:
PS C:\Users\Administrator> Get-WmiObject -Class win32_localtime
__GENUS : 2
__CLASS : Win32_LocalTime
__SUPERCLASS : Win32_CurrentTime
__DYNASTY : Win32_CurrentTime
__RELPATH : Win32_LocalTime=@
__PROPERTY_COUNT : 10
__DERIVATION : {Win32_CurrentTime}
__SERVER : HUBING
__NAMESPACE : root\cimv2
__PATH : \\HUBING\root\cimv2:Win32_LocalTime=@
Day : 15
DayOfWeek : 3
Hour : 14
Milliseconds :
Minute : 9
Month : 6
Quarter : 2
Second : 52
WeekInMonth : 3
Year : 2011
這是我本地計算機上的時間資訊, 可是這些時間資訊被獨立儲存在不同的屬性中. 我們只好利用PowerShell的格式化命令把這些資訊重新組織成我們期望的樣式:
PS C:\Users\Administrator> $dt = Get-WmiObject -Class win32_localtime
PS C:\Users\Administrator> "{0:00}/{1:00}/{2} {3:00}:{4:00}:{5:00}" -f $dt.month,$dt.day,$dt.year,$dt.hour,$dt.minute,$dt.second
PS C:\Users\Administrator> "{0:00}/{1:00}/{2} {3:00}:{4:00}:{5:00}" -f $dt.month,$dt.day,$dt.year,$dt.hour,$dt.minute,$dt.second
06/15/2011 14:10:19
使用PowerShell中的格式運算子-f, 這個運算子其實就是.Net類庫中的String中的Format方法.
{0:00}中第一個"0"表示引數中的索引, 而冒號後面的兩個"0"表示對數值的格式化.
這個程式碼有些長, 讓人感覺很冗餘, 還有更好的辦法嗎??讓我們試試利用DateTime資料型別的建構函式來試試:
{0:00}中第一個"0"表示引數中的索引, 而冒號後面的兩個"0"表示對數值的格式化.
這個程式碼有些長, 讓人感覺很冗餘, 還有更好的辦法嗎??讓我們試試利用DateTime資料型別的建構函式來試試:
PS C:\Users\Administrator> New-Object DateTime $dt.year,$dt.month,$dt.day,$dt.hour,$dt.minute,$dt.second
2011年6月15日 14:10:19
DateTime的建構函式中, 輸入六個引數, 分別表示年月日, 時分秒. 現在我們來看看如何請求遠端計算機上的時間. 我們先來觀察下Get-WmiObject有哪些引數能夠幫助我們完成任務.
Get-Help -Full Get-WmiObject命令可以檢視命令的詳細幫助資訊. 我們可以用Get-Credential來輸入使用者登入的帳戶和密碼. 例如:
Get-Help -Full Get-WmiObject命令可以檢視命令的詳細幫助資訊. 我們可以用Get-Credential來輸入使用者登入的帳戶和密碼. 例如:
PS C:\Users\Administrator> $cred = Get-Credential Administrator
執行此命令後, 你會看到提示輸入密碼的視窗彈出. 將這個命令返回的物件儲存到變數$cred中. 接下來, 我們就要訪問遠端計算機了:
PS C:\Users\Administrator> $dt = Get-WmiObject -Class win32_localtime -ComputerName 192.168.75.48 -Credential $cred
PS C:\Users\Administrator> $dt
__GENUS : 2
__CLASS : Win32_LocalTime
__SUPERCLASS : Win32_CurrentTime
__DYNASTY : Win32_CurrentTime
__RELPATH : Win32_LocalTime=@
__PROPERTY_COUNT : 10
__DERIVATION : {Win32_CurrentTime}
__SERVER : EDWARD
__NAMESPACE : root\cimv2
__PATH : \\EDWARD\root\cimv2:Win32_LocalTime=@
Day : 15
DayOfWeek : 3
Hour : 7
Milliseconds :
Minute : 12
Month : 6
Quarter : 2
Second : 9
WeekInMonth : 3
Year : 2011
注意:獲取遠端伺服器資訊的過程可能會比較慢(和網路情況有關)。
cmdlet Get-WmiObject中的形參: -ComputerName用於指定計算機名稱或IP地址. -Credential引數指定了之前的登入資訊, 此處我們使用了變數$cred.
最後要說一下, WMI中包括了很多的類, 包含了各種作業系統資訊, 但是不同版本的作業系統之間支援的類是不同. 一般來說越靠後的版本支援的越多, 不過, 如果該版本作業系統不支援該類, 你會收到必要的錯誤資訊.
最後要說一下, WMI中包括了很多的類, 包含了各種作業系統資訊, 但是不同版本的作業系統之間支援的類是不同. 一般來說越靠後的版本支援的越多, 不過, 如果該版本作業系統不支援該類, 你會收到必要的錯誤資訊.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8183550/viewspace-698006/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PowerShell 中,您可以透過遠端連線來管理其他計算機。以下是一些常見的用於管理遠端主機的 PowerShell 命令計算機
- 微軟認證:遠端開啟遠端計算機的遠端桌面微軟計算機
- 遠端操控多臺計算機計算機
- Git 獲取遠端分支Git
- 獲取Windows遠端桌面埠Windows
- 遠端桌面此計算機無法連線到遠端計算機請嘗試重新連線。計算機
- 透過手機遠端控制計算機方法計算機
- java獲取時間戳和隨機數Java時間戳隨機
- ST ADC取樣時間計算
- 獲取遠端圖片的Blob資源
- php 獲取時間差PHP
- JavaScript獲取時間戳JavaScript時間戳
- 獲取系統時間
- 獲取計算機系統唯一資訊計算機
- 後滲透:遠端憑證獲取
- Windows上獲取遠端RMI物件很慢?Windows物件
- 關於wake on lan遠端喚醒主機的問題,長時間關機無法遠端喚醒
- Linux程式設計(獲取系統時間)Linux程式設計
- c++ 獲取當前時間周初凌晨時間戳(獲取當前時間週一凌晨時間戳)C++時間戳
- 計算時間的例子
- Java 獲取本地時間與網路時間Java
- Linux 獲取系統開機/啟動時間Linux
- Undistract-me:當長時間執行的終端命令完成時獲取通知
- C# 之 服務端獲取遠端資源C#服務端
- powershell 關閉遠端開啟的檔案
- 在動態IP下遠端連線計算機計算機
- 控制檯應用程式獲取計算機名計算機
- mybatis獲取當前時間MyBatis
- QT獲取日期,時間,星期QT
- Qt:獲取日期和時間QT
- 安卓啟動時間獲取安卓
- C++11獲取時間C++
- java獲取當前時間Java
- Qt獲取當前時間QT
- Cookie 獲取訪問時間Cookie
- sql server獲取時間格式SQLServer
- js獲取當前時間JS
- java獲取日期和時間Java