|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Переписать скрипт |
|
PowerShell - Переписать скрипт
|
Новый участник Сообщения: 42 |
Всем привет!
Нужно организовать удалённое подключение через ПО удалённый помощник windows. Политики настроил. Запускается с ярлыка. C:\Windows\System32\msra.exe C:\Windows\System32\msra.exe /offerRA (подключение через указание ip или имени ПК) то что нужно нам) Есть скрипт, помогите пожалуйста его переписать. Сейчас скрипт работает по принципу ввода в поле поиска, по сути своей тоже самое что (msra.exe /offerRA ) с той разницей что сценарий ищет имя в AD. Когда ПК найден, инициируется соединение. Если будет найдено более одного ПК, будет предоставлен список. А хотелось бы что бы при нажатии на поле поиска сразу выводился весь список, который например есть в: SetDN= "OU=Computers,DC=yourdomain,DC=ru" Скрытый текст
[PSHELL]#https://github.com/HeiligerMax
#Licensed under GNU General Public License v3.0 #Get control over the Powershell window Add-Type -Name Window -Namespace Console -MemberDefinition ' [DllImport("Kernel32.dll")] public static extern IntPtr GetConsoleWindow(); [DllImport("user32.dll")] public static extern bool ShowWindow(IntPtr hWnd, Int32 nCmdShow); ' $consolePtr = [Console.Window]::GetConsoleWindow() ### #Add WPF Add-Type -AssemblyName PresentationFramework [xml]$xaml = @" <Window x:Name="Window" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Remote-Assistant" Width="300" WindowStartupLocation="CenterScreen" FontFamily="Microsoft Sans Serif" FontSize="16" SizeToContent="Height" WindowStyle="ToolWindow" ResizeMode="NoResize"> <StackPanel> <ComboBox x:Name="InputField" Margin="5" Padding="5" IsEditable="True" VerticalAlignment="Top" ToolTip="The whole or part of Hostname"/> <Button x:Name="Button" Content="Search and connect" Margin="5" Padding="5" VerticalAlignment="Top" IsDefault="True" ToolTip="Search for the Hostname in AD"/> <TextBox x:Name="OutputField" Margin="5" Padding="5" TextWrapping="Wrap" Text="Ready" HorizontalContentAlignment="Center" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" IsReadOnly="True"/> </StackPanel> </Window> "@ $reader = (New-Object System.Xml.XmlNodeReader $xaml) $window = [Windows.Markup.XamlReader]::Load($reader) ### $InputField = $window.FindName("InputField") $Button = $window.FindName("Button") $OutputField = $window.FindName("OutputField") $Button.Add_Click{(offerra)} ### function offerra{ $Search = $InputField.Text if([string]::IsNullOrWhiteSpace($InputField.Text)){ $OutputField.Text = "No input" return } $OutputField.Text = "Looking for computer" $PC = Get-ADComputer -Filter "Name -like '*$Search*'" | Select-Object -ExpandProperty Name if($PC.Count -gt 1){ $OutputField.Text += "`r`nMore than one computer found" $PC | ForEach-Object{$InputField.Items.Add($_)} $InputField.Text = "Please select a computer" $InputField.IsDropDownOpen = $true return }elseif($null -eq $PC){ $OutputField.Text += "`r`nNo Computer found." $BoxAntwort = [System.Windows.MessageBox]::Show("No computer found!`r`nConnect to $Search anyway?"," ![]() if($BoxAntwort -eq "Yes"){ $OutputField.Text += "`r`Connecting" msra.exe /offerra $Search } $OutputField.Text = "Ready" return } $InputField.Text = "$PC" $OutputField.Text += "`r`nTesting connection" if(Test-NetConnection -ComputerName $PC -InformationLevel Quiet){ $OutputField.Text += "`r`Connecting`r`n" msra.exe /offerra $PC $InputField.Items.Clear() $InputField.Text ="" $OutputField.Text = "Ready" }else{ $OutputField.Text += "`r`n$PC not reachable!" } } ### #Hide Powershell when GUI appears and bring it back if GUI gets closed [void][Console.Window]::ShowWindow($consolePtr, 0) [void]$window.ShowDialog() [void][Console.Window]::ShowWindow($consolePtr, 4) [/PSHELL] Оригинал скрипта: https://github.com/SyntaxOverflow/remote-assistant Вообще, ещё как вариант вижу такую схему, только опять таки не знаю как реализовать. Есть оснаска dsa.msc она же "ADUC" , "Пользователи и компьютеры Active Directory", там же есть наш OU c компьютерами, пр: SetDN= "OU=Computers,DC=yourdomain,DC=ru" Запускаем adsiedit.msc редактирование ADSI и там правим Configuration -> CN=Configuration,DC=<YourDomainName> -> CN=DisplaySpecifiers -> CN=419 Выбираем объект CN=computer-Display Открываем его свойства. Выбираем атрибут adminContextMenu Открываем этот атрибут для редактирования Добавляем новую запись вида: 2, &Remote Assistant, \\dcname.ru\SYSVOL\dcname.ru\scripts\remote-assistant.ps1 Во вновь запущенном ADUC в контекстном меню компьютеров мы увидим пункт Remote Assistant, было бы неплохо передать этому пункту запрос на подключение. |
|
Отправлено: 16:02, 07-12-2022 |
Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать Второй вариант решил так.
Скрытый текст
Const E_ADS_PROPERTY_NOT_FOUND = -2147463155 ' Receive the computer name from Active Directory Users and Computers Set wshArguments = WScript.Arguments Set objComputer = GetObject(wshArguments(0)) ' Launch Windows Remote Assistance (msra) Set wshShell = WScript.CreateObject("WScript.Shell") wshShell.Run "msra /offerRA " & objComputer.CN Set wshShell = Nothing Set objComputer = Nothing Set wshArguments = Nothing Но, хотелось бы и первый вариант тоже решить) |
Отправлено: 16:33, 07-12-2022 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Можно ли переписать этот vbs скрипт в бат скрипт | ufooo000 | Скриптовые языки администрирования Windows | 1 | 07-02-2017 08:52 | |
CMD/BAT - Переписать\дописать скрипт и его адаптация | mixpack | Скриптовые языки администрирования Windows | 0 | 26-10-2015 15:42 | |
Переписать Perl скрипт на PHP | NeoXidant | Вебмастеру | 0 | 22-06-2012 16:15 | |
CMD/BAT - [решено] Нужно переписать скрипт - сделать скрытые папки видимыми | RomanLis | Скриптовые языки администрирования Windows | 11 | 02-06-2012 17:02 | |
Помогите переписать скрипт | Hawk37 | AutoIt | 1 | 28-02-2010 02:14 |
|