Visual Studio代码未签名的Powershell脚本

时间:2017-10-30 20:39:02

标签: powershell visual-studio-code

我开始使用Visual Studio Code for Powershell脚本编写。我想关闭对未签名代码的检查,但无法找到如何执行此操作。我在论坛上也找不到任何东西。

5 个答案:

答案 0 :(得分:9)

您可以通过在powershell.exe命令中添加参数来调整策略。 为此,请打开设置json文件。然后添加以下行:


clrs <- c("blue", "light blue", "red", "rose", "ruby", "yellow", "green", "black", "brown", "royal blue")
dfx <- data.frame(colors1=clrs, colors2 = clrs, Amount=sample(100,10))

# Function to replace levels with regex matching
make_levels <- function(.f, patterns, replacement = NULL, ignore.case = FALSE) {

  lvls <- levels(.f)

  # Replacements can be listed in the replacement argument, taken as names in patterns, or the patterns themselves.
  if(is.null(replacement)) {
    if(is.null(names(patterns)))
      replacement <- patterns
    else
      replacement <- names(patterns)
  }

  # Find matching levels
  lvl_match <- setNames(vector("list", length = length(patterns)), replacement)
  for(i in seq_along(patterns))
    lvl_match[[replacement[i]]] <- grep(patterns[i], lvls, ignore.case = ignore.case, value = TRUE)

  # Append other non-matching levels
  lvl_other <- setdiff(lvls, unlist(lvl_match))
  lvl_all <- append(
    lvl_match, 
    setNames(as.list(lvl_other), lvl_other)
  )

  return(lvl_all)

}

# Replace levels
levels(dfx$colors2) <- make_levels(.f = dfx$colors2, patterns = c(Blue = "blue", Red = "red|rose|ruby"))

dfx
#>       colors1 colors2 Amount
#> 1        blue    Blue     75
#> 2  light blue    Blue     55
#> 3         red     Red     47
#> 4        rose     Red     83
#> 5        ruby     Red     56
#> 6      yellow  yellow     10
#> 7       green   green     25
#> 8       black   black     29
#> 9       brown   brown     23
#> 10 royal blue    Blue     24

答案 1 :(得分:1)

您可以使用命令Set-ExecutionPolicy来更改系统的执行策略。您需要从管理会话中执行此操作。您可以使用PowerShell提示符中的help Set-ExecutionPolicy命令找到相应的语法。

您还可以在线查找命令参考,例如SS64Technet

Stack Overflow上还有一个高度可见的Q&A,信息相同。

答案 2 :(得分:0)

我通过将策略设置为来解决:

Set-ExecutionPolicy –ExecutionPolicy RemoteSigned

以管理员身份运行的Visual code集成环境。

以下博客明确列出了解决该问题的步骤:

http://donovanbrown.com/post/Using-PowerShell-in-VS-Code

答案 3 :(得分:0)

PowerShell的默认设置有助于防止运行恶意脚本。默认情况下,您应该/可以在VSCode集成终端上运行脚本。

要更改PowerShell安全设置,请以管理员权限打开PowerShell并运行以下命令:

Get-ExecutionPolicy -List

您应该收到这样的答复:

        Scope ExecutionPolicy
    ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       RemoteSigned  
 LocalMachine       AllSigned

CurrentUser可能也是未定义的,因为您无法在VSCode终端上运行脚本。

要更改此设置,请运行以下命令:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

重新打开VSCode终端,它现在应该可以工作。

如果您想了解更多详细信息,可以在这里找到完整的文档:https://docs.microsoft.com/es-es/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7

答案 4 :(得分:0)

转到选择默认外壳

enter image description here

然后选择命令提示符而不是Windows power shell

enter image description here