teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

サンプルコードを書いてみました

2016/09/28 02:54

投稿

htsign
htsign

スコア870

answer CHANGED
@@ -1,2 +1,28 @@
1
1
  WQLで[Win32_LocalTime](http://www.wmifun.net/library/win32_localtime.html)クラスを叩くことで取得できると思います。
2
- [リモートコンピュータの WMI にアクセスする方法](http://uchukamen.com/Programming/WMI/#SEC7)が参考になるかと思います。
2
+ [リモートコンピュータの WMI にアクセスする方法](http://uchukamen.com/Programming/WMI/#SEC7)が参考になるかと思います。
3
+
4
+ ```c#
5
+ class Sample
6
+ {
7
+ static void Main(string[] args)
8
+ {
9
+ const string ServerName = "server";
10
+ const string UserName = "user";
11
+ const string Password = "pass";
12
+
13
+ var option = new ConnectionOptions { Username = UserName, Password = Password };
14
+ var scope = new ManagementScope(string.Format(@"\\{0}\root\cimv2", ServerName), option);
15
+ var searcher = new ManagementObjectSearcher(scope, new ObjectQuery("SELECT * FROM Win32_LocalTime"));
16
+ ManagementObjectCollection collection = searcher.Get();
17
+ foreach (ManagementObject mo in collection)
18
+ {
19
+ Console.WriteLine(string.Format("{0:D4}年{1:D2}月{2:D2}日({3}) {4:D2}時{5:D2}分{6:D2}秒",
20
+ mo["Year"], mo["Month"], mo["Day"], (DayOfWeek)(uint)mo["DayOfWeek"],
21
+ mo["Hour"], mo["Minute"], mo["Second"]));
22
+ }
23
+ Console.ReadLine();
24
+ }
25
+ }
26
+ ```
27
+ 手元の環境的な問題でリモートマシンへのアクセスはテストしていませんが、ローカルの場合(`searcher`に`scope`を渡さない場合)に時刻が取れるところまでは確認しました。
28
+ 参照設定で`System.Management.dll`を追加する必要があります。