我正在将多个用户从XP迁移到7,并且他们在当前的PC上都有不同的映射驱动器/位置。将所有数据从旧PC复制到新PC后,我目前正在手动映射其驱动器,这会消耗大量时间。有没有自动化这个过程?
有没有办法在现有的XP机器上运行脚本并在新的Win 7机器上运行相同的脚本来映射所有驱动器?
我正在寻找一个脚本或任何其他方法来自动执行此过程。
感谢。
答案 0 :(得分:0)
您可以为所有用户执行此操作,它至少会告诉您他们拥有的内容。
你可能想要一个中央文件夹,让我们说Mappings,所以试试
净使用> \服务器\映象\%的用户名%_map.txt
或尝试这样的事情 http://www.visualbasicscript.com/List-mapped-drives-on-remote-machine-m28529.aspx
答案 1 :(得分:0)
在您的工作站上运行: (newpcs和oldpcs必须按正确顺序排列,因此oldpc1是newpc1用户的旧PC)
$oldpcs=@("oldpc1", "oldpc2", "oldpc3")
$newpcs = @("newpc1", "newpc2", "newpc3")
$mapping = @{}
for($i=0;$i -lt $oldpcs.Count; $i++){
$mapping.add($oldpcs[$i], $newpcs[$i])
}
foreach ($comp in $oldpcs){
$m = Get-WmiObject win32_systemnetworkconnections -ComputerName $comp
$m | %{
#i know this is not very elegant but whatever
$temp = $_.partcomponent -split "="
$temp = $temp -replace "`"", ""
$temp2= $temp[1] -split " "
$driveletter = $temp2[1] -replace "\(", ""
$driveletter = $driveletter -replace "\)", ""
$path = $temp2[0] -replace "\\\\", "\"
$f = "C:\path\to\folder\" + $mapping.$comp + ".txt"
Add-Content $f "$driveletter;$path"
}
}
然后将具有相应计算机名的文件传送到新计算机并运行以下命令:
$txt = Get-Content "C:\path\to\file\$env:computername.txt"
$txt | % {
$temp = $_ -split ";"
net use $temp[0] $temp[1]
}
请记住,您必须在要映射驱动器的用户的上下文中运行映射脚本
此致
P.S。远程映射网络驱动器是不可能的(我希望被证明是错误的)
您可以创建登录脚本并通过
将其映射到用户