1

リモート コンピュータから現在の情報を読み取って、システムの日付と時刻を設定したいと考えています。そのコンピューターはドメイン内にあります。以下のコードを使用してタイムゾーンにアクセスしました。

Set objWMIService = GetObject("winmgmts:\\" & ServerAddress & "\root\cimv2")
Set oRemoteItems = objWMIService.ExecQuery("Select * from Win32_TimeZone")

For Each o In oRemoteItems
    ServerTime = o.StandardName
    Exit Function
Next

しかし、このコードは機能していません。アクセス拒否エラー (5) が表示されます。どこが間違っているのか教えてください。また、ワークグループにいる間はユーザーになりすます必要があります->両方のマシンのワークグループユーザーは同じです。しかし、ワークグループでは、両方のシステムのドメイン ユーザーが異なります。上記のコードになりすまして使用する方法を提案してください。

また、日付と時刻を設定するために net time コマンドを使用していますが、アクセス拒否エラーのために失敗しています。

よろしく、

4

1 に答える 1

2

私はついにそれを達成しました.. :)

以下のコードは、リモート システムがドメインまたはワークグループにあるかどうかに関係なく、リモート システムのタイムゾーン、日付、時刻を示します。考慮すべき唯一の点は、コードの下で実行しているユーザーは、ワークグループまたはドメインの管理者でなければならないということです。

Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objSWbemLocator.ConnectServer(remoteserver,"root\CIMV2",adminuser,adminpassword,"MS_409","")

Set oRemoteItems = objWMIService.ExecQuery("Select * from Win32_TimeZone")

For Each o In oRemoteItems
    sServerTimezone = o.StandardName
Next

MsgBox sServerTimezone

'Google で Win32_TimeZone を検索すると、StandardName 以外の日付と時刻のパラメーターが見つかります

ご協力いただきありがとうございます。

よろしく、

ディペッシュ

于 2012-05-03T10:46:59.833 に答える