vpncli -s kontra GUI: logga in i Cisco Secure Client
vpncli -s läser en förberedd svarfil, medan GUI läser en människa. Jämför när skriptet lönar sig, vad filen behöver och hur du bevisar det.
Cisco Secure Client ger två sätt att svara på samma inloggningsfrågor: en människa som skriver i vpnui.exe, eller ett skript som matar svar till vpncli.exe via standardinmatning med -s. Det andra gör schemalagda anslutningar möjliga utan att skrapa GUI-skärmen, och det förvandlar också en inloggning till en fil som måste skyddas som en autentiseringsuppgift. Vilket du vill ha beror på om det sitter en människa vid maskinen och hur ofta lösenordet roterar. Inget av alternativen ändrar vad gatewayen frågar efter, bara vem som svarar.
Båda vägarna slutar i samma tunnel, så jämförelsen handlar om drift, inte protokoll.
Två sätt att svara på samma frågor
GUI-vägen är interaktiv av design: klienten frågar, någon svarar och sessionen lever så länge den personen lämnar den ifred. Det är rätt val på en bärbar dator som en människa använder, eftersom frågorna anpassar sig efter gatewayens autentiseringsmetod och ingen behöver hålla ett lösenord i klartext på disken.
Skriptvägen passar för en kiosk, en labbmaskin eller en schemalagd uppgift där ingen finns för att skriva. Bytet är tydligt: du accepterar en autentiseringsfil på disken i utbyte mot en obevakad anslutning. Om gatewayen erbjuder certifikat- eller SAML-autentisering är bytet oftast inte värt det, eftersom filen bara finns för att svara på frågor som en starkare metod skulle undvika.
Blanda inte de två på samma maskin samtidigt. Kommandoraden och den grafiska klienten konkurrerar om samma sessionstillstånd, och det är nästa avsnitts problem.
Vad svarfilen måste innehålla
Klienten frågar i ordning — gateway, ibland ett gruppval, användarnamn, lösenord och varje bannerbekräftelse. En fil som svarar på allt detta ser ut så här, med riktiga värden insatta:
connect vpn.example.com
MyGroup
alice
correct-horse-battery
yDet pålitliga sättet att bygga den filen är att ansluta en gång för hand, skriva ned varje rad du skriver och varje Enter du trycker på, och sedan återge exakt den sekvensen. Installationer som lagrar gruppen och användarnamnet i profilen kan behöva tomma rader där de frågorna inte längre visas, och den sista raden behöver fortfarande sin egen radbrytning. En fil som saknar en rad hänger sig oftast vid den sista frågan i stället för att misslyckas med ett tydligt fel, och det är därför nätverket får skulden. Jämför filen med din anteckning två gånger, en gång för ordningen och en gång för de tomma raderna.
Håll filen utanför varje synkroniserad mapp och läsbar bara för det konto som kör uppgiften. Lösenordet är klartext, så filen är en autentiseringsuppgift: inget repository, ingen delad disk, ingen bilaga i ett ärende. Klienten varnar dig inte för något av detta.
Varför GUI måste bort först
Börja skriptet med att avsluta GUI-processen och kör sedan CLI från dess egen installationsmapp, eftersom både arbetsmappen och klientversionen spelar roll. Ett illustrativt omslag:
@echo off
taskkill /IM vpnui.exe /F >nul 2>&1
cd /d "%PROGRAMFILES(x86)%\Cisco\Cisco Secure Client"
vpncli.exe -s < C:\secure\login.txtUtgångskoder är inte en pålitlig framgångssignal här. Klienten skriver ut sin framdrift och håller tunneln i en separat process, så läs utdata efter raden med anslutningsstatus och börja först då arbetet som beror av VPN.
Om du hoppar över att döda GUI kan skriptet se ut att köra medan den befintliga sessionen stannar i det tillstånd användaren lämnade den i. Det felet ser intermittent ut, och det är precis den sorts bugg som överlever en vecka av gissningar.
Bekräfta en session, anta den inte
När skriptet återvänder, kontrollera något som bara finns inne i tunneln — en intern värd eller ett DNS-suffix som bara företagets resolver svarar på. Läs också raden med anslutningsstatus i klientens utdata och behandla allt annat som ett fel i stället för en långsam framgång. Att köra filen igen medan en session redan är uppe kan lämna klienten halvkonfigurerad, så antingen koppla från först eller hoppa över inloggningen när sessionen finns.
Bestäm sedan vem som äger återanslutningen. En loop som pingar en intern adress och kör inloggningen igen kan hålla en kiosk online i månader, och den kan också låsa ett konto första gången lösenordet roterar. Begränsa antalet försök, larma när det överskrids och låt identitetsteamet rotera filen i stället för att låta ett inaktuellt lösenord försöka igen tills ett lås inträffar.
Den äldre vpnclient.exe är inte samma verktyg
Samma automatisering förekommer under ett äldre namn, och de två är inte utbytbara. Den avvecklade Cisco IPsec-klienten använde vpnclient.exe med inline-argument som ett connect-verb, ett profilnamn, en användare och ett lösenord på en enda kommandorad; vpncli.exe förväntar sig en sekvens av frågor på standardinmatning med -s. Att kopiera ett gammalt forumskript till en nutida maskin ger därför ett kommando som körs, inte gör något synligt och får gatewayen skulden.
Innan du redigerar några argument, kontrollera vilken klient som är installerad och vilken skriptet faktiskt anropar. Namnskillnaden är liten nog att missas i en schemalagd uppgift, och det är det första som måste verifieras när ett ärvt skript slutar fungera efter en uppgradering.