A rasdial azt jelzi, hogy csatlakozva. Mikor kész valójában a hálózat?
A 0 kilépési kód azt jelenti, hogy a tárcsázás befejeződött, nem azt, hogy a fájlmegosztás válaszol. Rögzítse a natív eredményt, majd vizsgálja meg az erőforrást, amelytől a feladat függ.
Az a szkript, amely megnyitja a VPN ablakát, majd tíz másodpercet alszik, találgat, és a találgatás mindkét irányban hibás: vagy a kopírozást kezdi el, mielőtt az alagút használható, vagy akkor vár, amikor a munka már elkezdődhetett volna. Egyik eredmény sem mondja meg, befejeződött-e a hitelesítés. Használja magának a parancsnak az eredményét, majd tegyen fel a szolgáltatásnak egy kérdést, amelyre valóban tud válaszolni. A két lépés sorrendje maga a teljes tervezés.
Mit jelent valójában a parancs
Egy natív Windows-profilhoz, amelyet a telepített parancssori eszköz megért, a rasdial.exe kiválaszt egy elnevezett bejegyzést, és visszaadja a folyamat kilépési kódját. Ez a kód a tárcsázási kísérletet írja le: a nulla azt jelenti, hogy a kapcsolat létrejött ahhoz a profilhoz, a nem nulla pedig azt, hogy egy általa megjelölt szakaszban meghiúsult. Egy réteg eredményeként olvassa, ne a feladat eredményeként.
Az eredmény semmit sem mond a címkiosztásról, a privát DNS-ről, a hozzáadott útvonalakról vagy egy adott kiszolgáló elérésének engedélyéről. Mindez sikeres tárcsázás után történik, és bármelyikük még mindig hibás lehet. Ez a rés az oka annak, hogy a csatlakozva ikon és a sikertelen másolás olyan gyakran jelenik meg együtt.
Rögzítse az eredményt, mielőtt bármi más fut
Kezdje annak megerősítésével, hogy a profil ahhoz a fiókhoz létezik, amely a feladatot futtatja, nem csak ahhoz, amellyel tesztel:
Get-VpnConnection -Name "Contoso-Office"
Get-VpnConnection -Name "Contoso-Office" -AllUserConnection
Ezután tárcsázzon, és azonnal olvassa el a kódot. A PowerShell csak a következő külső parancs futásáig őrzi a natív eredményt a $LASTEXITCODE változóban, így egy tévedésből oda került ping a tárcsázás és az ellenőrzés között megsemmisíti az olvasni kívánt értéket. Először rendelje saját változójához, és csak utána döntse el, mit tegyen.
& rasdial.exe "Contoso-Office"
$dial = $LASTEXITCODE
if ($dial -ne 0) { throw "rasdial failed with $dial" }
Naplózza a kódot a nem titkos hibaüzenettel együtt, mert a hiányzó bejegyzés, az elutasított hitelesítő adatok és az időtúllépés különböző válaszokat igényel. A táblázat a gyakori eredményeket a következő lépéshez rendeli.
| Result | What it indicates | Next step |
|---|---|---|
| 0 | The dial completed | Probe the resource, do not start writing yet |
| 691 | The credential or authentication method was rejected | Fix the account or method, do not retry in a loop |
| 623 | The named entry was not found | Fix the profile name or its scope |
| Other non-zero | Transport, timeout or adapter failure | Read the message, then check the path |
A készenlét az erőforrás, nem az alagút
Ha a tárcsázás sikerül, vizsgálja meg azt, amire a feladatnak szüksége van. Egy megosztás, egy API-végpont vagy egy adatbázisport jobb készenléti próba, mint egy nyilvános webhely, mert a nyilvános hely bármely működő útvonalon válaszol, és semmit sem bizonyít a privát útvonalról. Válassza azt a próbát, amelytől maga az alkalmazás függ. A sikeres TCP-kapcsolat azt mondja, hogy az útválasztás és a szűrés nyitva van, és az első írásnak nagyrészt erre van szüksége:
Test-NetConnection -ComputerName files.contoso.example -Port 445
Korlátozza a kísérleteket, és jegyezze fel, melyik szakasz hibázott. Az elutasított hitelesítő adatoknak le kell állítaniuk a szkriptet, nem pedig újrapróbálkozási ciklust táplálniuk; a még meg nem jelent DNS-név néhány rövid újrapróbálkozást érdemel; a soha nem nyíló port az ügyfél feletti útválasztási vagy házirend-probléma.
Ahol a kapcsolat már a feladat kezdete előtt létezett, hagyja békén. Egy olyan munkamenet bontása, amelyet nem Ön nyitott, megzavarja a felhasználó más munkáját, ezért jegyezze fel, kié a munkamenet, és milyen lezárás megfelelő.
Szűkítse a profilt a feladatot futtató fiókra
Az ütemezett feladat a saját identitása és munkamenete alatt fut, és egy asztalán működő profil ott láthatatlan lehet. Ismételje meg a láthatósági ellenőrzést és a tárcsázást a feladat fiókja alatt, mielőtt megbízik az ütemezésben. Tartsa a jelszót távol a parancssortól is: az argumentumok más folyamatok számára láthatók, és gyakran naplókba kerülnek.
Ha az üzembe helyezés böngészős kérést, intelligens kártya érintését vagy MFA-jóváhagyást igényel, ez az interakció a tervezés része, és nem automatizálható billentyűleütések szimulálásával. Használja az adott esethez támogatott klienst, és hagyja, hogy megtörténjen az emberi lépés.
A végleges szkript formája rövid marad: ellenőrizze a profilt, tárcsázzon, olvassa el a kódot, vizsgálja meg az erőforrást, majd kezdje el a munkát. Minden lépés egy olyan kérdésre válaszol, amelyre az előző nem tudott, és egyik sem alvásra támaszkodik.