பவர்ஷெல் ஸ்கிரிப்ட்களை எளிதாக இயக்குவதற்கு ஒரு தொகுதி கோப்பை எவ்வாறு பயன்படுத்துவது

பொருளடக்கம்:

பவர்ஷெல் ஸ்கிரிப்ட்களை எளிதாக இயக்குவதற்கு ஒரு தொகுதி கோப்பை எவ்வாறு பயன்படுத்துவது
பவர்ஷெல் ஸ்கிரிப்ட்களை எளிதாக இயக்குவதற்கு ஒரு தொகுதி கோப்பை எவ்வாறு பயன்படுத்துவது
Anonim

வெளிப்படையாக பவர்ஷெல் ஸ்கிரிப்ட் இயங்கவில்லை, ஆனால் அது எதிர்பார்க்கப்பட வேண்டியதே - எல்லாவற்றிற்கும் மேலாக, எங்களின் நான்கு பிரச்சனைகளில் முதல் பிரச்சனையை மட்டுமே நாங்கள் தீர்த்து வைத்துள்ளோம். இருப்பினும், சில முக்கியமான பிட்கள் இங்கே காட்டப்பட்டுள்ளன:

  1. பேட்ச் ஸ்கிரிப்ட் வெற்றிகரமாக PowerShell ஐ அறிமுகப்படுத்தியதை சாளரத்தின் தலைப்பு காட்டுகிறது.
  2. வெளியீட்டின் முதல் வரியானது தனிப்பயன் பவர்ஷெல் சுயவிவரம் பயன்பாட்டில் இருப்பதைக் காட்டுகிறது. இது சாத்தியமான பிரச்சனை 4, மேலே பட்டியலிடப்பட்டுள்ளது.
  3. எக்ஸிகியூஷன் பாலிசி கட்டுப்பாடுகள் நடைமுறையில் இருப்பதை பிழைச் செய்தி காட்டுகிறது. இது எங்கள் பிரச்சனை 2.
  4. பிழைச் செய்தியின் அடிக்கோடிட்ட பகுதி (இது பவர்ஷெல்லின் பிழை வெளியீட்டின் மூலம் பூர்வீகமாக செய்யப்படுகிறது) தொகுதி ஸ்கிரிப்ட் நோக்கம் கொண்ட பவர்ஷெல் ஸ்கிரிப்டை (D:\Script Lab\MyScript.ps1) சரியாக இலக்காகக் காட்டுகிறது. அதனால் எவ்வளவு சரியாக வேலை செய்கிறது என்பதை நாம் அறிவோம்.

சுயவிவரம், இந்தச் சந்தர்ப்பத்தில், சுயவிவரம் செயலில் இருக்கும்போதெல்லாம் வெளியீட்டை உருவாக்க இந்த ஆர்ப்பாட்டத்திற்குப் பயன்படுத்தப்படும் ஒரு எளிய ஒரு வரி ஸ்கிரிப்ட் ஆகும். இந்த ஸ்கிரிப்ட்களை நீங்களே சோதிக்க விரும்பினால், இதைச் செய்ய உங்கள் சொந்த பவர்ஷெல் சுயவிவரத்தைத் தனிப்பயனாக்கலாம். உங்கள் சுயவிவர ஸ்கிரிப்ட்டில் பின்வரும் வரியைச் சேர்க்கவும்:

இங்குள்ள சோதனை அமைப்பில் செயல்படுத்தும் கொள்கை தொலை கையொப்பமிடப்பட்டதாக அமைக்கப்பட்டுள்ளது. இது உள்நாட்டில் உருவாக்கப்பட்ட ஸ்கிரிப்ட்களை செயல்படுத்த அனுமதிக்கிறது (சுயவிவர ஸ்கிரிப்ட் போன்றவை), அதே நேரத்தில் நம்பகமான அதிகாரியால் கையொப்பமிடப்படாவிட்டால் வெளிப்புற மூலங்களிலிருந்து ஸ்கிரிப்ட்களைத் தடுக்கிறது. ஆர்ப்பாட்ட நோக்கங்களுக்காக, MyScript ஐக் கொடியிட பின்வரும் கட்டளை பயன்படுத்தப்பட்டது.ps1 ஒரு வெளிப்புற மூலத்திலிருந்து வந்தது:

இது MyScript.ps1 இல் Zone. Identifier மாற்று தரவு ஸ்ட்ரீமை அமைக்கிறது, இதனால் கோப்பு இணையத்தில் இருந்து வந்ததாக Windows நினைக்கும். பின்வரும் கட்டளை மூலம் இதை எளிதாக மாற்றலாம்:

படி 2: செயல்படுத்தல் கொள்கையைப் பெறுதல்

CMD அல்லது ஒரு தொகுதி ஸ்கிரிப்ட் மூலம் எக்ஸிகியூஷன் பாலிசி அமைப்பைச் சுற்றிப் பார்ப்பது உண்மையில் மிகவும் எளிதானது. PowerShell.exe கட்டளைக்கு மேலும் ஒரு அளவுருவைச் சேர்க்க ஸ்கிரிப்ட்டின் இரண்டாவது வரியை மாற்றியமைக்கிறோம்.

நீங்கள் ஒரு புதிய PowerShell அமர்வை உருவாக்கும்போது பயன்படுத்தப்படும் ExecutionPolicy ஐ மாற்றியமைக்க -ExecutionPolicy அளவுருவைப் பயன்படுத்தலாம். அந்த அமர்வுக்கு அப்பால் இது தொடராது, எனவே கணினியின் பொதுவான பாதுகாப்பு நிலையை பலவீனப்படுத்தாமல், நமக்குத் தேவைப்படும் போதெல்லாம் பவர்ஷெல்லை இயக்கலாம். இப்போது நாங்கள் அதைச் சரிசெய்துவிட்டோம், அதை மீண்டும் பார்க்கலாம்:

படம்
படம்

இப்போது ஸ்கிரிப்ட் சரியாக செயல்படுத்தப்பட்டதால், அது உண்மையில் என்ன செய்கிறது என்பதை நாம் பார்க்கலாம்.நாங்கள் ஸ்கிரிப்டை ஒரு வரையறுக்கப்பட்ட பயனராக இயக்குகிறோம் என்பதை இது எங்களுக்குத் தெரிவிக்கிறது. ஸ்கிரிப்ட் உண்மையில் நிர்வாகி அனுமதிகளைக் கொண்ட கணக்கால் இயக்கப்படுகிறது, ஆனால் பயனர் கணக்குக் கட்டுப்பாடு தடையாக உள்ளது. நிர்வாகி அணுகலை ஸ்கிரிப்ட் எவ்வாறு சரிபார்க்கிறது என்ற விவரங்கள் இந்தக் கட்டுரையின் எல்லைக்கு அப்பாற்பட்டவை என்றாலும், விளக்கத்திற்காகப் பயன்படுத்தப்படும் குறியீடு இதோ:

ஸ்கிரிப்ட் வெளியீட்டில் இப்போது இரண்டு "இடைநிறுத்தம்" செயல்பாடுகள் இருப்பதையும் நீங்கள் கவனிப்பீர்கள் - ஒன்று பவர்ஷெல் ஸ்கிரிப்ட்டிலிருந்து மற்றும் ஒன்று தொகுதி கோப்பிலிருந்து. இதற்கான காரணம் அடுத்த கட்டத்தில் இன்னும் தெளிவாகத் தெரியும்.

படி 3: நிர்வாகி அணுகலைப் பெறுதல்

உங்கள் ஸ்கிரிப்ட் உயரம் தேவைப்படும் எந்த கட்டளைகளையும் இயக்கவில்லை என்றால், மற்றும் யாருடைய தனிப்பயன் சுயவிவரங்கள் வழியில் வருவதைப் பற்றி நீங்கள் கவலைப்பட வேண்டியதில்லை என்று நீங்கள் உறுதியாக நம்பினால், நீங்கள் இதைத் தவிர்க்கலாம். நீங்கள் சில நிர்வாகி-நிலை cmdlets ஐ இயக்குகிறீர்கள் என்றால், உங்களுக்கு இந்த துண்டு தேவைப்படும்.

துரதிர்ஷ்டவசமாக, ஒரு தொகுதி கோப்பு அல்லது CMD அமர்வில் இருந்து உயர்த்துவதற்கு UAC ஐ தூண்டுவதற்கு வழி இல்லை.இருப்பினும், Start-Process மூலம் இதைச் செய்ய PowerShell அனுமதிக்கிறது. அதன் வாதங்களில் “-Verb RunAs” உடன் பயன்படுத்தப்படும்போது, தொடக்க-செயல்முறை நிர்வாகி அனுமதிகளுடன் ஒரு பயன்பாட்டைத் தொடங்க முயற்சிக்கும். பவர்ஷெல் அமர்வு ஏற்கனவே உயர்த்தப்படவில்லை என்றால், இது UAC ப்ராம்ட்டைத் தூண்டும். எங்கள் ஸ்கிரிப்டைத் தொடங்குவதற்குத் தொகுதிக் கோப்பிலிருந்து இதைப் பயன்படுத்த, இரண்டு பவர்ஷெல் செயல்முறைகளை உருவாக்குவோம் - ஒன்று தொடக்க-செயல்முறையை நீக்கவும் மற்றொன்று ஸ்கிரிப்டை இயக்க தொடக்க-செயல்முறையால் தொடங்கவும். தொகுதி கோப்பின் இரண்டாவது வரியை இவ்வாறு மாற்ற வேண்டும்:

தொகுப்பு கோப்பு இயங்கும் போது, பவர்ஷெல் சுயவிவர ஸ்கிரிப்டில் இருந்து வெளிவரும் முதல் வரியை நாம் பார்க்கலாம். பின்னர், தொடக்கச் செயல்முறை MyScript.ps1ஐத் தொடங்க முயற்சிக்கும் போது UAC ப்ராம்ட் இருக்கும்.

படம்
படம்

UAC வரியில் கிளிக் செய்த பிறகு, ஒரு புதிய PowerShell நிகழ்வு உருவாகும். இது ஒரு புதிய நிகழ்வு என்பதால், சுயவிவர ஸ்கிரிப்ட் அறிவிப்பை மீண்டும் பார்ப்போம். பிறகு, MyScript.ps1 இயங்குகிறது, நாம் உண்மையில் ஒரு உயர்ந்த அமர்வில் இருப்பதைக் காண்கிறோம்.

படம்
படம்

மேலும் இங்கு இரண்டு இடைநிறுத்தங்கள் இருப்பதற்கான காரணமும் இருக்கிறது. பவர்ஷெல் ஸ்கிரிப்ட் இல்லாவிடில், ஸ்கிரிப்ட்டின் வெளியீட்டை நாம் ஒருபோதும் பார்க்க மாட்டோம் - பவர்ஷெல் சாளரம் பாப் அப் மற்றும் ஸ்கிரிப்ட் இயங்கியவுடன் மறைந்துவிடும். தொகுதி கோப்பில் இடைநிறுத்தம் இல்லாமல், பவர்ஷெல் தொடங்குவதில் ஏதேனும் பிழைகள் உள்ளதா என்பதை எங்களால் பார்க்க முடியாது.

படி 4: தனிப்பயன் பவர்ஷெல் சுயவிவரங்களைப் பெறுதல்

அந்த மோசமான தனிப்பயன் சுயவிவர அறிவிப்பை இப்போது அகற்றுவோம், இல்லையா? இங்கே, இது ஒரு தொல்லை கூட இல்லை, ஆனால் ஒரு பயனரின் பவர்ஷெல் சுயவிவரமானது இயல்புநிலை அமைப்புகள், மாறிகள் அல்லது செயல்பாடுகளை உங்கள் ஸ்கிரிப்ட் மூலம் நீங்கள் எதிர்பார்க்காத வழிகளில் மாற்றினால், அவை உண்மையில் தொந்தரவாக இருக்கும். சுயவிவரம் இல்லாமல் உங்கள் ஸ்கிரிப்டை இயக்குவது மிகவும் எளிமையானது, எனவே நீங்கள் இதைப் பற்றி கவலைப்பட வேண்டியதில்லை. அதைச் செய்ய, பேட்ச் கோப்பின் இரண்டாவது வரியை மீண்டும் ஒரு முறை மாற்ற வேண்டும்:

ஸ்கிரிப்ட் மூலம் தொடங்கப்படும் PowerShell இன் இரண்டு நிகழ்வுகளிலும் -NoProfile அளவுருவைச் சேர்ப்பதன் மூலம் பயனரின் சுயவிவர ஸ்கிரிப்ட் இரண்டு படிகளிலும் முற்றிலும் புறக்கணிக்கப்படும் மற்றும் எங்கள் பவர்ஷெல் ஸ்கிரிப்ட் மிகவும் கணிக்கக்கூடிய, இயல்புநிலை சூழலில் இயங்கும். ஸ்பான் செய்யப்பட்ட ஷெல்களில் தனிப்பயன் சுயவிவர அறிவிப்பு எதுவும் இல்லை என்பதை இங்கே பார்க்கலாம்.

படம்
படம்

உங்கள் பவர்ஷெல் ஸ்கிரிப்ட்டில் உங்களுக்கு நிர்வாகி உரிமைகள் தேவையில்லை மற்றும் நீங்கள் படி 3 ஐத் தவிர்த்துவிட்டால், இரண்டாவது பவர்ஷெல் நிகழ்வு இல்லாமல் செய்யலாம் மற்றும் உங்கள் தொகுதி கோப்பின் இரண்டாவது வரி இப்படி இருக்க வேண்டும்:

வெளியீடு இப்படி இருக்கும்:

படம்
படம்

(நிச்சயமாக, நிர்வாகி அல்லாத ஸ்கிரிப்ட்களுக்கு, இந்த நேரத்திலும் உங்கள் பவர்ஷெல் ஸ்கிரிப்ட்டில் இறுதி-ஸ்கிரிப்ட் இடைநிறுத்தம் இல்லாமல் செய்யலாம், ஏனெனில் அனைத்தும் ஒரே கன்சோல் சாளரத்தில் படம்பிடிக்கப்பட்டு, அங்கு வைக்கப்படும் எப்படியும் தொகுதி கோப்பின் முடிவில் இடைநிறுத்தவும்.)

முடிக்கப்பட்ட தொகுதி கோப்புகள்

உங்கள் பவர்ஷெல் ஸ்கிரிப்ட்டுக்கு நிர்வாகி அனுமதிகள் தேவையா இல்லையா என்பதைப் பொறுத்து (மற்றும் நீங்கள் அவற்றைக் கோரக்கூடாது) இறுதித் தொகுதி கோப்பு கீழே உள்ள இரண்டில் ஒன்றைப் போல் இருக்கும்.

நிர்வாக அணுகல் இல்லாமல்:

நிர்வாக அணுகலுடன்:

நீங்கள் பயன்படுத்த விரும்பும் பவர்ஷெல் ஸ்கிரிப்ட்டின் அதே கோப்புறையில் தொகுதி கோப்பை வைத்து, அதே பெயரைக் கொடுக்கவும். பின்னர், அந்த கோப்புகளை நீங்கள் எந்த அமைப்பிற்கு எடுத்துச் சென்றாலும், கணினியில் உள்ள எந்த பாதுகாப்பு அமைப்புகளிலும் குழப்பமடையாமல் உங்கள் பவர்ஷெல் ஸ்கிரிப்டை இயக்க முடியும். நீங்கள் நிச்சயமாக ஒவ்வொரு முறையும் அந்த மாற்றங்களை கைமுறையாகச் செய்யலாம், ஆனால் இது உங்களைச் சிக்கலில் இருந்து காப்பாற்றும், மேலும் மாற்றங்களை மாற்றியமைப்பது பற்றி நீங்கள் கவலைப்பட வேண்டியதில்லை.

குறிப்புகள்:

  • ஒரு தொகுதி கோப்பிலிருந்து PowerShell ஸ்கிரிப்ட்களை இயக்குதல் - டேனியல் ஷ்ரோடரின் நிரலாக்க வலைப்பதிவு
  • PowerShell இல் நிர்வாகி அனுமதிகளைச் சரிபார்க்கிறது - ஏய், ஸ்கிரிப்டிங் கையே! வலைப்பதிவு

பிரபலமான தலைப்பு