用于以管理员身份运行的Powershell脚本包装器

时间:2019-05-15 08:44:45

标签: powershell group-policy

我正在编写一个脚本以通过组策略进行部署。该脚本会删除许多注册表设置,以解决我们在Windows版本中遇到的问题。该脚本需要以管理员身份运行,因为密钥存在于需要删除管理员权限的配置单元中。

因为GP以登录用户身份运行Powershell脚本,所以我正在寻找创建一个包装程序,该包装程序将读取本地用户帐户的加密密码,然后使用它运行脚本。

我的脚本能够读取证书,但是运行start-process命令时出现错误。如果我尝试引用该脚本,即使您可以使用cat转储内容,也会给出错误的提示,指出该路径不存在。

然后我尝试将其读入变量并使用-command参数运行powershell。如果执行此操作,则会出现错误。

“启动过程:由于错误而无法运行此命令:参数不正确”

我知道我需要将代码括在大括号中,但是由于将它们连接到字符串上不起作用,因此我不确定这样做的方式。

if($connected) {
    $Encrypted = Get-Content <PATH TO PASSWORD FILE>
    $pass = ConvertTo-SecureString -String $Encrypted -Key (1..16)
    $user = <MY ADMIN ACCOUNT>
    $Credential = New-Object System.Management.Automation.PSCredential $user, $pass

    echo $(pwd)
    echo $(cat <PATH TO SCRIPT>)
    $code = $( cat <PATH TO SCRIPT> )
    #Invoke-Command -ScriptBlock {$code} -Credential $Credential
    #Start-Process powershell.exe <PATH TO SCRIPT> -Credential $Credential 
    Start-Process powershell.exe -ArgumentList "-command $code" -Credential $Credential 
}

我只需要一种在第二个脚本中执行代码的方法,但是由于它的行为不符合预期,所以我无法弄清楚该怎么做。抱歉,我确定我缺少明显的东西。

0 个答案:

没有答案