خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
رفع ارور PowerShell is not digitally signed هنگام اجرای اسکریپت پاورشل
اگر سعی در اجرای یک اسکریپت PowerShell script که sign نداشته، کنید، احتمالا با ارور PowerShell Script file is not digitally signed. You cannot run this script on the current system برخورد کرده اید. Windows PowerShell پوسته یا Shell ای است که ابتدا توسط مایکروسافت به منظور اتوماسیون و مدیریت پیکربندی ایجاد گردید. جای تعجبی نیست که خط مشی یا پالیسی اجرای آن روی گزینه Restricted تنظیم شده است چرا که از اجرای اسکریپت های مخرب جلوگیری بعمل آورد.
این خطای امنیتی می تواند زمانی رخ دهد که پالیسی اجرای پاورشل روی AllSigned یا RemoteSigned تنظیم شده باشد و اسکریپت sign نداشته باشد. اگر می خواهید که به اسکریپت sign داده و مشکل را حل کنید، از روش هایی که در ادامه گفته می شود، می توانید استفاده کنید.
ولی شما می توانید این پالیسی را تغییر دهید. هر چند به لحاظ امنیتی خوب نیست و در خصوص اسکرپیت هایی که مطمئن هستید، می توانید این پالیسی را اعمال کنید تا اسکریپت شما بدون مشکل اجرا گردد. دستور زیر را در پاورشل وارد کنید:
دکمه Y را فشرده و Enter کنید، بدین ترتیب پالیسی اجرا در حالت unrestricted یا بدون مانع قرار می گیرد و می توانید اکنون اسکریپت را بدون مانع اجرا کنید.
تا زمانی که سیایت اجرا دستور در پاورشل را تغییر ندهید، وضعیت به همین شکل باقی می ماند پس در خصوص اجرای اسکریپت ها در این محیط محتاط باشید.
این دستور PowerShell session جاری را رد یا bypass می کند.
در دستور فوق به جای C:\Downloadsscript1.ps می توانید مسیر ذخیره شده و نام فایل را جایگزین کنید.
این خطای امنیتی می تواند زمانی رخ دهد که پالیسی اجرای پاورشل روی AllSigned یا RemoteSigned تنظیم شده باشد و اسکریپت sign نداشته باشد. اگر می خواهید که به اسکریپت sign داده و مشکل را حل کنید، از روش هایی که در ادامه گفته می شود، می توانید استفاده کنید.
Check and change Execution Policy
اول از همه ، دستور Get-ExceptionPolicy را اجرا کنید تا پالیسی اجرای دستورات در پاورشل را در خروجی دستور مشاهده کنید.ولی شما می توانید این پالیسی را تغییر دهید. هر چند به لحاظ امنیتی خوب نیست و در خصوص اسکرپیت هایی که مطمئن هستید، می توانید این پالیسی را اعمال کنید تا اسکریپت شما بدون مشکل اجرا گردد. دستور زیر را در پاورشل وارد کنید:
Set-ExecutionPolicy unrestricted
دکمه Y را فشرده و Enter کنید، بدین ترتیب پالیسی اجرا در حالت unrestricted یا بدون مانع قرار می گیرد و می توانید اکنون اسکریپت را بدون مانع اجرا کنید.
تا زمانی که سیایت اجرا دستور در پاورشل را تغییر ندهید، وضعیت به همین شکل باقی می ماند پس در خصوص اجرای اسکریپت ها در این محیط محتاط باشید.
Bypass the current PowerShell session
راه حل دیگر استفاده از دستور زیر است که در پاورشل اجرا کرده و Y کنید:Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
این دستور PowerShell session جاری را رد یا bypass می کند.
Unblock the file that was downloaded
هنگامی که سیاست اجرا، RemoteSigned باشد، این امر مستلزم آن است که کلیه اسکریپتها و فایلهای پیکربندی بارگیری شده از اینترنت یا ایمیل توسط ناشر sign شوند. اگر به اسکریپت مربوطه اطمینان دارید که ایمن است، به راحتی می توانید آن را unblock کنید. شما با استفاده از دستور زیر می توانید به این مهم دست یابید:Unblock-File -Path C:\Downloadsscript1.ps
در دستور فوق به جای C:\Downloadsscript1.ps می توانید مسیر ذخیره شده و نام فایل را جایگزین کنید.
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: