0×80041003 のエラー

このQ&Aのポイント
  • 0×80041003 のエラーがイベントビューアーに出ています。このエラーについて調べてみると、以下のサイトがヒットしました。
  • サイトによると、エラーコード 0×80041003 は、VBScript のコンパイルエラーを示しています。
  • 質問の内容を踏まえて、VBScript のコードに改善が必要かもしれません。具体的な解決策については、サイトの情報を参考にしてください。
回答を見る
  • ベストアンサー

0×80041003 のエラー

0×80041003のエラーがイベントビュアーに出ていて、検索しましたら http://www.sql-master.net/articles/SQL749.html がヒットしました。 書いてあるように、 strComputer = “.” Set objWMIService = GetObject(“winmgmts:” _ & “{impersonationLevel=impersonate}!\\” _ & strComputer & “\root\subscription”) Set obj1 = objWMIService.Get(“__EventFilter.Name=’BVTFilter’”) set obj2set = obj1.Associators_(“__FilterToConsumerBinding”) set obj3set = obj1.References_(“__FilterToConsumerBinding”) For each obj2 in obj2set WScript.echo “Deleting the object” WScript.echo obj2.GetObjectText_ obj2.Delete_ next For each obj3 in obj3set WScript.echo “Deleting the object” WScript.echo obj3.GetObjectText_ obj3.Delete_ next WScript.echo “Deleting the object” WScript.echo obj1.GetObjectText_ obj1.Delete_ を、新しいテキストドキュメントにページからそのままコピーして貼り付け、ファイルメニューで名前を付けて保存で、[新しい.vbs]と名前を変換して保存、保存した物をクリックすると エラー:文字が正しくありません コード:800A0408 ソース:Microsoft VBScriptコンパイルエラー と出ます、どうすれば良いのでしょうか。

  • mrmk
  • お礼率69% (87/126)

質問者が選んだベストアンサー

  • ベストアンサー
  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

書かれているように、1行目15文字目を確認しては? > strComputer = “.” 全角のダブルクォーテーションは、一般的なスクリプトなんかには使いません。 「“」→「"」 などと、全部半角に置き換えとか。

mrmk
質問者

補足

neKo_deuxさん、ありがとうございます。 Googleクロームを使っていて表示が変わっていたようです^^; で、IEでMicrosoftのページを表示してコピー strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\subscription") Set obj1 = objWMIService.Get(" _EventFilter.Name=’BVTFilter'") set obj2set = obj1.Associators_("__FilterToConsumerBinding") set obj3set = obj1.References_("__FilterToConsumerBinding") For each obj2 in obj2set WScript.echo "Deleting the object" WScript.echo obj2.GetObjectText_ obj2.Delete_ next For each obj3 in obj3set WScript.echo "Deleting the object" WScript.echo obj3.GetObjectText_ obj3.Delete_ next WScript.echo "Deleting the object" WScript.echo obj1.GetObjectText_ obj1.Delete_ を貼り付けてvbsとしてクリックしますと Deleting the object で OK instance of Commandline Event Consumer { Command Line Template="cscript Kem Cap.vbs"; CreatorSID={1,5,0,0,0,0,0,5,21,0,0,0,107,206,164,63,163,98,236,21,129,91,79,171,244,1,0,0}; Name="BVTConsumer"; RunInteractively=FALSE; Working Directory="C:¥¥¥¥tools¥¥¥¥kemrate"; }; で、OK スプリクト: ***.vbs 行: 17 文字:17 エラー: アクセスは拒否されました コード: 80041003 ソース: SWbem ObjectEx となってしまいます。

その他の回答 (2)

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.3

> となってしまいます。 と言われても、最初のソースとも変わっちゃってるし。 エラーメッセージどうりに、17行目、17文字目の処理を確認すべきですが、補足を見るとnextって処理ではそういうエラーは起こりえませんから、空行があるとかだとどこがエラーなのか、判断しようが無いです。 アクセスできないって話ですから、admin権限で実行しては?くらいしかアドバイスしようが無いです。 -- そもそもの問題は、 > 0×80041003のエラーがイベントビュアーに出ていて、 だったと思いますが、検索結果で表示されていたページは、 Event ID 10 is logged in the Application log after you install Windows Vista Service Pack 1 or Windows Server 2008 http://support.microsoft.com/kb/950375/en-us/ の内容を紹介しているだけの記事です。 (紹介するにしても、ダブルクォートの件とかで問題あるので、信頼すべきかどうかは一考する必要あると思いますが。) で、元の記事ではアプリケーションログにイベントID 10が記録される、VistaにSP1適用後、詳細をXMLビューで見るとこれこれが表示されるとかって話ですが、こちらの条件は合致してるんでしょうか?

mrmk
質問者

お礼

どうもありがとうございました。 HDDにダメージが有ったまま、クローンを作って移植したため、あっちこっちにエラーだらけになってしまいました。 どうにもならないのでリカバリーしました。 丁寧なご指導、感謝します、ありがとうございました。

  • okgoripon
  • ベストアンサー率44% (1141/2550)
回答No.2

>Working Directory="C:¥¥¥¥tools¥¥¥¥kemrate";  ¥が思いっきり全角文字ですけど、まさかこれをそのまま使ったりしてませんよね?

mrmk
質問者

補足

Working Directory="C:¥¥¥¥tools¥¥¥¥kemrate"; ですが¥¥¥ではなくて\\\ だと思いますが^^; っで、Microsoftの原文がバックスラッシュだったので、検索して入力文字を変えてバックスラッシュを入力して、スペースも、何故か全部一度にコピーしてそのままテキストに貼り付けると原文のスペースと違ってスペースが全部無くなってしまうので、ちょこっとずつコピーしては貼り付けて、我がつたない目で見る限り、原文と同じかと思い作りますと 行:6 文字:1 エラー:オブジェクトが無効です ソース:SWbenServicesEx 解析できないコードとかみたいです。。。。 何故かテキストも、確認のために開くと、いつの間にか明けたはずのスペースが無くなっていたりしますw どうしてもおらでは駄目みたいです(TOT)

関連するQ&A

  • 下記内容のスクリプトを実行すると、ポップアップが

    下記内容のスクリプトを実行すると、ポップアップが 5回表示されるのですが、どこから取ってきた値なのか知りたいです。 ※必要なのは4回目に表示されるデスクトッププロパティから  参照できる”スクリーンセーバーの待ち時間”だけです。  出来れば、それのみ表示させたいです。 ****************** On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_Desktop") For Each objItem in colItems Wscript.Echo "ScreenSaverTimeout: " & objItem.ScreenSaverTimeout Next ****************** 以上

  • WSHについて教えてください。

    WSHについて教えてください。 コレクションの最初の要素(オブジェクト)のプロパティを参照したいのですが、やり方がわかりません。 例えば以下のようなWMIのクエリの結果のコレクションの要素(オブジェクト)は1つだけしかありません。 ※ネットワークドライブ V: の情報を得る strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkConnection where LocalName=""V:""",,48) なのにわざわざ For Each objItem in colItems Wscript.Echo "LocalName: " & objItem.LocalName Next のような表現をするのは、いかにも大変です。 For Eachを使わずに、上記の例での colItems の最初の要素(オブジェクト)の LocalName プロパティを取り出すには どのようにコーディングすればいいのでしょうか?

  • サーバのメモリ使用量とかを確認したい

    strComputer = "atl-dc-01" Set wbemServices = GetObject("winmgmts:\\" & strComputer) Set wbemObjectSet = wbemServices.InstancesOf("Win32_LogicalMemoryConfiguration") For Each wbemObject In wbemObjectSet WScript.Echo "物理メモリの合計 (kb): " & wbemObject.TotalPhysicalMemory Next こういったプログラムを見つけたのですが・・・Getobjectで書き込みが出来ないエラーが出ます。 調べた結果おそらく権限がないことがいけないかと思いますが・・・どうやって結果を得られるのかわかりません。 あとコミットチャージとかも取得で切ればいいのですが・・・よろしくお願いします。

  • WMIによるネットワーク接続の有効無効化方法

    WMIによるネットワーク接続の有効無効化方法がわからないため 下記VBScriptの「Array("192.168.9.999")」の部分のIPアドレスを 有効化のVBScriptには割り当てているアドレスを 無効化のVBScriptにはでたらめなアドレスを設定し 有効無効化らしきことを実現させています。 実際にはネットワーク接続は有効のままでネットワークアドレスが ちがうために接続できないだけです。 どなたか有効無効化(IPEnabledをTRUEorFALSEにするMethod)方法を 教えていただけないでしょうか? strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colNetAdapters = objWMIService.ExecQuery _ ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE") strIPAddress = Array("192.168.9.999") strSubnetMask = Array("255.255.255.0") For Each objNetAdapter in colNetAdapters errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask) If errEnable = 0 Then WScript.Echo "The IP address has been changed." Else WScript.Echo "The IP address could not be changed." End If Next

  • リモートPCの情報取得について

    Windows2000から下のVBSを実行しますがうまくデータを取得できません。 取得先のPCもWinodows2000です。.NET Framework 1.1以上です。 ファイヤーウォールの類もありません。 どなたか教えて下さい。 ------------------------------------------------------ strComputer = "192.168.2.●●" Set wbemServices = GetObject("winmgmts:\\" & strComputer) Set wbemObjectSet = wbemServices.InstancesOf("Win32_LogicalMemoryConfiguration") For Each wbemObject In wbemObjectSet WScript.Echo "物理メモリの合計 (kb): " & wbemObject.TotalPhysicalMemory Next

  • シャットダウンスクリプトの記述

    ドメインに参加している WinXP クライアントから、ワークグループ環境の複数台の Windows Server 2003 (主に) に対して ping を実行し、ping に対して応答があった場合はシャットダウンするスクリプトを記述したいと考えています。 # ワークグループ環境の Windows Server 2003 は検証環境で、社内セキュリティポリシーの運用上ドメインに参加できません。 この場合、 1. 複数のマシンに ping を打つ 2. 1 で応答がかえってくれば管理者の資格情報を使用してログイン 3. シャットダウンを実行 という流れになると思います。 そして、最終的には 1 が成功した場合に If 構文で 2、および、3 を実行する、という ように書けば一連の処理は成功すると考えています。 現在上記 1~3 の処理で細分化し、それぞれについて動作確認をとっています。 しかし、2、および、3 を実行してもうまくいかないため、これらについて伺いたく 質問させていただきます。 2 について 以下の構文を組んでいますが、vbs を実行すると、後述のエラーダイアログが表示されます (対象 PC やアカウント名などはダミーとご認識ください)。 別の資格情報 (接続先マシンの管理者アカウント) を指定して接続できるコードをご教授ください。 ----- Const WbemAuthenticationLevelPktPrivacy = 6 strComputer = "atl-ws-01" strNamespace = "root\cimv2" strUser = "Administrator" strPassword = "4rTGh2#1" Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator") Set objWMIService = objwbemLocator.ConnectServer (strComputer, strNamespace, strUser, strPassword) objWMIService.Security_.authenticationLevel = WbemAuthenticationLevelPktPrivacy Set colItems = objWMIService.ExecQuery ("Select * From Win32_OperatingSystem") For Each objItem in ColItems Wscript.Echo strComputer & ": " & objItem.Caption Next ----- エラー : RPC サーバーを利用できません。 コード : 800706BA ソース : SWbemLocator 3 について 以下の構文を組んでいますが、エラーは表示されないものの、シャットダウンが開始されません。 ----- On error resume Next Const LogOff = 0 'ログオフ Const REBOOT = 2 '再起動 Const SHUTDOWN = 8 'シャットダウン Dim objWMIService Dim colOperatingSystems Dim objOperatingSystem Set objWMIService = GetObject("winmgmts:{impersonationLevel= impersonate,(Shutdown)}\\" & strComputer & "\root\cimv2") Set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem") For Each objOperatingSystem in colOperatingSystems objOperatingSystem.Win32Shutdown(SHUTDOWN) Next Set objWMIService = Nothing Set colOperatingSystems = Nothing Call ErrorCheck End Function ----- また、試しに objNetwork.MapNetworkDrive を使用してサーバーの IPC$ に接続しログインした後に上記処理を試行しましたが、 シャットダウンが進みませんでした。 何卒よろしくお願いいたします。

  • vbsでDNSサフィックスの変更をするには

    今、WMIのメソッドを使用して DNSサフィックスを変更するVBSを作成しているのですが なぜか「行10、文字3が無効なメソッドです」って エラーになってしまいます。 運用の環境なので変にランタイムなども入れられないため VBSを選択し、IP変更やコンピュータ名変更なんかは できたのですが、DNSサフィックスがどうしてもうまくいきません。 メソッドもwbemtest.exeにて調べたので無いことも無いと 思うのですが。。。 どなたかわかる方いらっしゃいましたら 教えていただけないでしょうか。お願いします。 **ここからがソースです**** strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colNIC = objWMIService.ExecQuery _ ("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled=true") arrDNSSuffixes = Array("domain1.local", "domain2.local") For each objNIC in colNIC objNIC.SetDNSSuffixSearchOrder(arrDNSSuffixes) NEXT **ここまでがソースです****

  • VBSでレジストリキー名に円マークをつける

    「SQL\INSTANCE」という名前のキーをレジストリに作成したいのですが、円マークを入れると階層化されてしまうので、困っています。 カンタンな質問かもしれませんがどなたか教えてください。 以下、VBSで作成 Option Explicit On Error Resume Next Dim objWshShell ' WshShell オブジェクト Set objWshShell = WScript.CreateObject("WScript.Shell") If Err.Number = 0 Then objWshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\SQL\INSTANCE", "SQL", "REG_SZ" WScript.Echo "ODBC設定変更:完了" Else WScript.Echo "エラー: " & Err.Description End If Set objWshShell = Nothing

  • プリンタ一覧の取得

    お世話になります。 ネットワーク上の他クライアントのプリンタ一覧を取得する方法を探しています。 環境はWin2000です。 クライアントAから、クライアントBにログオンしているユーザー2のプリンタ一覧を取得する方法はあるのでしょうか。 strComputer ="クライアントB" Set objWMIService = GetObject( "winmgmts://" & strComputer & "/root/cimv2" ) Set PrtSet = objWMIService.ExecQuery("Select * From Win32_Printer") For Each Prt In PrtSet MsgBox Prt.Caption Next 上記、クライアントAにログオンしているユーザー1で実行したところクライアントBのユーザー1プロファイルのプリンタ一覧を取得してしまい、ユーザー2のプリンタ一覧を取得してくれません。 なにか情報、方法ありましたらご教授ください。 よろしくお願いします。

  • WSHにて戻りオブジェクトのプロパティ全取得方法

    http://gallery.technet.microsoft.com/scriptcenter/07a8a60d-fef5-4729-87fe-3c7cee10267e を参考に、ローカルのユーザー情報を抜こうと思っております。 <内容> strComputer = "atl-fs-01" Set colAccounts = GetObject("WinNT://" & strComputer & "") colAccounts.Filter = Array("user") For Each objUser In colAccounts Wscript.Echo objUser.Name Wscript.Echo objUser.FullName Wscript.Echo Description Wscript 実行すると正しく動きました。 1. GetObjectで対象のコンピューターからのオブジェクトを生成 2.フィルターにより、ユーザー情報のみ抽出? 3. objUser.Name、 objUser.FullName objUser.Description を表示という内容までは理解できるのですが、 このobjUserに「FullName」と「Description」以外のプロパティを知りたいのです。 どうにかして、「objUser」が所持する「FullName」と「Description」以外のプロパティ一覧を全表示させることは出来ないでしょうか? ご教授お願いします。