Προσπαθώ να εκτελέσω ένα αρχείο [tag:cmd] που καλεί μια δέσμη ενεργειών [tag:powershell] από το cmd.exe
και λαμβάνω το παρακάτω σφάλμα:
Management_Install.ps1
δεν μπορεί να φορτωθεί επειδή η εκτέλεση σεναρίων είναι απενεργοποιημένη σε αυτό το σύστημα.
Έχω εκτελέσει
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
και όταν τρέχω το Get-ExecutionPolicy
από το [tag:powershell], παίρνω πίσω το 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 char: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 . . .
Το σύστημα είναι Windows Server 2008R2.
Τι κάνω λάθος;
Εάν χρησιμοποιείτε Windows Server 2008 R2, τότε υπάρχει μια έκδοση x64 και x86 του PowerShell, για τις οποίες πρέπει να έχουν οριστεί οι πολιτικές εκτέλεσης. Ορίσατε την πολιτική εκτέλεσης και στους δύο κεντρικούς υπολογιστές;
Ως Διαχειριστής, μπορείτε να ορίσετε την πολιτική εκτέλεσης πληκτρολογώντας το εξής στο παράθυρο του PowerShell:
Set-ExecutionPolicy RemoteSigned
Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα Χρήση του Cmdlet Set-ExecutionPolicy.
Μπορείτε να παρακάμψετε αυτήν την πολιτική προσθέτοντας την επιλογή -ExecutionPolicy ByPass
κατά την εκτέλεση του PowerShell
powershell -ExecutionPolicy ByPass -File script.ps1
RemoteSigned: θα εκτελούνται όλα τα σενάρια που δημιουργήσατε μόνοι σας και όλα τα σενάρια που κατεβάζετε από το Διαδίκτυο θα πρέπει να υπογράφονται από έναν αξιόπιστο εκδότη.
Εντάξει, αλλάξτε την πολιτική πληκτρολογώντας απλά:
Set-ExecutionPolicy RemoteSigned