
下記ページ billyboyさんのサンプルプログラムを参照させて頂きました。
http://vba-geek.jp/blog-entry-314.html
このとおりに、取得したいコンピュータ名もしくはIPアドレスを設定シートに入力し
VBAを実行しましたが、イベントログが取得できませんでした。
該当PCにはpingもリモートデスクトップもできます。ファイアウォールも全て無効にしています。
一体何が原因なのでしょうか? このようなログを取得しExcelにデータ化するにはどのように
すれば良いでしょうか?
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
自PC(Windows7 Pro )からEventLogApp.xlsmを試した結果です。
相手PCがWindowsXP (^_^;) ならファイアウォールを無効にするだけで取得できました。
Windows7、Windows10ではさらに管理共有を有効にすることで取得できるようになりました。
(それぞれのPCに管理者権限あり、ワークグループ環境。)
https://support.microsoft.com/ja-jp/kb/947232
↑の『自分で解決する』をBATファイルにしたものを以下に置いておきます。
Windows10 Pro(10586)でも可。
ファイアウォールにしろ管理共有にしろセキュリティに関わることですので
もっとピンポイントな設定がある筈なのだが。。。orz
管理共有_切り替え.bat
rem 管理共有を有効にします。リモートシャットダウンなども可能になります。
echo off
cls
for /f "tokens=3 delims=\ " %%i in ('whoami /groups^|find "Mandatory"') do set LEVEL=%%i
rem echo %LEVEL%
if "%LEVEL%" neq "High" (
echo === 設定変更するには『管理者として実行』する必要があります。===
echo === このBATは変更するマシンのローカルにある必要があります。 ===
)
set RegAddress=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy
rem 『名前』登録されているか
reg query %RegAddress%
echo 現在の設定です。DWORDの値が 0x1 の場合は管理共有が有効です。0x0 の場合は無効。
echo;
echo === 未設定の場合には、エラーが返ってきます。===
echo;
echo --------------------------
echo [キーそのものを削除] U
echo --------------------------
echo [管理共有を有効に] S
echo --------------------------
echo [管理共有を無効に] D
echo --------------------------
echo [キャンセル] C
echo --------------------------
echo 選択は?
choice /C usdc /N > nul
IF %ERRORLEVEL%==4 GOTO Cancel
IF %ERRORLEVEL%==3 GOTO Disable
IF %ERRORLEVEL%==2 GOTO SetKey
IF %ERRORLEVEL%==1 GOTO UnSetKey
IF %ERRORLEVEL%==0 GOTO Cancel rem来ない
:UnSetKey
reg delete %RegAddress%
goto Result
:SetKey
set t= /t REG_DWORD /d 1
reg add %RegAddress%%t%
goto Result
:Disable
set t= /t REG_DWORD /d 0
reg add %RegAddress%%t%
goto Result
:Cancel
echo キャンセルが選択されました。
timeout /t 3
exit
:Result
echo;
echo 操作結果
reg query %RegAddress%
echo 終了します。何かキーを押してください。
pause>nul
No.1
- 回答日時:
私は、詳しいことはわからないけれども、
>'WMIオブジェクトの参照
>Set objWMIService = GetObject("winmgmts:" _
>& "{impersonationLevel=impersonate}!\\" & strComputer(i) & >"\root\cimv2")
これって、スタンドアロンのPCだったら、
通例
strComputer = "."
このように登録しているはずです。strComputer(i) で配列をしても、呼び出せないのではないでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Dosブロンプトでtabを出力したい
-
shシェルスクリプト 空白行の...
-
findstrのerrorlevel
-
バッチファイルでpingの結果を...
-
phpでcookieがうまく保存されない
-
オブジェクトの中身の判定(PHP)
-
switch()文で値の大小比較
-
batファイルでPC名称の変更
-
コマンドプロンプト フォルダ内...
-
環境変数「%USERPROFILE%」の内...
-
バッチファイルで、全てのウィ...
-
DBのハッシュ化したパスワード...
-
フォームから送った半角カナの...
-
「取得先」という表現について
-
wordの差し込み印刷で文字...
-
excel access連携 このテーブル...
-
json_encodeが表示しない
-
開始と終了を指定して、その間...
-
classの再定義エラーについて
-
Google chart API 、PHP、MySQL...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Dosブロンプトでtabを出力したい
-
バッチファイルでpingの結果を...
-
shシェルスクリプト 空白行の...
-
switch()文で値の大小比較
-
findstrのerrorlevel
-
ゼロとNULLを区別して number_f...
-
小数点以下0の非表示
-
バッチファイルで、全てのウィ...
-
syntax error, unexpected 'ech...
-
PHPで画像を取得、保存する方法
-
【初歩】 for構文内におけるロ...
-
コマンドプロンプト echo onで...
-
画像の削除
-
ISSETで変数に値が入っていない...
-
phpでcookieがうまく保存されない
-
pdftkを使った処理をバッチファ...
-
phpで「+=」と「=+」の違いは?
-
Windowsのsetコマンドでの小数...
-
4桁の乱数の発生
-
オブジェクトの中身の判定(PHP)
おすすめ情報
肝心なエラー記載しておりませんでしたので下記に追記します。
実行時エラー'462'
リモートサーバーがないか、使用できる状態ではありません。
'WMIオブジェクトの参照
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer(i) & "\root\cimv2")
部分から先に進みません。 どんなPCをやっても同じです。。。。