Powershell或cmd-如何在客户端上搜索文件并在网络共享上替换为其他文件?
我们希望在升级到Windows 10 Pro v时替换所有配置文件的defaultlayouts.xml。1607这将在SCCM现场范围内完成。我们已经配置了新的layoutmodification.xml并准备好进行部署,但是,由于客户端计算机上用户的变化,我们很难将其推送到所有配置文件中。部署到“默认”配置文件时没有问题 defaultlayouts.xml位于此处:C:\Users\johndoe\AppData\Local\Microsoft\Windows\Shell 变量将是johndoe 客户端上可能存在多个用户的配置文件,因此我们需要在“c:\users”文件夹中搜索每个用户配置文件中的defaultlayouts.xml 如果该文件存在于任何要删除的配置文件中,则从网络共享复制layoutmodification.xml 我有脚本编写、powershell和SCCM方面的经验。任何想法、想法、评论和建议都将不胜感激Powershell或cmd-如何在客户端上搜索文件并在网络共享上替换为其他文件?,powershell,cmd,scripting,sccm,Powershell,Cmd,Scripting,Sccm,我们希望在升级到Windows 10 Pro v时替换所有配置文件的defaultlayouts.xml。1607这将在SCCM现场范围内完成。我们已经配置了新的layoutmodification.xml并准备好进行部署,但是,由于客户端计算机上用户的变化,我们很难将其推送到所有配置文件中。部署到“默认”配置文件时没有问题 defaultlayouts.xml位于此处:C:\Users\johndoe\AppData\Local\Microsoft\Windows\Shell 变量将是john
谢谢大家! 您可以在用户名部分的路径中使用通配符,它将搜索所有可用的用户。所以,你可以这样做:
gci C:\Users\*\AppData\Local\Microsoft\Windows\shell\defaultlayouts.xml | % {
move $_.fullname "$($_.fullname)_bak"
copy sourcelocation $_.fullname
#alternatively to copy, you could do something like call a download if it's stored on a intranet site for example
}
在C:\Users中查找所有defaultlayouts.xml文件。然后删除每个项目并从networkshare复制layoutmodification.xml文件
Get-ChildItem C:\Users\*\AppData\Local\Microsoft\Windows\shell\defaultlayouts.xml | ForEach-Object {
Remove-Item $_.FullName
Copy-Item \\server\layoutmodification.xml $(Split-Path $_.FullName)
}
编辑:从C:\Users \-recurse更改为通配符路径->C:\Users*\AppData\Local\Microsoft\Windows\shell\defaultlayouts.xml
感谢Noah Sparks递归C:\users将花费非常长的时间,而不仅仅是在路径的更改部分使用通配符来定位所需的文件。假设它仅通过url
调用WebRequest-Uri www.filestoredhere.com-OutFile$\可用。全名
有其他下载方法文件速度更快,但对于较小的.xml文件,这应该可以