我有自己的本地自定义证书我创建并签署了PowerShell脚本。当我在另一个Windows系统上执行自签名的ps1脚本时,将执行策略设置为" Allsigned"在批处理文件中运行powershell.exe行时,我会得到以下提示..
powershell.exe -nologo -file" C:\ Users \ admin \ Desktop \ test \ test.ps1"
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.+'
compile 'com.android.support:preference-v7:23.4.0'
compile 'com.android.support:design:26.+'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.afollestad.material-dialogs:core:0.9.4.7'
compile 'com.afollestad.material-dialogs:commons:0.9.4.7'
compile 'com.android.support:support-v4:26.+'
testCompile 'junit:junit:4.12'
}
我无法为powershell.exe运行-bypass模式,所以这是不可能的。所以我试图找到一种方法用R自动响应这个提示。看起来好像提示是在powershell本身内而不是来自windows cmd行。我尝试在批处理文件中回显R
Do you want to run software from this untrusted publisher?
File C:\Users\admin\Desktop\test\test.ps1 is published by CN=get_test PowerShell and is not trusted on your system. Only run scripts
from trusted publishers.
[V] Never run [D] Do not run [R] Run once [A] Always run [?] Help
(default is "D"):
但仍然没有奏效。我查看了powershell.exe选项,并没有看到通过参数响应的方法,而不是设置-bypass模式,这是我在环境中无法做到的。
是否有任何已知的方法来编码从powershell.exe响应此提示?或者除非你能用-bypass模式执行,否则它是不可能的?感谢
答案 0 :(得分:1)
尝试在目标计算机上运行以下脚本:
powershell.exe -ExecutionPolicy bypass -c " . 'path_to_script.ps1';"
如果您无法继续运行,那么正如john所评论的那样,您的组织已制定严格的策略来阻止Powershell脚本执行。
中描述了组策略示例在这种情况下,您需要签署涉及以下内容的代码:
您可以先阅读https://www.darkoperator.com/blog/2013/3/5/powershell-basics-execution-policy-part-1.html
答案 1 :(得分:0)
如果您需要在脚本/CI 管道中禁用该安全提示,您还可以在运行脚本之前执行以下操作:
Set-ExecutionPolicy Bypass -Scope Process -Force
# and then, for example:
venv\Scripts\Activate.ps1
# or
C:\Users\admin\Desktop\test\test.ps1