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 命令計算機
- 遠端操控多臺計算機計算機
- ST ADC取樣時間計算
- 獲取Windows遠端桌面埠Windows
- 透過手機遠端控制計算機方法計算機
- 獲取時間戳,幾個時間點的時間戳時間戳
- java獲取時間戳和隨機數Java時間戳隨機
- 獲取系統時間
- php 獲取時間差PHP
- 獲取當前時間
- Linux時間的獲取與使用Linux
- python 獲取時間的datetime庫Python
- Linux 獲取系統開機/啟動時間Linux
- 後滲透:遠端憑證獲取
- c++ 獲取當前時間周初凌晨時間戳(獲取當前時間週一凌晨時間戳)C++時間戳
- Java 獲取本地時間與網路時間Java
- 常見的Javascript獲取時間戳JavaScript時間戳
- 獲取當前時間往前的日期
- mybatis獲取當前時間MyBatis
- QT獲取日期,時間,星期QT
- C++11獲取時間C++
- Qt:獲取日期和時間QT
- 關於wake on lan遠端喚醒主機的問題,長時間關機無法遠端喚醒
- 獲取計算機系統唯一資訊計算機
- powershell 關閉遠端開啟的檔案
- 我就獲取個時間,機器就down了
- MySQL 時間戳的 獲取 & 轉換為特定時間格式MySql時間戳
- 恆訊科技分析:是什麼導致雲端計算中的CPU竊取時間?
- powershell遠端重啟win10怎麼操作_win10如何使用powershell遠端重啟Win10
- 在動態IP下遠端連線計算機計算機
- git 從遠端倉庫獲取所有分支Git
- 學習雲端計算前景如何?雲端計算成為獲取人工智慧主要途徑人工智慧
- 如何遠端獲取汙水處理裝置資料並進行遠端程式設計除錯程式設計除錯
- MySQL如何獲取binlog的開始時間和結束時間MySql
- js獲取多少天以後的時間JS
- js獲取當前的具體時間JS
- 簡單獲取電腦ip和計算機名計算機
- 遠端辦公背後的雲端計算博弈
- 時間差計算