Хорошо же, когда пользователя заводишь, он заходит, а у него на панели задач уже нужные ярлыки закреплены? Причем у кого то есть конкретные ярлыки, у кого то нет? Например как убрать управление сервером только у пользователей, но оставить у администраторов? Это очень проблемная задача.
Создаем ярлыки в каталоге C:\Users\Public\Desktop ну или в другом каталоге если не хотите их видеть на раб столе а также для реализации ограничения (как total comander выше которого нет на раб столе у пользователей).
Далее вам нужно создать политику (либо иным способом запускаете скрипт при запуске под пользователем). Т.к. нам нужно только на конкретном сервере, то нужно указать «Управление групповой политикой Режим обработки замыкания пользовательской групповой политики» = слияние (т.к. политика запускается под пользователем но с проверкой по компьютеру)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
# Скрипт для добавления/удаления иконок с панели задач с разграничением пользователей <# .SYNOPSIS This function are used to pin and unpin programs from the taskbar and Start-menu. .EXAMPLE Set-PinnedApplication -Action PinToTaskbar -FilePath "C:\WINDOWS\system32\notepad.exe" .EXAMPLE gcm notepad,explorer | Set-PinnedApplication -Action PinToTaskbar -Verbose .NOTES Tested on platforms: Windows 7, Windows Server 2008 R2, Windows 8.1, Windows 10 #> function Set-PinnedApplication { [CmdletBinding()] param( # Action to take: PinToTaskbar (default), PinToStartMenu, UnPinFromTaskbar, UnPinFromStartMenu [ValidateSet('PinToTaskbar', 'PinToStartMenu', 'UnPinFromTaskbar', 'UnPinFromStartMenu')] [string]$Action='PinToTaskbar', # Path to executable for the action [Parameter(Mandatory=$true, ValueFromPipeline=$true, ValueFrompiPelinebyPropertyName=$true)] [Alias('Path')] [string[]]$FilePath ) begin { function InvokeVerb ([string]$FilePath, $verb) { $verb = $verb.Replace("&","") $path = split-path $FilePath $shell = new-object -com "Shell.Application" $folder = $shell.Namespace($path) $item = $folder.Parsename((split-path $FilePath -leaf)) $itemVerb = $item.Verbs() | ? {$_.Name.Replace("&","") -eq $verb} if($itemVerb -eq $null){ # throw "Verb $verb not found." } else { $itemVerb.DoIt() } } function GetVerb ($verbId) { try { $t = [type]"CosmosKey.Util.MuiHelper" } catch { $def = @" [DllImport("user32.dll")] public static extern int LoadString(IntPtr h,uint id, System.Text.StringBuilder sb,int maxBuffer); [DllImport("kernel32.dll")] public static extern IntPtr LoadLibrary(string s); "@ Add-Type -MemberDefinition $def -name MuiHelper -namespace CosmosKey.Util } if($global:CosmosKey_Utils_MuiHelper_Shell32 -eq $null){ $global:CosmosKey_Utils_MuiHelper_Shell32 = [CosmosKey.Util.MuiHelper]::LoadLibrary("shell32.dll") } $maxVerbLength = 255 $verbBuilder = new-object Text.StringBuilder "",$maxVerbLength [void][CosmosKey.Util.MuiHelper]::LoadString($CosmosKey_Utils_MuiHelper_Shell32, $verbId, $verbBuilder, $maxVerbLength) return $verbBuilder.ToString() } $verbs = @{ "PintoStartMenu" = 5381 "UnpinfromStartMenu" = 5382 "PintoTaskbar" = 5386 "UnpinfromTaskbar" = 5387 } } process { $FilePath | % { if (!(Test-Path $_)) {Write-Verbose "Path doesn't exist: $_"; return} Write-Verbose "$Action for $_" InvokeVerb -FilePath $_ -Verb $(GetVerb -VerbId $verbs.$action) } } } If (([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole(` [Security.Principal.WindowsBuiltInRole] "Administrator")) { Write-Warning "У вас права администратора" # Подключаем управление сервером gcm ServerManager | Set-PinnedApplication -Action PintoTaskbar -Verbose # Подключаем PowerShell gcm powershell | Set-PinnedApplication -Action PintoTaskbar -Verbose # Подключаем тотал командер Set-PinnedApplication -Action PinToTaskbar -FilePath "c:\Users\AdminsDesktop\Total Commander.lnk" } else { Write-Warning "У вас НЕТ прав администратора" # отключаем управление сервером gcm ServerManager | Set-PinnedApplication -Action UnpinfromTaskbar -Verbose # отключаем PowerShell gcm powershell | Set-PinnedApplication -Action UnpinfromTaskbar -Verbose # отключаем Totalcmd Set-PinnedApplication -Action UnpinfromTaskbar -FilePath "c:\Users\AdminsDesktop\Total Commander.lnk" } # Подключаем 1ску 7.7 Set-PinnedApplication -Action PinToTaskbar -FilePath "c:\Users\Public\Desktop\1С Предприятие 7.7.lnk" # Подключаем 1ску 8.3 Set-PinnedApplication -Action PinToTaskbar -FilePath "c:\Users\Public\Desktop\1C Предприятие 8.3.lnk" # Подключаем проводник Set-PinnedApplication -Action PinToTaskbar -FilePath "c:\Users\Public\Desktop\Проводник.lnk" |