How do I run powershell scripts without admin rights?

前端 未结 5 703
再見小時候
再見小時候 2021-01-31 22:50

If I try to change the execution policy, I get a message that says I can\'t modify the registry because I\'m not an administrator.

It seems like this should be possible,

相关标签:
5条回答
  • 2021-01-31 23:10

    how about

    $script = Get-Content .\test.ps1
    Invoke-Expression $script
    
    0 讨论(0)
  • 2021-01-31 23:12

    The third technique I've found elsewhere on the internet is to use

    powershell.exe -EncodedCommand XXXXXXX

    where XXXXXXX is the result of

    $code = {
         #powershell script goes here.
        }
    }
    
    [convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($code))
    

    Ref: http://dmitrysotnikov.wordpress.com/2008/06/27/powershell-script-in-a-bat-file/

    0 讨论(0)
  • 2021-01-31 23:15

    if you want to have an easy way to run a script myscript.ps1 from the windows shell then all you need is a bat Runmyscript.bat with the following contents:

    type myscript.ps1 | powershell -
    

    So simple it makes me wonder why you can't just run the ps1 in the first place, but there we go.

    A generic version that prompts for userinput to type the name of the script would be:

    set /p filename="Type name of script here: "
    type %filename% | powershell -
    

    I suppose if you wanted to, you could also write a generic vbscript script that opens any file in powershell using a dialogue box using this http://todayguesswhat.blogspot.co.uk/2012/08/windows-7-replacement-for.html

    0 讨论(0)
  • 2021-01-31 23:16

    You can try and set the policy of the process itself.

    powershell.exe -ExecutionPolicy bypass

    0 讨论(0)
  • 2021-01-31 23:23

    If your domain administrator hasn't forbidden it, you can do this:

    Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser
    

    This changes the default execution policy for PowerShell sessions run under the current user, rather than setting it for all users on the machine.

    If you instead want to change the execution policy for just the current PowerShell session, you can use this command:

    Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
    

    However, if your domain administrator is using the "Turn on Script Execution" group policy, you will not be able to change your execution policy at all. The group policy setting makes the Set-ExecutionPolicy cmdlet ineffective.

    0 讨论(0)
提交回复
热议问题