Powershell:用于搜索所有用户配置文件并将最新版本复制到所有用户配置文件的脚本

时间:2015-12-18 04:42:07

标签: powershell xenapp

我希望编写一个powershell脚本来搜索服务器上所有用户配置文件以查找特定文件,通过lastmodifieddate比较文件,然后将最新文件复制到所有用户配置文件。该脚本还将创建该文件的最后三个版本的备份。

我之前为我们的试验环境编写了这个脚本,其中只有两个人正在访问该应用程序(这是针对XenApp),但是用户群现在已经扩展,我想创建脚本的prod版本以涵盖未来生长。

非常感谢任何帮助。谢谢!下面的脚本......

$SRC1 = "\\Server\c$\Users\XXXX1\AppData\Roaming\EMIESiteListManager\sitelist.xml"
$SRC2 = "\\Server\c$\Users\XXXX2\AppData\Roaming\EMIESiteListManager\sitelist.xml"
$SRC3 = "\\Server\c$\Users\XXXX3\AppData\Roaming\EMIESiteListManager\sitelist.xml"
$BKU = "\\storage\IT\EMSLM\Backup"

if ( (get-item $SRC1).LastWriteTime -gt (get-item $SRC2).LastWriteTime )  {Copy-Item $SRC1 $SRC2}
    else {Copy-Item $SRC2 $SRC1}

if ( (get-item $SRC1).LastWriteTime -gt (get-item $SRC3).LastWriteTime )  {Copy-Item $SRC1 $SRC3}
    else {Copy-Item $SRC3 $SRC1}

if ( (get-item $SRC1).LastWriteTime -gt (get-item $SRC2).LastWriteTime )  {Copy-Item $SRC1 $SRC2}


Remove-Item $BKU\sitelist_old_2.xml
Rename-Item $BKU\sitelist_old_1.xml $BKU\sitelist_old_2.xml
Rename-Item $BKU\sitelist.xml $BKU\sitelist_old_1.xml
Copy-Item $SRC1 $BKU

& 'C:\Program Files (x86)\Enterprise Mode Site List Manager\EMIESiteListManager.exe'

Exit

1 个答案:

答案 0 :(得分:0)

这不是一切,但它应该是一个开始的好地方

$users = dir "\\Server\c$\Users" -Directory | select -ExpandProperty fullname
$newest = dir "\\Server\c$\Users\*\AppData\Roaming\EMIESiteListManager\sitelist.xml" | sort lastwritetime -Descending | select -First 1 -ExpandProperty fullname

$files = @()

$users | % {
    $files += $newest -replace [regex]::Escape($_)
}

$newestEnd = $files | sort {$_.length} | select -f 1

$users | % {
    $dest = Join-Path $_ $newestEnd
    copy $newest $dest -force
}