こんにちは。
VBSでコントロールパネルの「日付と時刻の設定」画面から「インターネット時刻設定」を表示し、
設定したいのですが、エラーが出て困っています。
単純に、以下のコードで、VBSファイルをダブルクリックで表示はできました。
そのVBSファイル名をhtml拡張子のファイルに書くと、タグ認識されて、そこから
ダブルクリックしても、「日付と時刻の設定」画面は表示できました。
が、VBSファイル直接クリックで実行した場合とhtml経由で実行した場合とで
「インターネット時刻設定タブ」の表示内容、動作が異なってしまい、原因がわからず困っています。
仮に、NTPサーバのIPアドレスXXX.XXX.XXX.XXXだとします。
VBSファイル直接の実行だとインターネット時刻設定タブの「今すぐ更新」に
「XXX.XXX.XXX.XXX」と入力すると、「正常に・・・同期しました」となります。
html経由で実行すると、まず、表示が常にtime.windows.comで失敗していて、
NTPサーバのIPを入力して「今すぐ更新」を押すと「エラーが発生しました。変更は保存できませんでした」と
表示されます。
この状態でも、コントロールパネルから直接設定を確認すると、正しい設定
XXX.XXX.XXX.XXX が表示されていますし、VBSファイル直接実行で表示された画面も
正しい値を示しています。
該当のソースコード
C:\test.vbs ファイル
Set objShell = CreateObject("WScript.Shell")
objShell.Run("rundll32.exe shell32.dll Control_RunDLL Timedate.cpl")
test.html ファイル c:\test.vbs ### 試したこと WindowsServer2008・2019で起きています。 vbsはダブルクリックでscript host実行するようにしておき、 「VBSファイル直接実行」は、c:\test.vbs をダブルクリック 「html経由で実行」は、test.htmlを秀丸などのエディタで開き、 タグとして認識された状態(下線などが表示された状態)で、ダブルクリックすることを指します。 保存できないというメッセージから権限を疑い、レジストリの項目を検索して、NtpServerが ヒットした箇所すべて、everyoneのフルコントロールを付けたりしましたが、ダメでした。 VBSの実行前に、管理者権限になるようなコードを付けたりしましたが、それもダメでした。 もちろん直接叩けば、済むことなのですが、事情でhtml経由で呼び出さないといけないのです。 なにか、情報をお持ちの方、いらっしゃいましたらご教示ください。 よろしくお願いします。
あなたの回答
tips
プレビュー