powershell - 以管理员身份运行的 Powershell 脚本包装器
问题描述
我正在编写一个脚本以通过组策略进行部署。该脚本删除了一些注册表设置,以解决我们在构建 Windows 时遇到的问题。该脚本需要以管理员身份运行,因为密钥存在于需要管理员权限才能删除的配置单元中。
因为 GP 以登录用户身份运行 powershell 脚本,所以我正在考虑创建一个包装器,它将读取本地用户帐户的加密密码,然后使用它运行脚本。
我的脚本能够读取凭证,但在运行 start-process 命令时出现错误。如果我尝试引用脚本,它将给出路径不存在的错误,即使您可以使用 cat 转储内容。
然后我尝试将它读入一个变量并使用 -command 参数运行 powershell。如果我这样做,我会得到一个错误。
“Start-Process:由于错误而无法运行此命令:参数不正确”
我知道我需要将代码括在大括号中,但我不确定这是如何完成的,因为将它们连接到字符串不起作用。
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
}
我只需要一种在我的第二个脚本中执行代码的方法,但我无法弄清楚如何执行此操作,因为它的行为不符合预期。抱歉,我确信我遗漏了一些明显的东西。
解决方案
推荐阅读
- sql-server - 为什么 SQL 开发人员 ID 列返回我 BigDecimal 而不是简单整数?
- jquery - Angular 5 jQuery - 如何修改 DOM 元素?
- javascript - wordpress页面如何插入带有分页的表格
- python - 在 python-numpy 中定义一个自定义 float8 并从/转换为 float16?
- android - 如何查询其文档具有参考字段的集合并使用参考字段数据进行查询?
- javascript - 发出 JQuery Post 命令时,Event.preventDefault() 不起作用
- java - 如何在不使用 String Buffer 类 replace() 方法的情况下替换字符串中的字符?
- python-2.7 - 无法覆盖超类 __init__():对象没有属性“_testMethodName”?
- http - 从 CloudWatch 流式传输日志数据
- python - 在 Pandas 中写入和加载数字字符串的 csv 时如何防止 dtype 更改