我正在编写一个脚本以通过组策略进行部署。该脚本会删除许多注册表设置,以解决我们在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
}
我只需要一种在第二个脚本中执行代码的方法,但是由于它的行为不符合预期,所以我无法弄清楚该怎么做。抱歉,我确定我缺少明显的东西。