જે સ્ક્રિપ્ટ VPN વિન્ડો ખોલે છે અને પછી દસ સેકન્ડ સૂએ છે તે અનુમાન કરે છે, અને અનુમાન બંને દિશામાં ખોટું છે: તે ટનલ વાપરી શકાય તે પહેલાં કૉપી શરૂ કરે છે, અથવા કામ શરૂ થઈ શક્યું હોત તે પછી પણ રાહ જુએ છે. બંનેમાંથી કોઈ પરિણામ એ નથી કહેતું કે પ્રમાણીકરણ પૂરું થયું છે કે નહીં. આદેશનું પોતાનું પરિણામ વાપરો, પછી સેવાને એવો પ્રશ્ન પૂછો જેનો તે ખરેખર જવાબ આપી શકે. આ બે પગલાંનો ક્રમ એ આખી રચના છે.

આદેશ ખરેખર શું જણાવે છે

ઇન્સ્ટોલ કરેલ કમાન્ડ-લાઇન સાધન સમજે તેવી મૂળ Windows પ્રોફાઇલ માટે, rasdial.exe નામવાળી એન્ટ્રી ડાયલ કરે છે અને પ્રોસેસનો એક્ઝિટ કોડ પાછો આપે છે. તે કોડ ડાયલના પ્રયાસનું વર્ણન કરે છે: શૂન્ય એટલે તે પ્રોફાઇલ માટે કનેક્શન સ્થપાયું, અને શૂન્ય સિવાયનો એટલે કોડ જે તબક્કો દર્શાવે છે ત્યાં તે નિષ્ફળ ગયું. તેને એક સ્તરનું પરિણામ તરીકે વાંચો, કામનું નહીં.

પરિણામ સરનામા ફાળવણી, ખાનગી DNS, ઉમેરાયેલા રૂટ અથવા ચોક્કસ સર્વર સુધી પહોંચવાની પરવાનગી વિશે કંઈ કહેતું નથી. એ બધું સફળ ડાયલ પછી થાય છે, અને તેમાંથી કોઈપણ હજુ ખોટું હોઈ શકે. આ જ ખાલી જગ્યા એ કારણ છે કે કનેક્ટેડ આઇકન અને નિષ્ફળ કૉપી આટલી વાર સાથે જોવા મળે છે.

બીજું કંઈ ચાલે તે પહેલાં પરિણામ કેપ્ચર કરો

પ્રથમ ખાતરી કરો કે પ્રોફાઇલ એ ખાતા માટે છે જે કામ ચલાવશે, ફક્ત એ ખાતા માટે નહીં જેનાથી તમે પરીક્ષણ કરો છો:

Get-VpnConnection -Name "Contoso-Office"
Get-VpnConnection -Name "Contoso-Office" -AllUserConnection

પછી ડાયલ કરો અને તરત જ કોડ વાંચો. PowerShell મૂળ પરિણામ $LASTEXITCODE માં ફક્ત આગલો બાહ્ય આદેશ ચાલે ત્યાં સુધી રાખે છે, તેથી ડાયલ અને તપાસ વચ્ચેનો એક આડો ping તમે વાંચવા માગતા હતા તે મૂલ્યનો નાશ કરે છે. પહેલાં તેને તમારા પોતાના ચલને સોંપો, પછી નક્કી કરો કે શું કરવું.

& rasdial.exe "Contoso-Office"
$dial = $LASTEXITCODE
if ($dial -ne 0) { throw "rasdial failed with $dial" }

કોડને બિન-ગુપ્ત ભૂલ ટેક્સ્ટ સાથે લોગ કરો, કારણ કે ગુમ થયેલ એન્ટ્રી, નકારાયેલ ઓળખપત્રો અને સમય સમાપ્તિ અલગ પ્રતિભાવો માગે છે. કોષ્ટક સામાન્ય પરિણામોને આગલા પગલા સાથે જોડે છે.

ResultWhat it indicatesNext step
0The dial completedProbe the resource, do not start writing yet
691The credential or authentication method was rejectedFix the account or method, do not retry in a loop
623The named entry was not foundFix the profile name or its scope
Other non-zeroTransport, timeout or adapter failureRead the message, then check the path

તૈયારી એ સંસાધન છે, ટનલ નહીં

ડાયલ સફળ થાય પછી, કામને જે જોઈએ છે તે તપાસો. ફાઇલ શેર, API એન્ડપોઇન્ટ અથવા ડેટાબેઝ પોર્ટ સાર્વજનિક વેબસાઇટ કરતાં વધુ સારી તૈયારી-કસોટી છે, કારણ કે સાર્વજનિક સાઇટ કોઈપણ કાર્યક્ષમ માર્ગથી જવાબ આપે છે અને ખાનગી માર્ગ વિશે કંઈ સાબિત કરતી નથી. એ કસોટી પસંદ કરો જેના પર એપ્લિકેશન પોતે આધાર રાખે છે. સફળ TCP કનેક્શન કહે છે કે રૂટિંગ અને ફિલ્ટરિંગ ખુલ્લા છે, અને પ્રથમ લેખનને જે જોઈએ તેનો મોટા ભાગનો આ જ છે:

Test-NetConnection -ComputerName files.contoso.example -Port 445

પ્રયાસો મર્યાદિત કરો અને કયો તબક્કો નિષ્ફળ ગયો તે નોંધો. નકારાયેલ ઓળખપત્રોએ સ્ક્રિપ્ટ થોભાવવી જોઈએ, ફરી પ્રયાસનું લૂપ ખવડાવવું નહીં; જે DNS નામ હજુ આવ્યું નથી તે થોડા ટૂંકા ફરી પ્રયાસને લાયક છે; જે પોર્ટ ક્યારેય ખૂલતું નથી તે ક્લાયન્ટની ઉપરની રૂટિંગ કે નીતિની સમસ્યા છે.

જ્યાં કનેક્શન કામ શરૂ થયું તે પહેલાંથી હતું, તેને અકબંધ રાખો. તમે ન ખોલેલ સેશન ડિસ્કનેક્ટ કરવું વપરાશકર્તાના બીજા કામમાં ખલેલ પાડે છે, તેથી સેશન કોનું છે અને કેવો અંત યોગ્ય છે તે નોંધો.

પ્રોફાઇલને કામ ચલાવતા ખાતા સુધી મર્યાદિત કરો

શેડ્યુલ કરેલ કાર્ય પોતાની ઓળખ અને સેશન હેઠળ ચાલે છે, અને તમારા ડેસ્કટોપ પર કામ કરતી પ્રોફાઇલ ત્યાં અદૃશ્ય હોઈ શકે. શેડ્યુલ પર ભરોસો કરતાં પહેલાં દૃશ્યતા-તપાસ અને ડાયલ કાર્યના ખાતા હેઠળ ફરી કરો. પાસવર્ડને કમાન્ડ લાઇનથી દૂર રાખો: આર્ગ્યુમેન્ટ બીજી પ્રોસેસને દેખાય છે અને ઘણી વાર લોગમાં જતા રહે છે.

જો ડિપ્લોયમેન્ટને બ્રાઉઝર પ્રોમ્પ્ટ, સ્માર્ટ-કાર્ડ ટચ કે MFA મંજૂરીની જરૂર હોય, તો તે ક્રિયાપ્રતિક્રિયા રચનાનો ભાગ છે અને કીસ્ટ્રોકનું અનુકરણ કરીને તેને સ્વયંસંચાલિત કરી શકાતી નથી. તે કિસ્સા માટે સમર્થિત ક્લાયન્ટ વાપરો અને માનવીય પગલું થવા દો.

અંતિમ સ્ક્રિપ્ટનો આકાર ટૂંકો રહે છે: પ્રોફાઇલ તપાસો, ડાયલ કરો, કોડ વાંચો, સંસાધન તપાસો, પછી કામ શરૂ કરો. દરેક પગલું એ પ્રશ્નનો જવાબ આપે છે જે અગાઉનું આપી શકતું ન હતું, અને તેમાંથી કોઈ સૂવા પર આધાર રાખતું નથી.

સંબંધિત લેખો