question

Tentando usar o vbscript para substituir um arquivo nas maquinas clientes?

Estou tentando copiar um papel de parede de um servidor para todos os computadores cliente. A unidade do sistema em PCs não são sempre C. Este é o script que eu estou tentando usar:

Const OverwriteExisting = TRUE

Dim WshShell, objFSO, SystemDrive

Set WshShell = WScript.CreateObject("WScript.Shell")
Conjunto objFSO = CreateObject("Scripting.FileSystemObject")

Definir objLocalFile = objFSO.GetFile % SystemDrive % & "\Windows\Web\Wallpaper"
dtmLocalDate = objLocalFile.DateLastModified

Definir objServerFile = objFSO.GetFile ("\\23o.local\23ofs\Free Install\Custom\2co-desktop-bg.bmp")
dtmServerDate = objServerFile.DateLastModified

Set WshShell = CreateObject("WScript.Shell")
SystemDrive = WshShell.ExpandEnvironmentStrings("%Systemdrive%")

Se dtmLocalDate< dtmserverdate="" then="">
objFSO.CopyFile objServerFile.Path, objLocalFile.Path, OverwriteExisting
End If
resposta Resposta
Você está no caminho certo, mas há algumas correções que precisam ser feitas para que seu script funcione corretamente. Vou guiar você através do processo passo a passo.

Primeiro, você precisa criar uma variável chamada "SystemDrive" para armazenar o caminho da unidade do sistema do computador cliente. Isto é feito usando o objeto WScript.Shell para expandir a variável de ambiente "%SystemDrive%".

Em seguida, é necessário definir variáveis para os arquivos locais e de servidor que deseja copiar. Certifique-se de usar aspas duplas ao redor do caminho especificado para evitar erros de sintaxe.

Depois disso, você pode comparar as datas de modificação dos dois arquivos para descobrir se o arquivo no servidor é mais recente do que o arquivo local. Isso é feito usando as propriedades "DateLastModified" dos objetos de arquivo locais e de servidor.

Se a data de modificação do arquivo no servidor for mais recente, você pode proceder a copiar o arquivo usando o método "CopyFile" do objeto FileSystemObject. Certifique-se de que a variável "OverwriteExisting" está definida como verdadeira para garantir que o arquivo seja substituído, se necessário.

Aqui está o script corrigido:

```vbscript

Const OverwriteExisting = TRUE

Dim WshShell, SystemDrive, objFSO

Set WshShell = WScript.CreateObject("WScript.Shell")

Set objFSO = CreateObject("Scripting.FileSystemObject")

SystemDrive = WshShell.ExpandEnvironmentStrings("%SystemDrive%")

Dim objLocalFile, objServerFile

Set objLocalFile = objFSO.GetFile(SystemDrive & "\Windows\Web\Wallpaper")

Dim dtmLocalDate

dtmLocalDate = objLocalFile.DateLastModified

Set objServerFile = objFSO.GetFile("\\23o.local\23ofs\Free Install\Custom\2co-desktop-bg.bmp")

Dim dtmServerDate

dtmServerDate = objServerFile.DateLastModified

If dtmLocalDate < dtmServerDate Then

objFSO.CopyFile objServerFile.Path, objLocalFile.Path, OverwriteExisting

End If

```

Espero que isso ajude a resolver o seu problema. Certifique-se de usar o script com privilégios de administrador para garantir que tenha permissão para acessar e modificar os arquivos nos computadores clientes. Boa sorte!

ComentáriosComentários
Acho que a resposta não está correta ou que você gostaria de acrescentar mais
alguma informação? Envie o seu comentário abaixo..

Guest


HTML não é permitido!

Image Code

Digite os caracteres que aparecem na imagem por isso sabemos que você é humano!

Receber um email quando alguém acrescenta outro comentário a esta pergunta


Topo da página


Home  Terms
Copyright © Accelerated Ideas 2005-2024
All rights reserved