PowerShell的建筑师回答您链接教程写了blog post。下面的脚本遵循他的一些建议,并对您的需求做出了一些假设。
比方说,用户乔,莎莉,和弗兰克将为3台服务器,TS1,TS2以及TS3常规RDP连接。乔的工作站叫做CLTCOMP1,莎莉的是CLTCOMP2,弗兰克是CLTCOMP3。该脚本假设用户登录到服务器和工作站与他们的域帐户,并创建输出文件名为targetServer-username.rdp,然后将它们复制到每个工作站用户的文档文件夹。 Copy假定客户端工作站运行Vista或更高版本,并且您可以以UNC路径的形式查看并写入该目标。为XP客户端调整$ destPath会很简单。从您的教程中,为了简单起见,我省略了关于屏幕分辨率和子文件夹的逻辑。如果需要的话,该逻辑可能可以在没有太多麻烦的情况下重新加入。
从rdpList.csv脚本导入的内容是这样的:
USERNAME,COMP
joe,CLTCOMP1
sally,CLTCOMP2
frank,CLTCOMP3
这里的脚本:
$targetServers = "TS1","TS2","TS3"
$resWidth = 1024
$resHgt = 768
$domain = "DOMAIN"
#####################
$hereString = @"
audiomode:i:2
authentication level:i:0
autoreconnection enabled:i:1
bitmapcachepersistenable:i:1
compression:i:1
disable cursor setting:i:0
disable full window drag:i:1
disable menu anims:i:1
disable themes:i:1
disable wallpaper:i:1
displayconnectionbar:i:1
keyboardhook:i:2
redirectclipboard:i:1
redirectcomports:i:0
redirectdrives:i:0
redirectprinters:i:0
redirectsmartcards:i:0
session bpp:i:16
prompt for credentials:i:0
promptcredentialonce:i:1
"@
$list = import-csv rdpList.csv
forEach ($ts in $targetServers) {
forEach ($item in $list) {
$out = @()
$out += "full address:s:" + $ts
$out += "screen mode id:i:1"
$out += "desktopwidth:i:" + $resWidth
$out += "desktopheight:i:" + $resHgt
$out += "username:s:" + $domain + "\" + $item.username
$out += $hereString
$outFileName = ".\" + $ts + "-" + $item.username + ".rdp"
$out | out-file $outFileName
$destPath = "\\" + $item.comp + "\c$\users\" + $item.username + "\documents\"
copy-item $outFileName $destPath
} #closes foreach item
} #closes foreach ts