powershell - 以管理员身份远程运行Powershell

标签 powershell

在这里,IT管理员,第一个问题。在线上,我找到了一个简单的Powershell脚本,该脚本可以在用户的​​PC上手动创建系统还原点。我想通过GPO计划任务将其部署到所有公司计算机。脚本如下:

Checkpoint-Computer -Description 'System Restore Point' -RestorePointType modify_settings

脚本工作正常。问题是Powershell需要以管理员身份运行。在计划的任务菜单中,仅当用户是本地管理员时,才能以最高特权运行该选项。出于安全原因,我们公司将无法授予用户的本地管理员访问权限。

我的问题是,我可以添加一些简单的命令来提升Powershell的管理权限吗?另外,必须确保不会提示用户,并且其余命令仍将执行。我不介意在脚本本身中存储用户名或管理员密码,因为用户将看不到该脚本。我很欣赏所有建议,但前提是执行起来很简单。请记住,我不是程序员,我是Cisco网络工程师以及Windows Server管理员。我的老板只希望我按设定的时间表创建手动还原点,我认为Powershell可能是最好的。虽然可以打开其他脚本类型。

最佳答案

您的问题分为两部分。第一部分是关于如何以具有提升权限的特定用户身份运行计划任务。我认为只能使用本地管理员帐户这样做是不正确的,但这对于本网站来说是不合时宜的。考虑将其单独发布在ServerFault上(如果您这样做并链接它,我会看一下)。

第二部分涉及将凭据嵌入脚本。

这通常是个坏主意。说用户“不会”看到它与说他们看不到不同。如果他们看到了该凭据,则该凭据将受到损害,并且基本上该用户现在可以微不足道地拥有提升的权限。

因此,您需要足够安全地保护脚本文件,以便无特权的用户无法读取该文件。

加密凭证

PowerShell还具有[PSCredential]对象,该对象将密码存储为安全字符串。可以存储和检索此对象的加密版本。

例如:

$cred = Get-Credential
$cred | Export-CliXml -Path C:\my\cred.xml

XML文件将包含凭证,但将被加密。它只能由对其进行加密的同一台计算机上的同一用户解密。

如果需要,这可能是您使用证书的一种方式。但说实话,事实并非如此。

我将如何做

运行您的计划任务SYSTEM
  • 应该具有足够的特权才能获取还原点
  • 这是本地
  • 即使通过GPO
  • ,也可以很容易地将计划任务设置为SYSTEM运行
  • 无需密码即可处理
  • 关于powershell - 以管理员身份远程运行Powershell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34324539/

    相关文章:

    arrays - Powershell搜索文本文件以进行匹配,并在行尾添加回车符

    powershell - 如何让我的脚本允许任何参数?

    powershell - 如何使用路径作为参数?

    c# - 编辑taglib-sharp(音频元数据)的源代码

    Powershell:将分数转换为整数 - 令人惊讶的舍入行为

    powershell - 如何引用 CSV 中的多行来卸载软件?

    azure - Azure yml 文件中的 Powershell 变量未从一个阶段传递到其他阶段

    xml - 通过属性值选择 XML 元素并添加一个元素

    sql-server - 将比较对象结果添加到差异数据集

    azure - 新-AzWebAppBackup : Operation returned an invalid status code 'Bad Request'