Import-VpnProfile degan cmdlet yo‘q, va eng o‘xshashi Add-VpnConnection hech qachon .ovpn yoki .conf faylini o‘qimaydi. U siz bergan parametrlardan mahalliy Windows profilini yig‘adi, shuning uchun bu yerdagi birinchi tekshiruv nuqtasi buyruq satri emas, fayl formati. Agar shlyuz SSTP, IKEv2, L2TP/IPsec yoki PPTP bilan gaplashsa, Windows profilga ega bo‘la oladi va ro‘yxatning qolgan qismi amal qiladi. Agar sizga OpenVPN yoki WireGuard fayli berilgan bo‘lsa, birinchi qadamda to‘xtang: o‘sha mijozlar o‘z importchilariga ega.

1-qadam: Windows haqiqatan ham ega bo‘la oladigan profilni tasdiqlang

Boshqa hamma narsadan oldin mashinada Get-Command -Module VpnClient buyrug‘ini bajaring. Windows 10, Windows 11 va Server 2016 yoki undan keyingi versiyalar bu modul bilan keladi; u bo‘lmasa, hech qanday ko‘chirilgan skript bu xostni mahalliy profilni qabul qilishga majbur qilmaydi. Muhim cmdletlar — Add-VpnConnection, Get-VpnConnection va Remove-VpnConnection, va parametrlar ro‘yxati Add-VpnConnection ma’lumotnomasida bir marta to‘liq o‘qishga arziydi.

Mahalliy degani tunnelni Windows VPN steki tugatadi. Bu IKEv2 (ko‘pincha mashina sertifikati bilan), ichida foydalanuvchi yoki sertifikat autentifikatsiyasi bo‘lgan TLS bo‘lmish SSTP va oldindan baham ko‘rilgan kalit bilan L2TP/IPsecni qamrab oladi. .ovpn fayli OpenVPN skripti, Windows ulanishi emas: u Windows steki tasavvur ham qila olmaydigan remote, cipher yoki tls-auth kabi direktivalarni olib yuradi. WireGuard .conf ham PrivateKey va AllowedIPs bilan xuddi shu voqea; birini ikkinchisiga aylantirish parametr tanlovi emas, boshqa tunnel amalga oshirilishi.

Uchinchi shox ham bor. Agar administrator sizga VPNv2 CSP XML hujjati yoki Intune profilini bersa, bu MDM yo‘li, uni Add-VpnConnection emas, ta’minlash steki qo‘llaydi. Bu tugun nomlarini PowerShell parametrlariga aylantirmang; buning o‘rniga XMLni qaysi mexanizm qo‘llashini so‘rang.

2-qadam: Tunnel turini autentifikatsiya usuli bilan juftlashtiring

-TunnelType va -AuthenticationMethod alohida parametrlar, shlyuz esa faqat kombinatsiyaga qaraydi. Bittasi to‘g‘ri, ikkinchisi xato bo‘lsa, hech narsaga ulanmaydigan yoki tunnel allaqachon ko‘tarilgan holda osilib qoladigan profil olasiz. Boshqa xizmat uchun tanlangan standart qiymatga ishonish o‘rniga ikkalasini ham aniq belgilang.

  • IKEv2 va MachineCertificate: mijoz kompyuter sertifikatini ko‘rsatadi; qo‘shimcha ravishda -EncryptionLevel Required belgilang.
  • SSTP va Eap: avval TLS tunneli, so‘ng PEAP/MSCHAPv2 yoki EAP ichidagi sertifikat. Bu 3-qadamdagi XMLni talab qiladi.
  • SSTP, L2TP yoki PPTP va MSChapv2, Chap yoki Pap: oddiy foydalanuvchi nomi va parol, EAP blobi yo‘q.
  • L2TP va MSChapv2 hamda -Lt2pPsk: PSK IPsec yarmini, foydalanuvchi PPPni qoplaydi; ikkalasi ham serverga mos kelishi kerak.

splat qiymatlarni bir joyda saqlaydi:

$p = @{
  Name                 = "Corp IKEv2"
  ServerAddress        = "vpn.example.com"
  TunnelType           = "Ikev2"
  AuthenticationMethod = "MachineCertificate"
  EncryptionLevel      = "Required"
  SplitTunneling       = $false
  DnsSuffix            = "corp.example.com"
}
Add-VpnConnection @p -PassThru

-PassThru Windows hozir yozgan obyektni qaytaradi, shuning uchun ikkinchi chaqiruvsiz uni ko‘zdan kechirishingiz mumkin. Nom allaqachon mavjud bo‘lsa, cmdlet ishlashdan bosh tortadi; -Force uni ustidan yozadi, bu esa ishlab chiqarish noutbukida noto‘g‘ri refleks, chunki kimdir qo‘lda sozlagan narsani jimgina tashlab yuboradi.

3-qadam: Hisob ma’lumotlari materialini to‘g‘ri topshiring

Parollar, oldindan baham ko‘rilgan kalitlar va EAP bloblari bu skriptlar odatda sinadigan joy. -EapConfigXmlStream yo‘lni emas, XmlDocumentni xohlaydi, shuning uchun avval faylni o‘qing va turini o‘zgartiring. Satr uzatish sxema muammosiga o‘xshab eshitiladigan konversiya xatosini keltirib chiqaradi va odamlarni hech qachon xato bo‘lmagan XMLni qayta yozishga undaydi.

$eap = [xml](Get-Content -Raw .\peap-mschapv2.xml)
Add-VpnConnection -Name "Corp SSTP" -ServerAddress "sstp.example.com" `
  -TunnelType Sstp -AuthenticationMethod Eap `
  -EapConfigXmlStream $eap -EncryptionLevel Required

Bu XMLni blog parchasidan o‘ylab topish kerak emas. U EAP usuli turini va ichki autentifikatsiyani nomlaydi, shlyuz ikkalasini ham o‘z siyosati bilan solishtiradi. Mos kelmaydigan ichki usul TLS qo‘l siqish tugagandan keyin muvaffaqiyatsiz bo‘ladi, bu esa aynan noto‘g‘ri parolga o‘xshaydi, lekin unday emas. XMLni shlyuzni yuritayotgan kishidan oling yoki allaqachon ishlayotgan profildan eksport qiling.

IKEv2 uchun sertifikat yarmi ombordagi qidiruv. -MachineCertificateIssuerFilter sertifikat obyektini oladi va Windows undan LocalMachine\My ichida yaroqli mijoz sertifikatini topish uchun foydalanadi. Sertifikatga maxfiy kalit va server ishonadigan zanjir kerak; birortasi bo‘lmasa, autentifikatsiya foydali tafsilotsiz muvaffaqiyatsiz bo‘ladi, shuning uchun avval omborni tekshiring:

Get-ChildItem Cert:\LocalMachine\My |
  Where-Object { $_.HasPrivateKey -and $_.NotAfter -gt (Get-Date) } |
  Select-Object Subject, Issuer, Thumbprint, NotAfter

Sirlarni skript faylidan tashqarida saqlang. Buyruq satrida uzatilgan yoki .ps1 ichiga singdirilgan PSK transkriptlarga, saqlangan sessiyalarga va umumiy repozitoriylarga tushadi, -RememberCredential esa foydalanuvchi hisob ma’lumotlarini keyinroq uchun keshlab, bir martalik sinovni doimiy ruxsatga aylantiradi.

4-qadam: Qamrovni birinchi ishga tushirishdan oldin hal qiling

Xuddi shu cmdlet ikki xil telefon kitobiga yozadi. -AllUserConnection bo‘lmasa, profil sizga tegishli va %APPDATA%\Microsoft\Network\Connections\Pbk\rasphone.pbk ichida yashaydi. U bilan, ko‘tarilgan buyruq satridan, profilni har bir hisob ko‘radi, kirish ekrani ham, va u %ProgramData%\Microsoft\Network\Connections\Pbk\rasphone.pbk ga tushadi.

Qamrov kosmetika emas. Barcha foydalanuvchi profili — xizmat hisobi, rejalashtirilgan vazifa yoki kirishdan oldingi stsenariy foydalana oladigan narsa; bitta foydalanuvchi profili bu uchtasi uchun ko‘rinmas. Obyektlar ham boshqacha o‘qiladi: Get-VpnConnection joriy foydalanuvchi yozuvlarini sanaydi, Get-VpnConnection -AllUserConnection mashina bo‘ylab bo‘lganlarini sanaydi. Hozir bittasini tanlang, keyingi o‘zgarishni esa tahrirlash emas, o‘chirib qayta yaratish deb qabul qiling:

# elevated prompt
Remove-VpnConnection -Name "Corp IKEv2" -Force
Add-VpnConnection -Name "Corp IKEv2" -ServerAddress "vpn.example.com" `
  -TunnelType Ikev2 -AuthenticationMethod MachineCertificate `
  -EncryptionLevel Required -AllUserConnection

5-qadam: Tunnel aslida nima yetkazib berishi kerakligini sinang

Ulangan belgi tunnel ko‘tarilganini isbotlaydi, boshqa hech narsani emas. Avval buyruq satridan ulaning, shunda xatolar dialog emas, matn bo‘lib keladi, so‘ngra Windows yozib olganini o‘qing:

rasdial "Corp IKEv2"
Get-VpnConnection -Name "Corp IKEv2" |
  Select-Object Name, ServerAddress, TunnelType, ConnectionStatus, SplitTunneling
Get-NetRoute -DestinationPrefix "0.0.0.0/0"

Foydalanuvchilar holat hali ham Ulangan deb turganida xabar beradigan ikki nosozlik — DNS va marshrutlash. Ichki nomni hal qiling va qaysi server javob berganini ko‘ring; -DnsSuffix bo‘lmagan profil mukammal tunnel qurib, baribir har bir intranet qidiruvida muvaffaqiyatsiz bo‘lishi mumkin. So‘ngra standart marshrutga qarang: split tunneling o‘chirilganda eng past metrikali 0.0.0.0/0 marshruti VPN interfeysiga qarashi kerak, yoqilganda esa faqat siz kutgan prefikslar. Ikkalasi ham to‘g‘ri ko‘rinsa-yu trafik baribir o‘lsa, muammo profildan narida, siyosatda yoki shlyuz filtrda.

Ulanish butunlay muvaffaqiyatsiz bo‘lsa, kod qaytish kerak bo‘lgan qadamni toraytiradi:

  • 691: shlyuz hisob ma’lumotlarini rad etdi. Tunnelga emas, 3-qadamga qayting.
  • 809: IKEv2 qo‘l siqish hech qachon tugamadi. UDP 500 va 4500 ni hamda sertifikat ishonchini tekshiring.
  • 789: L2TP/IPsec oldindan baham ko‘rilgan kaliti yo‘q yoki xato.
  • 868: server nomi hal qilinmadi. Profilni tahrirlashdan oldin DNSni tuzating.

Ishlaydigan buyruqni u kodlaydigan sozlamalar yonida saqlang, shunda keyingi odam profilni interfeysdan teskari muhandislik qilish o‘rniga qayta qura oladi. Haqiqatan qayta qurish kerak bo‘lsa, yozuvni o‘chirib, xuddi shu parametrlar bilan qayta yarating; yarim sozlangan profilni yamash eski marshrutlar va autentifikatsiya holatini ortda qoldiradi. Va fayl hech qachon mahalliy bo‘lmagan bo‘lsa, unga egalik qiluvchi mijozga qayting. IKEv2 profili qilib kiydirilgan .ovpn import emas, bu qo‘llab-quvvatlash chiptasi.

O'xshash maqolalar