Enable-RDP.ps1 + Disable-RDP.ps1

Сейчас понадобилось на нескольких машинках удаленно включить Remote Desktop, а ходить ставить галочки конечно лень🙂 Ну вот и наваял парочку скриптиков на основе вот этого от /\/\O\/\/. Заодно являются примером удаленной работы с реестром.

 

Enable-RDP.ps1
# Массив имен компьютеров (или одно имя) param ([string[]]$ComputerName) # Объединяем имена полученные из параметра с полученными через конвейер ($input) # Делается для того чтобы можно было передать список компьютеров как через # аргументы, так и конвейром: Get-Content computers.txt | .\Enable-RDP.ps1 $ComputerName += @($input) # Для каждого компьютера из массива, выполняем процедуру... foreach ($Comp in $ComputerName) { Write-Verbose "Enabling RDP on $Comp" # Открываем улей (hive) реестра на другом компьютере. $regKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey([Microsoft.Win32.RegistryHive]::LocalMachine, $Comp) # Переходим в нужный ключ. $True подтверждает что открываем на запись. $regKey = $regKey.OpenSubKey("SYSTEM\\CurrentControlSet\\Control\\Terminal Server" ,$True) # Устанавливаем значение fDenyTSConnections равным 0. $regkey.SetValue("fDenyTSConnections",0) # Сохраняем изменения $regKey.flush() # Закрываем ключ $regKey.Close() }

Второй скрипт отличается одной цифрой. Можно было конечно сделать Set-RDP и указывать включение и отключение с помощью аргумента, но мне показалось что Enable/Disable будет красивее и более в духе PowerShell🙂

 

Disable-RDP.ps1
param ([string[]]$ComputerName) $ComputerName += @($input) foreach ($Comp in $ComputerName) { Write-Verbose "Disabling RDP on $Comp" $regKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey([Microsoft.Win32.RegistryHive]::LocalMachine, $Comp) $regKey = $regKey.OpenSubKey("SYSTEM\\CurrentControlSet\\Control\\Terminal Server" ,$True) $regkey.SetValue("fDenyTSConnections",1) $regKey.flush() $regKey.Close() }

Ну и пробуем:

[PS C:\...\Scripts] Get-Content C:\Temp\computers.txt | .\Enable-RDP.ps1 -Verbose ПОДРОБНО: Enabling RDP on pc10 ПОДРОБНО: Enabling RDP on pc4 ПОДРОБНО: Enabling RDP on pc12 [PS C:\...\Scripts] .\Disable-RDP.ps1 pc11 -v ПОДРОБНО: Disabling RDP on pc11
Опубликовано в PowerShell. Комментарии к записи Enable-RDP.ps1 + Disable-RDP.ps1 отключены
%d такие блоггеры, как: