将文件从网络共享复制到所有网络计算机上的所有 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
}
基本上,我想做这样的事情(使用命令提示符只是为了一个可视化的例子,很乐意尝试 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
}