bonjour à tous,
voila je souhaite mapper une imprimante par défaut sous RDS j'ai créer un groupe dans lequel je retrouve les pcs qui doivent avoir l'imprimante par défaut.
exemple: imprimante imp-test
group: imp_test dans lequel il y a des pcs
lorsque je me connecte en rds je souhaite retrouver cette imprimante.
idée: récupérer la valeur de %clientname% et voir si elle est membre du groupe.
j'ai trouvé cela:
Import-Module PSTerminalServices
$result = Get-TSSession -Filter {$_.Username -like [Environment]::Username} | Select-Object ClientName -expandproperty ClientName
$printServer = "printerserver"
if ($result.contains('IEC')) {
$printer = New-Object -ComObject WScript.Network
$printer.AddWindowsPrinterConnection($printServer + "printername")
$printer.SetDefaultPrinter($printServer + "printername")
et ceci
function GetLdapPath ($mymachine) {
$dom = [ADSI]"LDAP://OU=Computers,DC=domain,DC=local"
$filter = "(&(cn="+ $mymachine +"))"
$ds = new-object System.DirectoryServices.DirectorySearcher($dom,$filter)
$result = $ds.Findall()
$myreturn = $result.get_Item(0).Path
return $myreturn
}
function GetGroups ($mymachine) {
$mygroup = @()
$Machines = [ADSI](""+(GetLdapPath($mymachine))+"")
$Groups = $Machines.memberOf
foreach($group in $groups){
$strGroup = $group.split(',')[0]
$ThisGroup = $strGroup.split('=')[1]
$mygroup += $ThisGroup
}
return $mygroup
}
function MapPrinters ($printers) {
$first = 0
foreach ($printer in $printers) {
$PrinterPath = "PrintSVR001$printer"
$net = new-Object -com WScript.Network
$net.AddWindowsPrinterConnection($PrinterPath)
if ($first -eq 0) {
$net.SetDefaultPrinter($PrinterPath)
}
$first += 1
}
}
avez vous une idée pour l'adapter à mon cas merci pour votre aide
ou sinon un script qui récupère les imprimantes du poste en local pour les mapper dans la session rds d'un utilisateur
merci