207просмотров
20 декабря 2024 г.
📷 ФотоScore: 228
Задача: Взять список серверов и на каждом из них проверить какие существуют VPN профили в системе. В результирующей таблице вывести имя сервера, имя профиля с его описанием и путь до нужного ProfileID. Как и ранее в этом нам будет помогать PowerShell ISe в режиме администратора. # 1. Взять список серверов из файла
$serverList = Get-Content -Path "C:\Temp\RDS\servers-term.txt" # 2. Создать массив для хранения результатов
$results = @() # 3. Обойти каждый сервер из списка
foreach ($server in $serverList) { try { # Создать удаленное подключение к серверу $session = New-PSSession -ComputerName $server -ErrorAction Stop # Получить список профилей из реестра $profiles = Invoke-Command -Session $session -ScriptBlock { Get-Item "HKLM:SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles" | Get-ChildItem | Select-Object Name, @{Name='ProfileName'; Expression={(Get-ItemProperty $_.PSPath).ProfileName}}, @{Name='Description'; Expression={(Get-ItemProperty $_.PSPath).Description}} } # 4. Обойти каждый профиль и добавить результаты foreach ($profile in $profiles) { $results += [PSCustomObject]@{ ServerName = $server ProfileID = $profile.Name ProfileName = $profile.ProfileName Description = $profile.Description } } # Закрыть сессию Remove-PSSession -Session $session } catch { Write-Host "Ошибка при подключении к серверу $server $_" }
} # Вывести результаты
$results | Sort-Object ProfileName | Format-Table -AutoSize Еще больше скриптов ищите на сайте https://pyatilistnik.org/ #Network #VPN