Sinasabi ng rasdial na «konektado». Kailan talaga handa ang network?
Ang exit code 0 ay nangangahulugang natapos ang dial, hindi na sumasagot ang file share. Habulin ang native na resulta, pagkatapos ay subukan ang mapagkukunan na pinagkakatiwalaan ng trabaho.
Ang script na nagbubukas ng VPN window at pagkatapos ay natutulog nang sampung segundo ay nanghuhula, at mali ang hula sa dalawang direksyon: sinisimulan nito ang pagkopya bago pa magamit ang tunnel, o naghihintay pagkatapos na sana ay nakapagsimula na ang trabaho. Wala sa dalawang resulta ang nagsasabi kung natapos na ang pagpapatunay. Gamitin ang resulta ng utos mismo, pagkatapos ay tanungin ang serbisyo ng tanong na talagang masasagot nito. Ang pagkakasunod-sunod ng dalawang hakbang na iyon ang buong disenyo.
Ano talaga ang iniuulat ng utos
Para sa isang native na profile ng Windows na nauunawaan ng naka-install na kasangkapan sa command line, ang rasdial.exe ay nag-dial ng pinangalanang entry at nagbabalik ng exit code ng proseso. Inilalarawan ng code na iyon ang pagtatangkang mag-dial: ang zero ay nangangahulugang naitatag ang koneksyon para sa profile na iyon, at ang hindi zero ay nangangahulugang nabigo ito sa isang yugtong tinutukoy ng code. Basahin ito bilang resulta ng isang patong, hindi ng buong trabaho.
Walang sinasabi ang resulta tungkol sa pagtatalaga ng address, pribadong DNS, mga idinagdag na ruta o ang pahintulot na maabot ang isang partikular na server. Nangyayari ang lahat ng iyon pagkatapos ng matagumpay na dial, at maaaring mali pa rin ang alinman sa mga ito. Ang agwat na iyon ang dahilan kung bakit madalas magkasama ang isang konektadong icon at isang nabigong pagkopya.
Habulin ang resulta bago tumakbo ang anupaman
Magsimula sa pagtiyak na umiiral ang profile para sa account na magpapatakbo ng trabaho, hindi lamang para sa account na iyong sinusubukan:
Get-VpnConnection -Name "Contoso-Office"
Get-VpnConnection -Name "Contoso-Office" -AllUserConnection
Pagkatapos ay mag-dial at basahin agad ang code. Itinatago ng PowerShell ang native na resulta sa $LASTEXITCODE hanggang sa tumakbo ang susunod na panlabas na utos, kaya ang isang naligaw na ping sa pagitan ng dial at pagsusuri ay sisira sa halagang gusto mong basahin. Italaga muna ito sa sarili mong variable, pagkatapos ay magpasya kung ano ang gagawin.
& rasdial.exe "Contoso-Office"
$dial = $LASTEXITCODE
if ($dial -ne 0) { throw "rasdial failed with $dial" }
I-log ang code kasama ang tekstong error na hindi lihim, dahil ang kulang na entry, tinanggihang kredensyal at pagtatapos ng oras ay nangangailangan ng magkaibang tugon. Iniugnay ng talahanayan ang mga karaniwang resulta sa susunod na aksyon.
| 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 |
Ang kahandaan ay ang mapagkukunan, hindi ang tunnel
Kapag nagtagumpay ang dial, subukan ang kailangan ng trabaho. Ang isang share, endpoint ng API o port ng database ay mas mahusay na pagsubok ng kahandaan kaysa sa pampublikong website, dahil ang pampublikong site ay sumasagot sa anumang gumaganang landas at walang pinatutunayan tungkol sa pribado. Piliin ang pagsubok na mismong pinagkakatiwalaan ng aplikasyon. Ang matagumpay na koneksyon ng TCP ay nagsasabi na bukas ang pagruruta at pagsasala, at iyon ang karamihan ng kailangan ng unang pagsulat:
Test-NetConnection -ComputerName files.contoso.example -Port 445
Limitahan ang mga pagtatangka at itala kung aling yugto ang nabigo. Dapat ihinto ng tinanggihang kredensyal ang script sa halip na pakainin ang isang loop ng muling pagtatangka; ang isang pangalan ng DNS na hindi pa lumilitaw ay karapat-dapat sa ilang maikling muling pagtatangka; ang isang port na hindi kailanman bumubukas ay problema sa pagruruta o patakaran sa itaas ng kliyente.
Kung umiral na ang koneksyon bago magsimula ang trabaho, iwanan ito. Ang pagdiskonekta ng sesyon na hindi mo binuksan ay nakakagambala sa iba pang trabaho ng gumagamit, kaya itala kung kanino ang sesyon at kung aling pagtatapos ang angkop.
Limitahan ang profile sa account na nagpapatakbo ng trabaho
Ang naka-iskedyul na gawain ay tumatakbo sa ilalim ng sarili nitong pagkakakilanlan at sesyon, at ang isang profile na gumagana sa iyong desktop ay maaaring hindi makita doon. Patakbuhin muli ang pagsusuri ng kakayahang makita at ang dial sa ilalim ng account ng gawain bago magtiwala sa iskedyul. Ilayo rin ang password sa command line: ang mga argumento ay nakikita ng iba pang proseso at madalas na napupunta sa mga log.
Kung ang pag-deploy ay nangangailangan ng prompt sa browser, pagpindot ng smart card o pag-apruba ng MFA, ang interaksyon na iyon ay bahagi ng disenyo at hindi maaaring gawing awtomatiko sa pamamagitan ng paggaya ng mga pagpindot sa key. Gamitin ang sinusuportahang kliyente para sa kasong iyon at hayaan ang hakbang ng tao na mangyari.
Ang hugis ng huling script ay nananatiling maikli: suriin ang profile, mag-dial, basahin ang code, subukan ang mapagkukunan, pagkatapos ay simulan ang trabaho. Sinasagot ng bawat hakbang ang tanong na hindi kayang sagutin ng nauna, at wala sa kanila ang umaasa sa pagtulog.