如果我嘗試更改執行策略,我收到一條消息,說我無法修改註冊表,因爲我不是管理員。如何在沒有管理員權限的情況下運行powershell腳本?
這似乎應該是可能的,因爲我可以運行批處理文件和其他.exe和.com程序。
如果我嘗試更改執行策略,我收到一條消息,說我無法修改註冊表,因爲我不是管理員。如何在沒有管理員權限的情況下運行powershell腳本?
這似乎應該是可能的,因爲我可以運行批處理文件和其他.exe和.com程序。
您可以嘗試設置過程本身的策略。
powershell.exe -ExecutionPolicy旁路
怎麼樣
$script = Get-Content .\test.ps1
Invoke-Expression $script
如果您的域管理員沒有禁止它,你可以這樣做:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser
這更改在當前用戶下運行的PowerShell會話的默認執行策略,而不是爲機器上的所有用戶進行設置。
如果你不是想改變執行策略只是當前PowerShell會話,你可以使用這個命令:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
但是,如果您的域管理員使用「Turn on Script Execution」組策略,你會根本不能改變你的執行策略。組策略設置使Set-ExecutionPolicy cmdlet無效。
我不知道管理員在辦公室設置了什麼組策略。我想知道策略是否停止了Invoke-Expression技術和-EncodedCommand技術,它們都允許在不修改執行策略的情況下執行腳本文件的內容。 – MatthewMartin
我想不會,但我還沒有測試過。如果啓用了PowerShell,只需在命令行中輸入腳本,即可「運行」腳本。執行策略的目標並不是真正阻止確定的用戶,而是防止意識不到的用戶意外運行不受信任的腳本。 –
第三種方法,我在別處找到在互聯網上是使用
powershell.exe -EncodedCommand XXXXXXX
其中XXXXXXX是
$code = {
#powershell script goes here.
}
}
[convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($code))
參考結果: http://dmitrysotnikov.wordpress.com/2008/06/27/powershell-script-in-a-bat-file/
如果你想有一個簡單的方法從windows shell運行腳本myscript.ps1
那麼所有你需要的是一個蝙蝠Runmyscript.bat
具有以下內容:
type myscript.ps1 | powershell -
如此簡單,它使我不知道爲什麼你不能只是跑在首位的PS1,但是我們走。
,提示用戶對userinput鍵入腳本名稱的通用版本是:
set /p filename="Type name of script here: "
type %filename% | powershell -
我想,如果你願意,你也可以寫,使用打開任何文件在PowerShell中通用的VBScript腳本一個對話框使用這個http://todayguesswhat.blogspot.co.uk/2012/08/windows-7-replacement-for.html
在我看到的3種技術中,這是最簡單的。在家工作,在辦公室工作。 – MatthewMartin