問題タブ [wmi]
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.
c# - WMI プロバイダー アセンブリの RunInstaller 属性
クラス ライブラリに分離された WMI プロバイダーを作成しています。私が読んだことはすべて、これらの行に沿って何かを含めることを指しています:
このインストールの目的は、Windows WMI インフラストラクチャが使用前に WMI プロバイダーの構造を認識している必要があるためだと思います。
私の質問は - この「インストーラー」はいつ実行されますか? MSDN によると、インストーラーは「アセンブリのインストール中に」呼び出されるとのことですが、それが何を意味するのか、または WMI プロバイダーを含むクラス ライブラリのコンテキストでいつ起こるのかはわかりません。
これは、WMI プロバイダーを含むアセンブリに対してInstallUtil.exeを手動で実行するための自動化された置き換えであるという印象を受けましたが、コマンド プロンプトから手動で InstallUtil を実行しない限り、プロバイダーに加えた変更は Windows WMI インフラストラクチャによって認識されません。開発中に自分のマシンでこれを行うことができますが、プロバイダーを使用するアプリケーションが他のマシンにデプロイされた場合はどうなりますか?
この RunInstaller / DefaultManagementInstaller の組み合わせが正しく機能していないようです - 正しいですか?
c# - .net でネットワーク アダプタの dns 検索サフィックスを設定するにはどうすればよいですか?
どのネットワーク インターフェイスが接続されているかを検出し、(netsh を呼び出して) staitc IP アドレスと dns サーバーを設定するコマンド ライン ユーティリティを作成しました。ただし、dns 検索サフィックスを設定する方法がわかりません。netsh はそれを実行できるようには見えません。それ以外の場合はどうすればよいですか(おそらくWMI)?
.net - フロッピーで Win32_LogicalDisk が失敗する
Bob King のアイデアからのアイデアを使用して、次のメソッドを作成しました。
CD、リムーバブル ドライブ、通常のドライブでうまく機能します。
ただし、フロッピーの場合は常に「Not Available」が返されます。何か案は?
windows - Windows が BSOD から回復したかどうかを確認するにはどうすればよいですか?
http://support.microsoft.com/kb/317277から: 重大なエラーが原因で Windows XP が再起動した場合、Windows エラー報告ツールはプロンプトを表示します...
「重大なエラーが発生したため、Windows XP が再起動されました」ということをアプリが知るにはどうすればよいですか?
c++ - EnumDisplayDevices vs WMI Win32_DesktopMonitor、アクティブなモニターを検出する方法は?
私の現在の C++ プロジェクトでは、多数のコンピューターで接続されアクティブになっているモニターごとに一意の文字列を検出する必要があります。
研究は2つの選択肢を指摘しています
WMI を使用して、すべてのアクティブなモニターについて Win32_DesktopMonitor を照会します。モニターを一意に識別するために PNPDeviceID を使用します。
EnumDisplayDevices API を使用し、掘り下げてデバイス ID を取得します。
デフォルトのプラグ アンド プレイ ドライバーを使用するモニターは、モニター名として「デフォルトのプラグ アンド プレイ モニター」として一般的な文字列を報告するため、一意のモデル識別にデバイス ID を使用することに関心があります。
WMI メソッドで問題が発生しています。Vista マシンで 1 つのモニターしか返されないようです。doco を見ると、非 WDDM デバイスでは期待どおりに動作しないことがわかりました。
EnumDisplayDevices は、バックグラウンド サービス (特に Vista で) から実行するときに少し問題があるようです。セッション 0 にある場合、情報は返されません。
他の誰かが同様のことをしなければなりませんでしたか (接続されているすべてのアクティブなモニターに対して一意のモデル文字列を見つけますか?)
どのアプローチが最も効果的でしたか?
.net - プロセッサー数の検出
.net の物理プロセッサ/コアの数をどのように検出しますか?
c# - マシンスペックの問い合わせ
プログラム インターフェイスを介してローカル マシンの仕様 (CPU の仕様、OS のバージョン、グラフィック カードの仕様、ドライバなどの範囲) を照会するには、どのような方法がありますか? メイン アプリの互換性をテストするために C# で簡単なアプリを作成していて、いくつかのシステム メトリックをダンプしたいと考えていますが、どこから始めればよいか、使用するインターフェイス、ライブラリなどを見つけることができないようです。
私はあらゆる種類の検索を試みましたが、ユーザーが対話する必要がある、またはインストールする必要があるプログラムと GUI のプログラムしか見つけることができません。
または、小さなコマンド ライン プログラムでも、テスト アプリと一緒に配布することが許可されている限り、同様に機能します。
必要な仕様の一部を取得するプログラムを 1 つ見つけました。 PsInfoです。ただし、コマンド ライン アプリとはいえ、最初の実行時に各ユーザーが何らかのライセンスに同意する必要があるようです。さらに、これは OS/CPU 情報のみを扱うため、それ以上の情報が必要になります。
また、明示的に言及するのを忘れていましたが、これは実際には Windows マシンでのみ必要になります。皆さん、速いです!
編集: この WMI は、私が必要としているもののように見えます。ありがとう! ただし、かなりの数のワームがあるので、詳しく調べてみる必要があります。一部のことについては、ユーザーが管理者権限を持っている必要があることが言及されています。これはおそらく大きな問題にはなりませんが、少し制限される可能性があります。
windows - インターフェイスが Windows PC の物理 LAN ポートであるかどうかをどのように判断しますか?
インターフェイスがWindowsのPCの物理802.3イーサネットポートであるかどうかを正確に判断する方法を探しています。
ipconfig /all を使用すると、すべてのインターフェイスを一覧表示できます。PC でこれを行うと、VPN、Bluetooth、Wifi、および物理イーサネット インターフェイスを含むいくつかのエントリがここに一覧表示されます。
「isPhysical(interface)」のようなものを探しています。(複数の物理 LAN ポートがあってもかまいません。物理ポートかどうかを知りたいだけです)。
アップデート:
ジェイとクリス、ありがとう!
(コメントスペースが足りなかったのでこちらに書きます)
現在、WMI Win32_NetworkAdapter の使用を検討しています。ただし、AdapterType="Ethernet 802.3" の 4 つのインターフェイスが表示されます。
私のPCには物理ポートが1つしかなく、他のポートには「Virtual Machine Network Services Driver」という名前が付いています。(これらは何らかの悪意のある理由で私の会社によってインストールされていると思います)
インターフェイスで必要な属性を見つけましたが、winXP では使用できません!!!
PhysicalAdapter データ型: boolean アクセス型: 読み取り専用
アダプターが物理アダプターか論理アダプターかを示します。True の場合、アダプタは物理的です。Windows Server 2003、Windows XP、Windows 2000、および Windows NT 4.0: このプロパティは使用できません。
名前の「仮想」という単語のテキスト フィルターを実行する以外に、物理ポートかどうかを判断する方法はありますか?
更新 12/08
VM をインストールすると、仮想インターフェイスが追加されるようです。
仮想アダプターの詳細は次のとおりです: http://blogs.msdn.com/virtual_pc_guy/archive/2005/04/01/404816.aspx
ユーザーが管理者権限を持っていない場合、WMI インターフェイスが必要なデータを返さないという問題が見つかりました。それでは、GetAdapterInfo メソッドを見てみましょう。ただし、実際のアダプターの説明に「仮想マシン サービス ドライバー」が追加されているようで、「仮想」テキスト チェックが無効になっています。
GetAdapterInfo によって返される構造は次のとおりです。
http://msdn.microsoft.com/en-us/library/aa366062(VS.85).aspx
.net - WMI - 一般的なエラー
Win32_NTLogEvent を読み取って Symantec Antivirus が何かを書き込んだかどうかを確認するなど、WMI を使用してネットワーク全体のマシンに関するさまざまな情報を収集する .NET アプリケーションがあります。クエリは正常に動作しますが、WMI クエリを繰り返し実行すると、"Generic Failure" エラーが再発し始めます。これは、ほぼ一貫して発生します。125 コール。WMI クエリを実行しているマシンを再起動すると、常にエラーが修正されます...それは、次の 125 クエリが実行されるまでです。
リポジトリは問題ないようで、ログ ファイル サイズの問題は見つかりませんでした。
詳細情報 - エラーが発生した後に WMIDiag を実行し、見つかった -
25607 13:55:38 (1) !! エラー: WMI ENUMERATION 操作エラーが報告されました: 2 つのエラー!
25608 13:55:38 (0) ** - ROOT/CIMV2、SubClassesOf、'*'、0x80041006 - (WBEM_E_OUT_OF_MEMORY) 操作に十分なメモリがありません。
25609 13:55:38 (0) ** MOF 登録: 'C:\WINNT\SYSTEM32\WBEM\SNMPREG.MOF' 25610 13:55:38 (0) ** - ルート/CIMv2、InstancesOf、'Win32_PerfFormattedData_PerfProc_Thread'、 0x8007000E - この操作を完了するのに十分なストレージがありません..
25611 13:55:38 (0) ** MOF 登録: 'C:\WINDOWS\SYSTEM32\WBEM\WMI.MOF'
誰もこれを見たことがありますか?アイデア?
windows-installer - インストールされているMSIパッケージの列挙が非常に遅いのはなぜですか?
これは、この質問のフォローアップです。
このわずかに変更されたスクリプトを使用して、インストールされているすべてのMSIパッケージを列挙しています。
しかし、驚くべきことは、そのひどいパフォーマンスです。XPボックスにインストールされている34個のMSIパッケージを列挙するには、3〜5分かかります。
比較すると、横にあるLinuxボックスは1400以上のRPMを列挙するのに7秒かかります...ため息をつく
これに関する手がかりはありますか?