පවර්ෂෙල් පවසන්නේ “මෙම පද්ධතිය තුළ ස්ක්‍රිප්ට් ක්‍රියාත්මක කිරීම අක්‍රිය කර ඇති” බවයි.


1794

මම ධාවනය කිරීමට උත්සාහ කරමි a ලෙස හඳුන්වන ගොනුව ස්ක්‍රිප්ට් වෙතින් cmd.exe, මම පහත දෝෂය ලබා ගනිමි:

Management_Install.ps1 මෙම පද්ධතියේ ස්ක්‍රිප්ට් ක්‍රියාත්මක කිරීම අක්‍රිය කර ඇති නිසා පූරණය කළ නොහැක.

මම දුවලා

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

මම ක්රියාත්මක විට Get-ExecutionPolicyසිට, මම Unrestrictedආපහු එනවා.

PS C:\Users\Administrator\> Get-ExecutionPolicy
Unrestricted

C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts\> powershell .\Management_Install.ps1 1

WARNING: Running x86 PowerShell...

C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts\Management_Install.ps1මෙම පද්ධතියේ ස්ක්‍රිප්ට් ක්‍රියාත්මක කිරීම අක්‍රිය කර ඇති නිසා ගොනුව පූරණය කළ නොහැක. get-help about_signingවැඩි විස්තර සඳහා කරුණාකර " " බලන්න.

පේළියේ: 1 වර: 25

  • .\Management_Install.ps1 <<<< 1

    • CategoryInfo: NotSpecified: (:) [], PSSecurityException

    • FullyQualifiedErrorId: RuntimeException

C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts\> PAUSE

Press any key to continue . . .

පද්ධතිය වින්ඩෝස් සර්වර් 2008 ආර් 2 වේ.

මම වැරදි කරන්නේ කුමක් ද?


ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තිය මඟින් විෂය පථයන් කිහිපයක් ඇති බවත්, පවර්ෂෙල් විවිධ ආකාරවලින් ධාවනය කිරීමෙන් ඔබට විවිධ ප්‍රතිපත්ති ලබා ගත හැකි බවත් පෙන්වා දීම වටී. ප්‍රතිපත්ති ලැයිස්තුව බැලීමට, ධාවනය කරන්න Get-ExecutionPolicy -List.
බේකන් බිට්ස්

Answers:


2270

ඔබ වින්ඩෝස් සර්වර් 2008 ආර් 2 භාවිතා කරන්නේ නම් පවර්ෂෙල් හි x64 සහ x86 අනුවාදයක් ඇත, ඒ දෙකම ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්ති සකසා තිබිය යුතුය. ඔබ ධාරක දෙකෙහිම ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තිය සකස් කළාද?

ලෙස පරිපාලක , ඔබ ඔබේ PowerShell කවුළුව බවට ටයිප් කිරීම මගින් ක්රියාත්මක ප්රතිපත්ති සැකසිය හැක:

Set-ExecutionPolicy RemoteSigned

වැඩි විස්තර සඳහා, Set-ExecutionPolicy Cmdlet භාවිතා කිරීම බලන්න .

ඔබ අවසන් වූ විට, ඔබට ප්‍රතිපත්තිය එහි පෙරනිමි අගයට නැවත සැකසිය හැකිය:

Set-ExecutionPolicy Restricted

143
Set-ExecutionPolicy Restrictedඔබට අවසර නැවත ලබා දීමට අවශ්‍ය නම් එය අහෝසි කිරීමේ ක්‍රමය ලෙස පෙනේ: technet.microsoft.com/en-us/library/ee176961.aspx . තාවකාලික බයිපාස් ක්‍රමය @Jack Edmondsමට වඩා ආරක්ෂිත බව පෙනේ:powershell -ExecutionPolicy ByPass -File script.ps1
SharpC

33
වඩාත් ආරක්‍ෂිත ප්‍රතිපත්තියක් සඳහා, එය සත්‍ය පරිශීලකයා වෙත යොමු කරන්න: Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Nuno

Set-ExecutionPolicy RemoteSigned ඔබේ ස්ක්‍රිප්ටයේ පළමු පේළිය විය නොහැක. එය එසේ නම්, එය ඉස්මතු කර ඔබේ ඉතිරි ස්ක්‍රිප්ට් ධාවනය කිරීමට පෙර තෝරාගත් ඒවා පමණක් ධාවනය කරන්න.
ozzy432836

මම, ආරක්ෂක සේනා වෙබ් අඩවියේ ඒ හා සමාන ප්රශ්නයක් හරහා පැමිණි "SQL Server තුළ Powershell ක්රියාත්මක ප්රතිපත්තිය" ඔක්තෝබර් 10 '14 ඉල්ලා සිටියේය. පිළිතුරු එහි ඇතුළත් Get-ExecutionPolicy -Listවිවිධ විෂය පථ බලන්න මට උදව් උපකාර කළ. මෙම cmd Get-ExecutionPolicyසියලු විෂය පථ වෙන්නේ නෑ. Import-Module SQLPSදැන් සමග වැඩ ප්‍රතිපත්ති පහත පරිදි වෙනස් කර ඇත : {Undefined- Process,MachinePolicy,UserPolicy,}; {RemoteSigned- CurrentUser, LocalMachine}.
ෂර්ලොක්ස්ප්‍රෙඩ්ෂීට්

මා මෙය කරන්නේ නම්, වෙනස පවතින්නේ වත්මන් පවර්ෂෙල් කාල සීමාව සඳහා පමණක්ද? නැත්නම් එය ඊට වඩා විශාලද?
විලියම් ජොකුෂ්

719

-ExecutionPolicy Bypassපවර්ෂෙල් ධාවනය කිරීමේදී එක් කිරීමෙන් ඔබට එක් ගොනුවක් සඳහා මෙම ප්‍රතිපත්තිය මඟ හැරිය හැක

powershell -ExecutionPolicy Bypass -File script.ps1

4
ඔබ පරිපාලක නොවන ගිණුමක සිටී නම් මෙයද ඉතා පහසුය. මම %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPassමගේ කාර්ය තීරුවේ කෙටිමඟක් සකස් කළෙමි .
zek19

3
මයික්‍රොසොෆ්ට් ටෙක්නෙට් එය "බයිපාස්" ලෙස නොව "බයිපාස්" ලෙස හැඩගස්වන බව සලකන්න. බලන්න: technet.microsoft.com/nl-nl/library/hh849812.aspx
ජෙලේ ගීර්ට්ස්

1
මෙය මට වැඩ කරන්නේ නැත, මම සාමාන්‍යයෙන් එය ඇමතූ ලෙසම එම අවසරයම ප්‍රතික්ෂේප කරමි. .Bat වෙතින් PS1 ඇමතීමෙන් type script.ps1 | powershell -එය සාර්ථක වේ.
Some_Guy

9
ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තියේ පරමාර්ථය නම්, පුද්ගලයන් දෙවරක් ක්ලික් කිරීම .ps1සහ ඔවුන් අදහස් නොකළ දෙයක් අහම්බෙන් ධාවනය කිරීම වැළැක්වීමයි . .batලිපිගොනු සමඟ මෙය සිදුවනු ඇත
කොලොබ් කැනියොන්

1
A parameter cannot be found that matches parameter name 'File'අණ:Set-ExecutionPolicy -ExecutionPolicy Bypass -File .\file.ps1
යක්ෂයාගේ අධිනීති

169

මම සමාන, ප්රශ්නය සහ පෙරනිමි බව සඳහන් cmdමත වින්ඩෝස් සර්වර් 2012 , මෙම x64 එක ධාවනය කරන ලදී.

සඳහා වින්ඩෝස් 7 , වින්ඩෝස් 8 , වින්ඩෝස් 10 , වින්ඩෝස් සර්වර් 2008 R2 හෝ Windows Server 2012 , ලෙස පහත සඳහන් විධානයන් ක්රියාත්මක පරිපාලක :

x86 (බිට් 32)
විවෘත C:\Windows\SysWOW64\cmd.exe
විධානය ක්‍රියාත්මක කරන්නpowershell Set-ExecutionPolicy RemoteSigned

x64 (64 බිට්)
විවෘත C:\Windows\system32\cmd.exe
විධානය ක්‍රියාත්මක කරන්නpowershell Set-ExecutionPolicy RemoteSigned

භාවිතයෙන් ඔබට මාදිලිය පරීක්ෂා කළ හැකිය

  • CMD හි: echo %PROCESSOR_ARCHITECTURE%
  • පවර්ෂෙල් හි: [Environment]::Is64BitProcess

යොමුව:
MSDN - Windows PowerShell ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්ති
වින්ඩෝස් - 32bit vs 64bit නාමාවලි පැහැදිලි කිරීම


137

පවතින පිළිතුරු බොහෝ පැහැදිලි කොහොමද , නමුත් ඉතා සුළු පිරිසක් පැහැදිලි ඇයි . ඔබ අන්තර්ජාලයේ ආගන්තුකයන්ගෙන් කේත ක්‍රියාත්මක කිරීමට පෙර, විශේෂයෙන් ආරක්ෂක පියවර අක්‍රීය කරන කේතය, ඔබ කරන්නේ කුමක්ද යන්න හරියටම තේරුම් ගත යුතුය. ඉතින් මේ ගැටලුව ගැන තව ටිකක් විස්තර මෙන්න.

ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්ති පිළිබඳ ටෙක්නෙට් වෙතින් :

වින්ඩෝස් පවර්ෂෙල් ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්ති මඟින් වින්ඩෝස් පවර්ෂෙල් වින්‍යාස ගොනු පැටවීම සහ ස්ක්‍රිප්ට් ධාවනය කරන කොන්දේසි තීරණය කිරීමට ඔබට ඉඩ සලසයි.

පවර්ෂෙල් මූලික කරුණු - ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තිය සහ කේත අත්සන් කිරීම මගින් ගණනය කර ඇති ප්‍රතිලාභ :

  • ක්‍රියාත්මක කිරීම පාලනය කිරීම - ස්ක්‍රිප්ට් ක්‍රියාත්මක කිරීම සඳහා විශ්වාසනීය මට්ටම පාලනය කරන්න.
  • විධාන හයිජැක් - මගේ මාර්ගයේ විධාන එන්නත් කිරීම වළක්වන්න.
  • අනන්‍යතාවය - තිර රචනය මා විශ්වාස කරන සංවර්ධකයෙකු විසින් නිර්මාණය කර අත්සන් කර තිබේද සහ / හෝ මා විශ්වාස කරන සහතික අධිකාරියක සහතිකයක් සමඟ අත්සන් කර තිබේද?
  • අඛණ්ඩතාව - අනිෂ්ට මෘදුකාංග හෝ අනිෂ්ට පරිශීලකයාට ස්ක්‍රිප්ට් වෙනස් කළ නොහැක.

ඔබගේ වර්තමාන ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තිය පරීක්ෂා කිරීමට, ඔබට ක්‍රියාත්මක කළ හැකිය Get-ExecutionPolicy. නමුත් ඔබ එය වෙනස් කිරීමට අවශ්‍ය නිසා ඔබ මෙහි පැමිණ ඇති.

එසේ කිරීමට ඔබ Set-ExecutionPolicycmdlet ධාවනය කරයි .

ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තිය යාවත්කාලීන කිරීමේදී ඔබට ප්‍රධාන තීරණ දෙකක් ගත හැකිය.

ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්ති වර්ගය:

  • Restricted - පද්ධතිය තුළ දේශීය, දුරස්ථ හෝ බාගත කළ කිසිදු පිටපතක් ක්‍රියාත්මක කළ නොහැක.
  • AllSigned - ධාවනය වන සියලුම ස්ක්‍රිප්ට් ඩිජිටල් ලෙස අත්සන් කළ යුතුය.
  • RemoteSigned - සියලුම දුරස්ථ ස්ක්‍රිප්ට් (UNC) හෝ බාගත කළ ඒවා අත්සන් කළ යුතුය.
  • Unrestricted - කිසිදු ආකාරයක ස්ක්‍රිප්ට් සඳහා අත්සනක් අවශ්‍ය නොවේ.

නව වෙනසක විෂය පථය

  • LocalMachine - ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තිය පරිගණකයේ සියලුම පරිශීලකයින්ට බලපායි.
  • CurrentUser - ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තිය බලපාන්නේ වත්මන් පරිශීලකයාට පමණි.
  • Process - ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තිය බලපාන්නේ වර්තමාන වින්ඩෝස් පවර්ෂෙල් ක්‍රියාවලියට පමණි.

Default = පෙරනිමි

උදාහරණයක් ලෙස : ඔබට වත්මන් පරිශීලකයා සඳහා ප්‍රතිපත්තිය දුරස්ථ අත්සන් කිරීමට වෙනස් කිරීමට අවශ්‍ය නම්, ඔබ පහත විධානය ක්‍රියාත්මක කරනු ඇත:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

සටහන : ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තිය වෙනස් කිරීම සඳහා, ඔබ පවර්ෂෙල් පරිපාලක ලෙස ක්‍රියාත්මක කළ යුතුය . ඔබ සාමාන්‍ය මාදිලියේ සිට ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තිය වෙනස් කිරීමට උත්සාහ කරන්නේ නම්, ඔබට පහත දෝෂය ලැබෙනු ඇත:

'HKEY_LOCAL_MACHINE O මෘදුකාංග \ මයික්‍රොසොෆ්ට් \ පවර්ෂෙල් \ 1 \ ෂෙල් අයිඩ්ස් \ මයික්‍රොසොෆ්ට් පවර්ෂෙල්' යන රෙජිස්ට්‍රි යතුරට ප්‍රවේශය ප්‍රතික්ෂේප වේ. පෙරනිමි (LocalMachine) විෂය පථය සඳහා ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තිය වෙනස් කිරීම සඳහා, "පරිපාලක ලෙස ධාවනය කරන්න" විකල්පය සමඟ වින්ඩෝස් පවර්ෂෙල් ආරම්භ කරන්න.

අන්තර්ජාලයෙන් බාගත කර නොමැති (හෝ අවම වශයෙන් එක්සත් ජාතීන්ගේ පාර-දත්ත අඩංගු නොවන්න) ඔබේම ස්ක්‍රිප්ට් වල අභ්‍යන්තර සීමාවන් දැඩි කිරීමට ඔබට අවශ්‍ය නම්, ඔබට අත්සන් කළ ස්ක්‍රිප්ට් පමණක් ධාවනය කිරීමට ප්‍රතිපත්තියට බල කළ හැකිය. ඔබේම ස්ක්‍රිප්ට් අත්සන් කිරීමට, ස්කොට් හැන්සල්මන්ගේ පවර්ෂෙල් ස්ක්‍රිප්ට් අත්සන් කිරීම පිළිබඳ ලිපියේ උපදෙස් අනුගමනය කළ හැකිය .

සටහන : බොහෝ අය පවර්ෂෙල් විවෘත කරන සෑම විටම මෙම දෝෂය ඇතිවීමට ඉඩ ඇත. මන්දයත් PS එය දියත් කරන විට කිරීමට උත්සාහ කරන පළමු දෙය වන්නේ ඔබ කැමති ආකාරයට ඔබේ පරිසරය සැකසෙන ඔබේ පරිශීලක පැතිකඩ ස්ක්‍රිප්ට් ක්‍රියාත්මක කිරීමයි.

ගොනුව සාමාන්‍යයෙන් පිහිටා ඇත්තේ:

%UserProfile%\My Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1

පවර්ෂෙල් විචල්‍යය ක්‍රියාත්මක කිරීමෙන් ඔබට නිශ්චිත ස්ථානය සොයාගත හැකිය

$profile

පැතිකඩෙහි ඔබ සැලකිලිමත් වන කිසිවක් නොමැති නම් සහ ඔබගේ ආරක්ෂක සැකසුම් සමඟ ගැටීමට අවශ්‍ය නැතිනම්, ඔබට එය මකා දැමිය හැකි අතර එය ක්‍රියාත්මක කළ නොහැකි කිසිවක් පවර්ෂෙල් සොයා නොගනී.


8
ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තිය ආරක්ෂක පියවරක් වන අතර එය පරිශීලකයින් පවර්ෂෙල් කේතය ක්‍රියාත්මක කිරීමෙන් වලක්වා ගැනීමට අදහස් කරන එකක් නොවන බව සටහන් කිරීම වැදගත් යැයි මට හැඟේ. ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තිය යනු ඔබගේ ස්ක්‍රිප්ට් ආරක්ෂා කිරීමට සහ ඒවා ලිවූ, වෙනස් කළ හෝ අනුමත කළ අය කවුරුන්ද යන්න තීරණය කිරීමට අදහස් කරන දෙයකි . ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තිය තරම් සරල දෙයක් සමඟ සම්බන්ධ වීම ඉතා සුළු කාරණයකි Get-Content .\MyFile.ps1 | powershell.exe -NoProfile -.
බේකන් බිට්ස්

1
පැවැත්ම දී -ExecutionPolicy ByPassවුවත්, කුමක් කෙසේ හෝ මෙම ප්රතිපත්තියේ අරමුණ කුමක්ද? පරිශීලකයන් අහම්බෙන් පවර්ෂෙල් කොන්සෝලයක් විවෘත කිරීම හා අනිෂ්ට ස්ක්‍රිප්ට් එකක් ධාවනය කිරීම වැළැක්වීම පමණක්ද? ප්‍රහාරකයාට මෙය ක්‍රියාත්මක කිරීමට අවශ්‍ය නම් ක්‍රියාත්මක කළ හැකි හෝ කණ්ඩායම් පිටපතක් භාවිතා කළ නොහැකිද? Ac බේකන්බිට්ස් අදහස් දැක්වීම කියවීමෙන් පසුව පවා මෙම ප්‍රතිපත්තිය වැළැක්වීම සඳහා අදහස් කරන්නේ කුමක්දැයි මට විශ්වාස නැත ...
අජෙඩි 32

2
J Ajedi32 ජාල ජාල කොටසක ස්ක්‍රිප්ට් එකක් ධාවනය කරන කාර්යයක් මා සතුව ඇති බව පවසන්න. මම මගේ ස්ක්‍රිප්ටයට ආයාචනා කරන විට, මගේ ක්‍රියාවලිය ස්ක්‍රිප්ට් අත්සන් කර ඇත්දැයි තහවුරු කර ගැනීමට මට අවශ්‍යය. මගේ කේතය දෙවරක් පරීක්ෂා කර බැලීමට අවශ්‍ය වන්නේ මා ධාවනය කිරීමට යන ස්ක්‍රිප්ට් එක ධාවනය කිරීමට මා විශ්වාස කරන කේතයද යන්නයි. ඔබට මගේ කේතය ක්‍රියාත්මක කළ හැකිදැයි මට ප්‍රශ්නයක් නැත. එය නැවැත්වීම ප්‍රවේශ අයිතිවාසිකම් පිළිබඳ රැකියාවයි. මට අවශ්‍ය වන්නේ මා ලියා නැති කේත ධාවනය කිරීමෙන් ඔබව වළක්වා ගැනීමටයි. ප්‍රවේශවීමේ අයිතිවාසිකම් යන්නෙන් අදහස් වන්නේ ඔබ ලොග් වූ විට මෙහෙයුම් පද්ධතිය මගේ කේතය වෙනස් කිරීමෙන් වළක්වන බවයි. කේතය අත්සන් කිරීම හා කියාත්මක ප්රතිපත්තිය විට මගේ තිර රචනය වෙනස් වී නැත යන්නයි මම එය ක්රියාත්මක කිරීමට යන්න.
බේකන් බිට්ස්

42

වින්ඩෝස් 7 හි:

ආරම්භක මෙනුව වෙත ගොස් "වින්ඩෝස් පවර්ෂෙල් අයිඑස්ඊ" සොයන්න.

X86 අනුවාදය මත දකුණු ක්ලික් කර "පරිපාලක ලෙස ධාවනය කරන්න" තෝරන්න.

ඉහළ කොටසේ, අලවන්න Set-ExecutionPolicy RemoteSigned; ස්ක්‍රිප්ට් ධාවනය කරන්න. "ඔව්" තෝරන්න.

පවර්ෂෙල් අයිඑස්ඊ හි 64-බිට් අනුවාදය සඳහාද මෙම පියවර නැවත කරන්න (x86 නොවන අනුවාදය).

@ චැඩ් මිලර් ඉඟි කළ පියවර මම පැහැදිලි කරමි. ස්තූතියි චැඩ්!


39

ස්ක්‍රිප්ටයට පෙර මෙම විධානය ක්‍රියාත්මක කිරීමෙන් ගැටළුව විසඳනු ඇත:

set-executionpolicy unrestricted

27
-1 - අවම අවසරයේ මූලධර්මය අනුගමනය කරන්න. RemoteSignedඔබගේ ආරක්ෂක ප්‍රතිපත්තියේ ඇති සියලුම සීමාවන් ඉවත් කිරීමට පෙර අවම වශයෙන් ප්‍රතිපත්තිය සකසන්න . එය ක්‍රියාත්මක නොවන්නේ නම්, ඔබේ වේදනා ලකුණු මොනවාද සහ එය ක්‍රියා නොකරන්නේ මන්දැයි නැවත තක්සේරු කරන්න. ඔබට unrestrictedඅවසාන ප්‍රයත්නයක් ලෙස සැකසිය හැකිය , නමුත් එය ඔබේ ආරම්භක ස්ථානය නොවිය යුතුය.
කයිල්මිට්

3
මෙම විකල්පය පෙන්වා දීමට ස්තූතියි. නිෂ්පාදන අරමුණු සඳහා වන ආරක්ෂක අවශ්‍යතා සම්බන්ධයෙන් නිසි ගෞරවය සහිතව, ඉක්මන් මූලාකෘතිකරණ හැකියාව ඉල්ලුම ඉතා ඉහළ මට්ටමක පවතින කාලවලදී, සියලු ප්‍රතිපත්ති සහ ආරක්ෂාව සැබවින්ම දේවල් ලබා ගැනීමේ මාර්ගයට පැමිණේ.
tishma

1
විවරණ නැවත මූලාකෘතිකරණය සම්බන්ධයෙන්, මම බිය වන්නේ මේ නිසා කපටි කේතය නිෂ්පාදනයට වැටේ. ඇත්ත වශයෙන්ම මෙය ඉතා සුළු උදාහරණයකි, නමුත් සංවර්ධනයේදී මෙම සුළු දෙයක් ඔබට විසඳිය නොහැකි නම්, එය මුදා හැරීම කනස්සල්ලට කරුණකි. එසේම, බෙස්පෝක් කේතය සඳහා, සහ ඔබට හැකි නම්, ඉලක්කගත පරිසරය දැන ගන්න - අපි අපගේ අභ්‍යන්තර පද්ධතිවලින් බහුතරයක් ලෙස සකසා ඇත්තෙමු Remotesigned.
ට්‍රික්ස්

35

ඔබ පරිපාලකයෙකු නොවන පරිසරයක සිටී නම්, ඔබට ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තිය ඔබ වෙනුවෙන්ම සැකසිය හැකි අතර එයට පරිපාලක අවශ්‍ය නොවේ.

Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "RemoteSigned"

හෝ

Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "Unrestricted"

උපකාරක සටහනේ ඔබට ඒ ගැන සියල්ල කියවිය හැකිය.

Help Get-ExecutionPolicy -Full
Help Set-ExecutionPolicy -Full

වින්ඩෝස් 8 හි මා වෙනුවෙන් වැඩ Set-ExecutionPolicy Unrestrictedකළේ, පරිපාලකයෙකු ලෙස ඇත්ත වශයෙන්ම උදව් කිරීමට තරම් "සීමා රහිත" බවක් නොපෙන්වයි.
පැට්රිජ්

1
ඔබ අත්විඳින්නේ ජීපීඕ එකක් හෝ වෙනත් දෙයක් බව ඔබ විශ්වාස කරයි. Set-ExecutionPolicy විධානය සමඟ වසම් ප්‍රතිපත්තියක් ඇති දේ ඔබට නැවත ලිවිය නොහැක. කෙසේ වෙතත්, "CurrentUser" ප්‍රවේශ මට්ටම සැකසීම, ඔබට සහ ඔබට පමණක් ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තිය ඇත. මෙයට හේතුව, පරිගණකය LocalMachine සැකසුම දෙස බැලීමට පෙර ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තිය සඳහා CurrentUser දෙස බලන බැවිනි.
මීකා 'පවර්ෂෙල් නින්ජා'

1
Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "Unrestricted" යනු මා වෙනුවෙන් වැඩ කළ එකම විසඳුමයි. ස්තූතියි
පෝල්ජ්

32

දුරස්ථ අත්සන්: ඔබ විසින්ම සාදන ලද සියලුම ස්ක්‍රිප්ට් ක්‍රියාත්මක වන අතර, අන්තර්ජාලයෙන් බාගත කළ සියලුම ස්ක්‍රිප්ට් විශ්වාසදායක ප්‍රකාශකයෙකු විසින් අත්සන් කළ යුතුය.

හරි, සරලව ටයිප් කිරීමෙන් ප්‍රතිපත්තිය වෙනස් කරන්න:

Set-ExecutionPolicy RemoteSigned

වෙනත් තනතුරු වල නිර්දේශ කර ඇති පරිදි: අර්ථවත් වන විට වඩාත් ආරක්ෂිත ප්‍රතිපත්තියක් සඳහා "-ස්කෝප් වත්මන් පරිශීලක" ඇතුළත් කිරීම නුවණට හුරුය.
පොකුරුඩේ

32

ExecutionPolicyපහත දැක්වෙන විධානය මඟින් අපට ධාරාවේ තත්වය ලබා ගත හැකිය :

Get-ExecutionPolicy;

පෙරනිමියෙන් එය සීමා කර ඇත. අපි එක්කෝ මෙම ExecutionPolicy සකස් කර ගැනීමට අවශ්ය PowerShell පිටපත් ඝාතනය ඉඩ වාරණයන් හෝ නිර්බාධිත .

පහත දැක්වෙන පවර්ෂෙල් විධානයන් භාවිතා කිරීමෙන් Bypassහෝ වර්තමාන පරිශීලකයා සඳහා අපට ප්‍රතිපත්තිය සැකසිය හැකිය Unrestricted:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass -Force;

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force;

සීමා රහිත ප්‍රතිපත්තිය මඟින් සියලු වින්‍යාස ගොනු පටවන අතර සියලු ස්ක්‍රිප්ට් ක්‍රියාත්මක වේ. ඔබ අත්සන් නොකළ ස්ක්‍රිප්ට් එකක් අන්තර්ජාලයෙන් බාගත කර ඇත්නම්, එය ක්‍රියාත්මක වීමට පෙර අවසර ඉල්ලා සිටිනු ඇත.

දශකවලදී වාරණයන් ප්රතිපත්තිය, කිසිවක් අවහිර වන අතර තිර රචනය සම්පාදනය තුලදී කිසිදු අනතුරු ඇඟවීම් හෝ ලබාදෙන විමසුම් ඇත. බයිපාස් ExecutionPolicyවඩා ලිහිල් ය Unrestricted.


4
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass -Force; පැමිණිලි කිරීම නතර කර මගේ ලේවැකි පිටපත ක්‍රියාත්මක කරන ලෙස VS2015 ට පැවසීමට AKA ඉක්මන් හා අපිරිසිදු ක්‍රමයක්. ස්තූතියි. ජීවිතාරක්ෂක.
ඉයන්

1
ඔබගේ විධානවල කෙළවරේ ඇති අර්ධ සළකුණු අතිරික්තය.
බිල්_ස්ටුවර්ට්

25

මම වින්ඩෝස් 10 භාවිතා කරන අතර කිසිදු විධානයක් ක්‍රියාත්මක කිරීමට නොහැකි විය. මට යම් හෝඩුවාවක් ලබා දුන් එකම විධානය මෙයයි:

[x64]

  1. C විවෘත කරන්න: \ Windows \ SysWOW64 \ cmd.exe [පරිපාලක ලෙස]
  2. > Powerhell Set-ExecutionPolicy Unrestricted විධානය ක්‍රියාත්මක කරන්න

නමුත් මෙය ක්‍රියාත්මක වූයේ නැත. එය සීමිත විය. වින්ඩෝස් 10 සඳහා නව ආරක්ෂක ප්‍රතිපත්ති. මට මෙම දෝෂය තිබුණි:

Set-ExecutionPolicy: වින්ඩෝස් පවර්ෂෙල් ඔබේ ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තිය සාර්ථකව යාවත්කාලීන කළ නමුත් සැකසුම වඩාත් නිශ්චිත විෂය පථයකින් අර්ථ දක්වා ඇති ප්‍රතිපත්තියක් මගින් අභිබවා යයි. අභිබවා යාම නිසා, ඔබේ කවචය එහි effective ලදායී ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තිය රඳවා ගනු ඇත ...

ඒ නිසා මම වෙනත් ක්‍රමයක් සොයා ගත්තා ( විසඳුම ):

  1. Run Command / Console ( Win+ R) විවෘත කරන්න
  2. වර්ගය: gpedit.msc ( කණ්ඩායම් ප්‍රතිපත්ති සංස්කාරක)
  3. පිරික්සන්න පළාත් පරිගණක ප්රතිපත්ති -> පරිගණක වින්යාස -> පරිපාලන ආකෘති -> වින්ඩෝස් සංරචක -> වින්ඩෝස් Powershell .
  4. "සක්රිය කරන්න කේත රචනය ක්රියාකරවීම සක්රිය කරන්න "
  5. අවශ්‍ය පරිදි ප්‍රතිපත්තිය සකසන්න. මම මගේ " සියලු ස්ක්‍රිප්ට් වලට ඉඩ දෙන්න " ලෙස සකසා ඇත .

දැන් පවර්ෂෙල් විවෘත කර විනෝද වන්න;)


මෙය තනිවම ස්ථාපනය කිරීමක්ද, නැතහොත් ඔබ වැඩ කණ්ඩායමකට හෝ වසමකට සම්බන්ධ වී තිබේද?
MEMark

එය කිරීමට cmd විවෘත කරන්නේ ඇයි? ISE (පරිපාලක ලෙස) විවෘත කර ටයිප් කරන්නSet-ExecutionPolicy RemoteSigned
කොලොබ් කැනියොන්

OMG මෙය අවසානයේ මගේ win10 කොටුව සවි කළේය, olkolob set-executionpolicy ප්‍රමාණවත් නොවේ
xer0x

ඔබ භාවිතා නොකළ යුතුය Unrestricted. භාවිතා කිරීම වඩා හොඳ පුරුද්දකිRemoteSigned
කොලොබ් කැනියොන්

@ xer0x ඔබ පරිපාලකයෙකු ලෙස බලතල ක්‍රියාත්මක කරන තාක් කල් විය යුතුය
කොලොබ් කැනියොන්

11

Win+ Rසහ පිටපත් පේස්ට් විධානය ටයිප් කර ඔබන්න OK:

powershell Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "RemoteSigned"

ඔබේ ස්ක්‍රිප්ට් එක ක්‍රියාත්මක කරන්න.

ඉන්පසු වෙනස්කම් වෙනස් කරන්න:

powershell Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "AllSigned"

10

ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තිය සැකසීම පරිසරයට විශේෂිත වේ. ක්‍රියාත්මක වන x86 ISE වෙතින් ස්ක්‍රිප්ට් එකක් ක්‍රියාත්මක කිරීමට ඔබ උත්සාහ කරන්නේ නම් , ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තිය සැකසීමට x86 පවර්ෂෙල් භාවිතා කළ යුතුය. ඒ හා සමානව, ඔබ 64-බිට් අයිඑස්ඊ ධාවනය කරන්නේ නම්, ඔබ ප්‍රතිපත්තිය 64-බිට් පවර්ෂෙල් සමඟ සැකසිය යුතුය.


10

පහත දැක්වෙන විධානය භාවිතා කිරීමෙන් ඔබට මෙය මඟ හැරිය හැක:

PS > powershell Get-Content .\test.ps1 | Invoke-Expression

ඔබට Set-ExecutionPolicyපරිපාලක වරප්‍රසාද නොමැති නම් පවර්ෂෙල් මඟ හැරීමට විවිධ ක්‍රම 15 ක් පැහැදිලි කරන ස්කොට් සදර්ලන්ඩ්ගේ මෙම ලිපිය ඔබට කියවිය හැකිය :

පවර්ෂෙල් ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තිය මඟ හැරීමට ක්‍රම 15 ක්


මෙම සීමාව නිරාකරණය කර තේරුම් ගැනීමට මෙය වඩාත් ප්‍රබල මඟ පෙන්වීමක් විය හැකිය.
ඔස්වල්ඩෝ මර්කාඩෝ

6

ඔබට මෙය උත්සාහ කර "සියල්ල" විකල්පය තෝරන්න

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

5
  1. පවර්ෂෙල් පරිපාලක ලෙස විවෘත කර Set-ExecutionPolicy -Scope CurrentUser ධාවනය කරන්න
  2. දුරස්ථ අත්සන් ලබා දී Enter ඔබන්න
  3. Set-ExecutionPolicy -Scope CurrentUser ධාවනය කරන්න
  4. ලබා තිබූ බාධා සහ මාධ්ය ඇතුල් කරන්න

3

පවර්ෂෙල් අයිඑස්ඊ සංස්කාරකයේ දී පහත දැක්වෙන පේළියේ පළමු වරට ස්ක්‍රිප්ට් ධාවනය කිරීමට මට හැකි විය.

Set-ExecutionPolicy RemoteSigned -Scope Process

2

පවර්ෂෙල් 2.0 හි, ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තිය පෙරනිමියෙන් අක්‍රීය කර ඇත.

එතැන් සිට, පවර්ෂෙල් කණ්ඩායම වැඩි දියුණු කිරීම් සිදු කර ඇති අතර, ස්ක්‍රිප්ට් ධාවනය කිරීමේදී පරිශීලකයින් බොහෝ දේ බිඳ නොදමන බව ඔවුන්ට විශ්වාසයි. එබැවින් PowerShell 4.0 සිට එය පෙරනිමියෙන් සක්‍රීය කර ඇත.

ඔබගේ නඩුවේදී, Set-ExecutionPolicy RemoteSignedපවර්ෂෙල් කොන්සෝලය වෙතින් ටයිප් කර ඔව් යැයි කියන්න.


2

මට අදත් ඒ ප්‍රශ්නයම තිබුණා. බිට් 64 ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තිය සීමා රහිත වූ අතර බිට් 32 සීමා කරන ලදි.

බිට් 32 ප්‍රතිපත්තිය දුරස්ථව වෙනස් කරන්නේ කෙසේද යන්න මෙන්න:

Invoke-Command -ComputerName $servername -ConfigurationName Microsoft.PowerShell32 -scriptblock {Set-ExecutionPolicy unrestricted}

2

නාම ලේඛනය ද මාර්ගය වෙත යන්න HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShellසහ කුලකය ExecutionPolicyකිරීමට RemoteSigned.


1
1. පරිපාලක ලෙස විවෘත PowerShell සහ ක්රියාත්මක Set-ExecutionPolicy -Scope CurrentUser 2. ලබා RemoteSigned සහ මාධ්ය 3. ධාවනය ඇතුලත් කරන්න Set-ExecutionPolicy -Scope CurrentUser ලබා 4. නිර්බාධිත ඇතුලත් කරන්න සහ මාධ්ය
Ramanujam Allam

2

මම ධාවනය කිරීමට උත්සාහ කරන විට මට තවත් අනතුරු ඇඟවීමක් ලැබේ Set-ExecutionPolicy RemoteSigned

මම මේ විධානයන් සමඟ විසඳුවා

Set-ExecutionPolicy "RemoteSigned" -Scope Process -Confirm:$false

Set-ExecutionPolicy "RemoteSigned" -Scope CurrentUser -Confirm:$false

2
  1. පරිපාලනය ලෙස බලතල විවෘත කරන්න
Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "RemoteSigned"

මෙම විධානය භාවිතා කරන්න


1

ඔබ මෙහි පැමිණියේ රූබි හෝ චෙෆ් සමඟ ධාවනය කර පද්ධති ක්‍රියාත්මක කිරීම නිසා නම්, පහත පරිදි ක්‍රියාත්මක කරන්න:

`powershell.exe -ExecutionPolicy Unrestricted -command [Environment]::GetFolderPath(\'mydocuments\')`

එම විධානය "MyDocuments" ෆෝල්ඩරය ලබා ගැනීම සඳහා ය.

-ExecutionPolicy Unrestricted උපක්‍රමය කරයි.

එය වෙනත් කෙනෙකුට ප්‍රයෝජනවත් වේ යැයි මම බලාපොරොත්තු වෙමි.


කොටු කිරීම `` ඇත්තටම තිබිය යුතුද?
පීටර් මෝර්ටෙන්සන්

1

පිළිතුරු කිහිපයක් ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තියට යොමු කරයි. කෙසේ වෙතත් සමහර දේ සඳහා "runas පරිපාලක" ද අවශ්‍ය වේ. ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තියේ ස්ථිර වෙනසක් නොමැති නිසා මෙය ආරක්ෂිත වන අතර අතීත පරිපාලක සීමාවන් ලබා ගත හැකිය. කණ්ඩායමක් ආරම්භ කිරීමට උපලේඛන සමඟ භාවිතා කරන්න:

    runas.exe /savecred /user:administrator powershell -ExecutionPolicy ByPass -File script.ps1

ඉහත ජැක් එඩ්මන්ඩ්ස් සහ තනතුරේ පීටර් මෝර්ටෙන්සන් / ධනා යන අයගෙන් විධාන විමසුමේ සිට "පරිපාලක ලෙස ධාවනය කරන්න" ලෙස යෙදුමක් ක්‍රියාත්මක කරන්නේ කෙසේද?


1

මෙම රේඛාව මගේ වින්ඩෝස් සර්වර් 2008 ආර් 2 සේවාදායකයක් සඳහා වඩාත් සුදුසු බව මට පෙනී ගියේය. මගේ පවර්ෂෙල් ස්ක්‍රිප්ට් වල මෙම රේඛාව නොමැතිව තවත් කිහිප දෙනෙකුට ගැටළු නොමැත:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Force -Scope Process

1

පරිපාලකවරයකු ලෙස පවර්ෂෙල් කොන්සෝලය විවෘත කර ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තිය සකසන්න

Set-ExecutionPolicy -ExecutionPolicy Remotesigned 

0

එය මඟ හැරීමට ඔබට විශේෂ ක්‍රමයක් භාවිතා කළ හැකිය:

Get-Content "PS1scriptfullpath.ps1" | Powershell-NoProfile -

එය පවර්ෂෙල් ස්ක්‍රිප්ටයේ අන්තර්ගතය පවර්ෂෙල්.එක්ස් වෙත නල කර ක්‍රියාත්මක කිරීමේ ප්‍රතිපත්තිය මඟ හැර එය ක්‍රියාත්මක කරයි.


0

මෙය මගේ ප්‍රශ්නය විසඳීය

වින්ඩෝස් PowerShellවිධාන විවෘත කර වෙනස් කිරීම සඳහා විමසුමට පහළින් ධාවනය කරන්නExecutionPolicy

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

එය තහවුරු කිරීම් ඉල්ලා සිටියහොත් 'Y' ඔබා එන්ටර් ඔබන්න.


0

Set-ExecutionPolicy RemoteSignedවිධානය ක්‍රියාත්මක කරන්න


0
  1. ධාවන විධාන / කොන්සෝලය (වින් + ආර්) වර්ගය විවෘත කරන්න: gpedit. msc (කණ්ඩායම් ප්‍රතිපත්ති සංස්කාරක)
  2. බ්රවුස් කිරීම පළාත් පරිගණක ප්රතිපත්ති -> පරිගණක වින්යාස -> පරිපාලන ආකෘති -> වින්ඩෝස් සංරචක -> වින්ඩෝස් Powershell.
  3. " ස්ක්‍රිප්ට් ක්‍රියාත්මක කිරීම සක්‍රිය කරන්න " සක්‍රීය කරන්න ප්‍රතිපත්තිය අවශ්‍ය පරිදි සකසන්න. මම මගේ "සියලු ස්ක්‍රිප්ට් වලට ඉඩ දෙන්න" ලෙස සකසා ඇත .

දැන් ඔබ භාවිතා කරන ඕනෑම දෙයක් run විධානය ක්‍රියාත්මක කරන්න .. මෙය ක්‍රියාත්මක වනු ඇතැයි විශ්වාස කරන්න .. භුක්ති විඳින්න :)


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.