• 締切済み

XPEmbeddedによるWMI利用について

WMIを利用したソフトをVBで作っていますが、XPEmbeddedにて実行すると 「ActiveXコンポーネントを作成できませんでした」 ( ActiveX component Can't create object) とエラーがでます。 //////エラー箇所/////  Set Locator = New WbemScripting.SWbemLocator ・・・VB6で開発した場合  Set Locator = WScript.CreateObject("WbemScripting.SWbemLocator") ・・・VBSで実行した場合 wbemtest.exeでWMIテスターによる各種情報取得はできるのは確認しました。 XPEmbeddedでWMIを利用する際は、他に何かしなければいけないのでしょうか? 対処法があれば教えて頂ければ幸いです。

みんなの回答

  • 486HA
  • ベストアンサー率45% (1013/2247)
回答No.1

ここらを参考にしてください。

参考URL:
http://monoist.atmarkit.co.jp/mn/articles/0611/07/news134.html

関連するQ&A

  • WMIスクリプトを使用してMACアドレスをASPで取得

    タイトルの通りですが、 WMIスクリプトを使用して、 ASPでMACアドレスの取得を行なっているのですが、 なかなか上手くいきません。 <%@ LANGUAGE="VBSCRIPT"%> <HTML> <HEAD> </HEAD> <BODY> <% Dim QfeSet Dim QfeSets Dim Qfe Dim Locator Dim Service Dim Ret on error resume next Set Locator = CreateObject("WbemScripting.SWbemLocator") Set Service = Locator.ConnectServer If Err = 0 then Set QfeSet = Service.Get("Win32_NetworkAdapterConfiguration") QfeSet.Security_.impersonationLevel = impersonate Set QfeSets = QfeSet.Instances_ End If For Each Qfe In QfeSet If Qfe.IPEnabled = True Then Ret = Qfe.MACAddress & vbCrLf Response.write("MACADDRESS:" & Ret & "<BR>") End If Next %> </BODY> </HTML> CreateObjectやService.Getのところが 原因ではないかと思うのですが・・・。 どなたか教えて戴けますでしょうか? 宜しくお願い致します。

  • WMIを利用。

    はじめましてこんにちわ。 現在、WindowsのWSHのWMIを利用して、 パスワードが無期限ではないユーザーを無期限にしようと思っています。 以下、プログラムを利用して↑を実行しようと思っているのですが、 エラー:テーブルが存在しません。 と出てしまいます。どうすればよいでしょうか? 以下サンプルプログラムを見つけてVBSファイルにして実行しました。 [sample]パスワードが無期限じゃないユーザーを一括で無期限に szDomain = "dc=annou,dc=com" szOU = "OU=Students" Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000 Set objConnection = CreateObject("ADODB.Connection") objConnection.Open "Provider=ADsDSOObject;" Set objCommand = CreateObject("ADODB.Command") objCommand.ActiveConnection = objConnection objCommand.Properties("Page Size") = 20000 objCommand.CommandText = _ "<LDAP://" & szOU & "," & szDomain & ">;" & _ "(&(objectCategory=person)(objectClass=user)" & _ "(!userAccountControl:1.2.840.113556.1.4.803:=65536));" & _ "userAccountControl,sAMAccountName,distinguishedName;" & _ "subtree" Set objRecordSet = objCommand.Execute Do Until objRecordset.EOF szDN = objRecordset.Fields("distinguishedName") intUAC = objRecordset.Fields("userAccountControl") Set objUser = GetObject("LDAP://" & szDN ) objUser.Put "userAccountControl", intUAC XOR ADS_UF_DONT_EXPIRE_PASSWD objUser.SetInfo WScript.Echo szDN objRecordset.MoveNext Loop objConnection.Close Set objCommand = Nothing

  • VBSからリモートでbat実行(WMI)

    VBS初心者です。 別端末上のbatファイルを別ユーザでリモート実行したいのですが、 以下のソースでエラーが起きてしまいます。(result が2で返ってきてしまう) どなたか原因がお解りになりましたらご教授宜しくお願い致します。 ----------------------------------------------------- RemoteExecute "リモート先","ドメイン\User","pass","C:\test.bat" Function RemoteExecute(strServer, strUser, strPassword, CmdLine) Const Impersonate = 3 RemoteExecute = -1 Set Locator = CreateObject("WbemScripting.SWbemLocator") Set Service = Locator.ConnectServer(strServer, "root\cimv2", strUser, strPassword) Service.Security_.ImpersonationLevel = Impersonate Set Process = Service.Get("Win32_Process") result = Process.Create(CmdLine, , , ProcessId) If (result <> 0) Then WScript.Echo "Creating Remote Process Failed: " & result Wscript.Quit End If RemoteExecute = ProcessId End Function -----------------------------------------------------

  • VBScript(WHS)でWMIを使ってリモートでvbsファイルを実行したい

    サーバAから、サーバBに置いてあるvbsファイル(Apache停止が書かれている)を実行して、サーバBのApacheを停止したいのですが、うまくいきません。 サーバBで単体でそのvbsファイルを実行すると、Apacheは正常に停止します。  戻り値は、0(プロセス完了)が帰ってきていて、接続はうまくいっているようなのですが、vbsファイルが実行されていないようです。  非常に困っておりまして、どなたか教えていただけないでしょうか? vbsファイルの実行のところが間違っているのかなと思うのですが・・・(今まだ会社にいないので、会社でのソースそのままではないですが、同じような感じです) -------------------------------------------- Option Explicit Dim strComputer Dim strUser Dim strPassword Dim strBAT ' ----------------------------------- ' 環境設定 ' ----------------------------------- strComputer = "サーバーB" strUser = "username" strPassword = "password" strBAT = "c:\hoge.bat" ' ----------------------------------- ' コマンド実行 ' ----------------------------------- Dim objWbemLocator Dim objWMIService Dim objWin32_Process Dim errReturn Dim intProcessID Const WbemAuthenticationLevelPktPrivacy = 6 ' リモートに接続 Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator") Set objWMIService = objwbemLocator.ConnectServer _ (strComputer, "root\cimv2", strUser, strPassword) objWMIService.Security_.authenticationLevel = WbemAuthenticationLevelPktPrivacy ' Win32_Process クラスを生成 Set objWin32_Process = objWMIService.Get("Win32_Process") errReturn = objWin32_Process.Create _ ("cmd.exe /cscript C:\tmp\ApacheStop.vbs", Null, Null, intProcessID) WScript.Quit(errReturn ) もともとの要件は、機能ごとに分けたvbsファイル(Apache停止、Windows再起動、ファイルバックアップなど)を、各サーバで実行するというものです。その制御は、ひとつのバックアップサーバーで行います。

  • ASP(またはWSH)でMSHTMLコンポーネントを使いたい

    教えてください。 MSHTMLを使用して、DOM解析&値設定をし、自動的に画面遷移処理をしたいと考えています。 使用言語はVBScriptです。以下のようなソースを実行したところ、エラーが発生します。 Set objMSH = CreateObject("MSHTML.HTMLDocument") Set objDoc = objMSH.createElementFromUrl("http://www.google.co.jp",vbNullString) Microsoft VBScript 実行時エラー: ActiveX コンポーネントはオブジェクトを作成できません。: 'MSHTML.HTMLDocument' ネットを検索すると、VBのソースは発見できるのですが VBSでの利用方法がわかりません。 ご存知の方がいたら教えてください

  • VBのような画面インターフェースを用いてWMIを使いたい

    現在、WMIやLDAPをVBSで記述して運用管理を行っています。 しかし、拡張子vbsファイルを1本づつ起動しながら処理を行っている為、 他の人に分かりづらく、ファイル管理もしづらい状態です。多少はインプットボックスも使用して分かり易くしているのですがもう限界です。 なので、いっそのことVBライクな画面を作ってツール化をしようと思っているのですが、Visual Studio(2005・2008)でWMIやLDAPをVBで直接記述をするとコンパイルエラーになってしまいます。しかし、VBで作成した画面からVBSファイルを呼び出すというのはちょっとかっこ悪いかなと思っているので、なんとか直接記述してツールを作成したいと思っています。 どなたかWMIをEXEツール化する為の良い方法をご存知の方はいらっしゃいませんか?ちなみに環境の都合上、ASPは対象外です。 どうぞよろしくお願い致します。

  • ActiveX → VB を起動するとCreateObjectできない。

    初めまして。 2003Server+IIS6.0の環境でASP内のActiveXからShell関数でvbのexeを実行させる処理を作成しております。 サーバーから直接exeを実行させると正常に動くのですが、Web上からasp→ActiveX→exeを起動させるとテキストに書き込む処理はできるのですが、「CreateObject」文で「ActiveX コンポーネントはオブジェクトを作成できません」というエラーが返ります。 VB内でなぜ「CreateObject」が出来ないのかご存知の方はいますでしょうか。 宜しくお願いいたします。

  • WMIを利用。Part2

    はじめましてこんにちわ。 現在、WindowsのWSHのWMIを利用して、 パスワードが無期限ではないユーザーを無期限にしようと思っています。 ソースコードをさがしたり、こちらの質問箱に質問したところ、 どうも ・ソースコードが正しく走るのは確認が取れている。 ・こちら側の環境で走らない。(ActiveDirectoryなどほか) ・逆にスタンドアロンの環境でもいいので走らないか。 ということです。 どうぞご回答よろしくお願いします。 ソースは以下です。 Option Explicit Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000 Dim WshShell Dim strEnvDnsDomain, arrItem, baseDN, i Dim szDomain, szOU, szDN, intUAC, objUser Dim objConnection, objCommand, objRecordSet Dim strCommandText szOU = "OU=Students" Set WshShell = CreateObject("WScript.Shell") strEnvDnsDomain = WshShell.ExpandEnvironmentStrings("%USERDNSDOMAIN%") If Left(strEnvDnsDomain, 1) = "%" Then WScript.Echo "操作しているPCはActive Directoryドメインに参加していないようです。" & vbNewLine & "終了します。" WScript.Quit End If arrItem = Split(strEnvDnsDomain, ".") baseDN = "" For i = 0 to UBound(arrItem) If i = 0 Then baseDN = "DC=" & arrItem(i) Else baseDN = baseDN & ",DC=" & arrItem(i) End If Next szDomain = baseDN Set objConnection = CreateObject("ADODB.Connection") Set objCommand = CreateObject("ADODB.Command") objConnection.Provider = "ADsDSOObject" objConnection.Open "Active Directory Provider" objCommand.ActiveConnection = objConnection strCommandText = "<LDAP://" & szOU & "," & szDomain & ">;" & _ "(&(objectCategory=person)(objectClass=user)" & _ "(!userAccountControl:1.2.840.113556.1.4.803:=65536));" & _ "userAccountControl,sAMAccountName,distinguishedName;" & _ "subtree" objCommand.CommandText = strCommandText Set objRecordSet = objCommand.Execute Do Until objRecordset.EOF szDN = objRecordset.Fields("distinguishedName") intUAC = objRecordset.Fields("userAccountControl") Set objUser = GetObject("LDAP://" & szDN ) objUser.Put "userAccountControl", intUAC XOR ADS_UF_DONT_EXPIRE_PASSWD objUser.SetInfo WScript.Echo szDN objRecordset.MoveNext Loop objConnection.Close Set objCommand = Nothing WScript.Echo "END"

  • SWbemDateTimeの使い方

    Windows2000+VBA(ACCESS97)です。 WbemScripting.SWbemDateTimeのオブジェクトを使いたいと思っているのですが、CreateObjectで「ActiveXがつくれない」とエラーになります。 オブジェクトブラウザで見てみたところたしかにSWbemDateTimeが中にでてきません。参照設定が不足しているのでしょうか。ちなみに「Windows WMI Scripting V1.1 Library」は参照設定しています。 よろしくお願いします。

  • VBSからbat実行(WMI)して戻り値を取得する

    WSH初心者です。 WSH(remote.vbs)からWMI使用で別サーバのA.batを実行しているのですが、 A.batの戻り値はどのように取得すれば良いのでしょうか? -■remote.vbs(一部抜粋)------------------------------------------ ' #WMI に接続 Wim32_Process クラスを取り出す Set clsProcess = GetObject("winmgmts:{impersonationLevel=impersonate}" & "!" & リモート先PC & "Win32_Process") ' #プロセスの作成 lngResult = clsProcess.Create(A.bat, null, null, processId) -------------------------------------------------------------- -■A.bat------------------------------------------ exit /B %RetCode% ------------------------------------------------- A.batで返している%RetCode%の値をremote.vbs側で取得したいのです。 どなたかご存じでしたらご教授の程よろしくお願い致します。