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

質問編集履歴

1

コード一部修正

2017/03/22 07:52

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -2,14 +2,18 @@
2
2
 
3
3
  WMIを使いC#で組んでいます
4
4
  ```ここに言語を入力
5
- var searchResults = new ManagementObjectSearcher(string.Format("SELECT * FROM Win32_Printer WHERE Name LIKE \"{0}\"", プリンター名)).Get();
5
+ var searchResults = new ManagementObjectSearcher(string.Format("SELECT * FROM Win32_Printer WHERE Name LIKE \"{0}\"", プリンター名)).Get();
6
- foreach (ManagementObject printer in searchResults)
6
+ foreach (ManagementObject printer in searchResults)
7
- {
7
+ {
8
- ManagementBaseObject outParamsMthd =
9
- printer.InvokeMethod("GetSecurityDescriptor", null, null);
8
+ ManagementBaseObject outParamsMthd = printer.InvokeMethod("GetSecurityDescriptor", null, null);
10
- ManagementBaseObject descriptor =
11
- outParamsMthd["Descriptor"]
9
+ var descriptor = (ManagementBaseObject)outParamsMthd["Descriptor"];
10
+ // descriptor これがnullになってしまう
12
- }
11
+ }
13
12
  ```
14
13
  上記のように組んだのちに管理者権限で実行するとdescriptorを取得できるのですが、管理者権限がない場合はnullとなってしまいます
15
- 書き込みの権限は必要なく、管理者権限を必要としないまま参照のみを行いたいのですが、どのようにすればよろしいでしょうか?
14
+ 書き込みの権限は必要なく、管理者権限を必要としないまま参照のみを行いたいのですが、どのようにすればよろしいでしょうか?
15
+
16
+ 追記
17
+ コードが一部違っていたので修正したしました。
18
+ またコードでいうと「descriptor」が権限のないままビルドするとnull、ある場合正しく取得できる
19
+ 権限のないまま取得したいです。