将文件从网络共享复制到所有网络计算机上的所有 windows 用户桌面

copy file from network share to all windows users desktops on all network computers

基本上,我想做这样的事情(使用命令提示符只是为了一个可视化的例子,很乐意尝试 PowerShell/VBScript/other 编程方法)...

xcopy "\thisserver\share\something.txt" "\computer1\c$\users\dude\Desktop\*.*" /Y
xcopy "\thisserver\share\something.txt" "\computer2\c$\users\dudeette\Desktop\*.*" /Y
...

事实上,如果我能更进一步简化代码,我想做这样的事情:

xcopy "\thisserver\share\something.txt" "\computer1\c$\*\*\Desktop\*.*" /Y
xcopy "\thisserver\share\something.txt" "\computer2\c$\*\*\Desktop\*.*" /Y

我知道这是不正确的编码,但本质上我想从易于访问的网络位置复制一个文件(准确地说是 .vbs 文件)到所有 Windows 用户的(c:\users ) 我们域内所有网络计算机上的桌面位置。

非常感谢任何帮助!如果手动是唯一的选择,那么我想就是这样。

在域中,使用 Group Policy Preference 将文件部署到用户桌面要简单得多。

将光标放在 Destination File 输入框中按 F3 以获取可用变量列表。

如果您想尝试 PowerShell:

  • 创建一个包含所有目标路径列表的文本文件,类似于:

E:\share\Paths.txt:

\computer1\c$\users\dude\Desktop
\computer2\c$\users\dudeette\Desktop

.

PowerShell中:

ForEach ( $destination in Get-Content -Path 'E:\share\Paths.txt' )
{
    mkdir $destination -Force
    Copy-Item -LiteralPath 'E:\share\something.txt' -Destination "$destination\something.txt" -Force
}

.

备注:

- I only tested this on the local drives

- if all destination folders exist: comment out "mkdir $destination -Force"
  (place a "#" before the line: "# mkdir $destination -Force")

- if destination paths contain spaces place this line above "mkdir" line
  $destination = $destination.Replace("`"", "`'")

- I didn't test paths with spaces either

- You can rename destination file to "somethingElse.txt" in the "Copy-Item" line:
  ... -Destination "$destination\somethingElse.txt" -Force

.

因此,版本 2:

ForEach ( $destination in Get-Content -Path 'E:\Paths.txt' )
{
    $destination = $destination.Replace("`"", "`'")
    # mkdir $destination -Force
    Copy-Item -LiteralPath 'E:\share\something.txt' -Destination "$destination\somethingElse.txt" -Force
}