問題タブ [system.management]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
14777 参照

.net - パスワードなしで PSCredential を作成する

パスワードのない PSCredential のインスタンスを作成するには? (パスワードなしでダイアログに手動で入力することGet-Credentialなく、これは無人実行用です。)

私が試したこと:

  1. $mycreds = New-Object System.Management.Automation.PSCredential ("username", $null) エラー: 引数 "password" の値が null であるため、引数を処理できません

  2. $mycreds = New-Object System.Management.Automation.PSCredential ("username", (ConvertTo-SecureString $null -AsPlainText -Force)) エラー: ConvertTo-SecureString : null であるため、引数をパラメーター 'String' にバインドできません。

  3. $mycreds = New-Object System.Management.Automation.PSCredential ("username", (ConvertTo-SecureString "" -AsPlainText -Force)) エラー: ConvertTo-SecureString : 空の文字列であるため、引数をパラメータ '文字列' にバインドできません。

0 投票する
4 に答える
2149 参照

c# - WPF でシステム識別子を取得できません

WPF C# でプログラミングし、ProcessorID (または他のシステム識別子) を取得しようとしています。MSDN - System.Management Namespaceを読みました。名前空間を追加しましたが、提供されませんManagementBaseObject Class

System.Management は WinForms でのみ使用され、WPF では使用されませんか?

0 投票する
1 に答える
1960 参照

c# - ManagementObject を使用してリモート サービスを再起動する

リモート マシンでサービスを再起動したいのですが、ServiceController を使用したくありません。そのマシンですべてのサービスを取得するプロセスに 21 秒かかり、次の ManagementObject が 2 秒未満で返されたからです。

私は今試しました: m.InvokeMethod("StopService", null); foreach ブロックで成功しませんでした。私は何をしているのですか?

ありがとうジャック

0 投票する
0 に答える
1141 参照

c# - System.Management.ManagementClass.GetInstances()が例外をスローします

マシンが異なれば、例外も異なります。

1台のマシンが報告します

System.Runtime.InteropServices.COMException(RPCサーバーは使用できません。(HRESULTからの例外:0x800706BA))

別のレポート

System.BadImageFormatException(誤った形式のプログラムを読み込もうとしました。(HRESULTからの例外:0x8007000B))

さらに別のレポート

System.InvalidCastException(指定されたキャストは無効です。)

これの原因と正しい修正は何ですか?

0 投票する
1 に答える
1418 参照

.net - ローカル コンピューター上のネットワーク共有に対応する物理パスを取得する

ローカルコンピュータ ( )C:\somepath...上のネットワーク共有への UNC パスに対応する物理パス ( ) を取得できるようにしたいと考えています。\\mycomputer\somepath...

ここで説明されているように、ManagementObjectSearcher を使用してこれを実行しようとしました。これは、管理者として実行している場合は正常に機能しますが、非特権アカウントから実行している場合は失敗します。

例外はスローされず、SelectQuery単にpathプロパティが null の ManagementObject が返されます。

管理者やパワー ユーザーなどの特権グループにアカウントを追加せずに、非特権アカウントからこの情報を取得できるようにしたいと考えています。

誰でもこれを行う方法を示すことができますか?このクエリを正常に実行するために必要な最小権限は何ですか?

ここで説明されているように、コンピューターの管理/WMI コントロール/セキュリティを使用してアカウントにアクセス許可を与えようとしましたが、「この名前空間とサブ名前空間」に適用してルート ノードにすべてのアクセス許可を与えても、違いはありません。

0 投票する
5 に答える
2000 参照

c# - C# System.Management にはクラスが 1 つしかありませんか?

コードに WMI を利用しようとしていますが、System.Management クラスが存在しないため使用できません。3.5 および 4 Net で試しました。何も機能しません。この問題の解決策が見つかりませんでした。これに遭遇したことがある人はいますか? もしそうなら、私が持っているのはなぜですか:

以下の私のusingブロック:

情報:

Visual Studio 2010 Ultimate ネット 3.5 - ネット 4 を使用。

ここで何が欠けているのかわかりません。

0 投票する
2 に答える
1423 参照

c# - 互換性のないリファレンス:System.Management 4.0.0.0?

C#4.0コンソールアプリケーションを作成しました。ターゲットフレームワークは、.NetFramework4クライアントプロファイルです。CPUのコア数を数えたい。これを行うために、次のクラスを作成しました。

このコードが機能するには、System.Managementへの参照が必要です。ソリューションエクスプローラーでこれを行うには、プロジェクト参照->参照の追加を右クリックしました。ダイアログウィンドウが開き、System.Managementバージョン4.0.0.0を選択できます。ダイアログウィンドウに、4.0フレームワークを使用していることが示されます。ここまでは順調ですね。[追加]をクリックすると、次のメッセージが表示されます。

「System.Management、バージョン4.0.0.0、Culture = neutral、PublicKeyToken = b034543655555」は、.Net Framework 4クライアントプロファイルと互換性がありません。追加するには、最初にプロジェクトのターゲットを互換性のあるフレームワークに変更する必要があります。

健全性チェックとして、私はここに行きました:http: //msdn.microsoft.com/en-us/library/system.management.managementobjectsearcher.aspx

...そしてmsdnは、System.Management4.0.0.0が.NetFramework4クライアントプロファイルと互換性があることを明確に示しています。

誰かが助けることができますか?

0 投票する
3 に答える
365 参照

c# - すぐに使用できる管理クラス

管理オブジェクトにアクセスする方法を知っています。これを言いましょう:

現在、このnic[]-synthaxは使用するのが非常に悪いです。Visual Studioサーバーエクスプローラーを見ると、選択した各オブジェクトのプロパティグリッドがいっぱいになっていることがわかります。そこにバインド可能なクラスを作成しているようなにおいがします。同じことをするためのライブラリやアプローチはありますか?次のような構文を取得したい

すでに発明された新しいものを実装するのに時間を無駄にしたくありません!

0 投票する
2 に答える
4249 参照

c# - DiskIndexをボリュームラベルにマップします

現在、 DriveInfo.GetDrives()を使用して、c#ですべてのドライブとそのラベルを取得できます。次に、この方法でディスクインデックス/パーティションのインデックスを取得できます。

これに伴う問題は、DiskIndex、Name、およびIndexが基本的に単なる数値であり、ボリュームラベル、つまりC:\、D:\などではないことです。

では、最終的に、DriveInfoの名前プロパティであるボリュームラベルをDiskIndexに作成するにはどうすればよいですか?この方法論またはより良い方法のいずれかを使用すると機能します。

(これは次のとおりです。ドライブがパーティションなのか別のHDDなのかを確認してください

編集:Win32_LogicalDisk、次にWin32_LogicalDiskToPartition の管理クエリを見つけました。LogicalDiskにはボリュームがあり、LogicalDisktoParitionがマッピングを提供します。しかし、地図の入手方法がわからないようです。JOINを探して値を選択しようとしましたが、c#コードで大規模なループを行わずに、これをどのように結合するかについては何も見つかりませんでした。

0 投票する
1 に答える
4739 参照

c# - ManagementObjectSearcherエラー

一部のお客様から、次のエラーが表示される場合があるとの連絡がありました。

System.Management.ManagementException:Błąddostawcy。
System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)
at System.Management.ManagementObjectCollection.ManagementObjectEnumerator.MoveNext()

このエラーは、System.Mamangment.ManagementObjectSearcherオブジェクトのGet()メソッドによって返されたコレクションをループしようとしたときに生成されます。

これは私のメソッドのコードです:

問題はWindowsXPでのみ発生するようです。私が知っている唯一の回避策は、WMIデータベースの再構築です。それは時々役に立ちますが、残念ながら常にではありません。

このエラーの理由とその修正方法を教えてもらえますか?