Я пытаюсь написать функцию для сравнения даты, измененной в файле сервера, с клиентской и перезаписать файл клиента, если он старше.Это выполняется как часть сценария запуска групповой политики.Файлы tmp создаются как шаг отладки, чтобы увидеть, где код застревает.copyfile.tmp создан, но copydone.tmp нет.Ни один из файлов не предназначен только для чтения, и он работает в локальном контексте SYSTEM, который имеет все необходимые ему права доступа.
Все файлы существуют.Я успешно скопировал файл сервера клиенту ранее в сценарии, если у клиента его не было.(oFSO
- это объект файловой системы, strWinTemp
- системный временный каталог в Windows; определено ранее)
'Replace clientfile if older than servfile
Sub GetNewerFile(clientfile,servfile)
Dim dtmLocalDate
Dim dtmServerDate
Dim oLocalFile
Dim oServerFile
Set oLocalFile = oFSO.GetFile(clientfile)
dtmLocalDate = oLocalFile.DateLastModified
Set oServerFile = oFSO.GetFile(servfile)
dtmServerDate = oServerFile.DateLastModified
If Not oFSO.FileExists(strWinTemp & "\" & "getnewerfile.tmp") Then oFSO.CreateTextFile(strWinTemp & "\" & "getnewerfile.tmp")
If DateDiff("d", dtmServerDate, dtmLocalDate) > 0 Then
'dtmServerDate is more recent than dtmLocalDate, comparison by "day"
If Not oFSO.FileExists(strWinTemp & "\" & "copyfile.tmp") Then oFSO.CreateTextFile(strWinTemp & "\" & "copyfile.tmp")
oFSO.CopyFile oServerFile, oLocalFile, 1
If Not oFSO.FileExists(strWinTemp & "\" & "copydone.tmp") Then oFSO.CreateTextFile(strWinTemp & "\" & "copydone.tmp")
End If
End Sub