Powershell CustomScriptExtension无法运行启动进程(访问被拒绝)
我想在用户ssl存储中安装证书。因此,我希望使用用户凭据运行Powershell CustomScriptExtension无法运行启动进程(访问被拒绝),powershell,azure,ssl,virtual-machine,Powershell,Azure,Ssl,Virtual Machine,我想在用户ssl存储中安装证书。因此,我希望使用用户凭据运行启动进程,并设置-LoadUserProfile。否则导入过程将失败,并显示“未找到文件” 因为我想在配置VM时执行此操作,所以我使用CustomScriptExtension。当使用RDP登录到计算机但不在扩展中时,该命令运行正常。我收到“启动进程:由于错误,无法运行此命令:访问被拒绝。” 我认为执行用户(nAuthority\SYSTEM)有足够的权限执行该命令。有什么建议吗 将生成带有随机密码的新用户帐户,其凭据存储在$crede
启动进程
,并设置-LoadUserProfile
。否则导入过程将失败,并显示“未找到文件”
因为我想在配置VM时执行此操作,所以我使用CustomScriptExtension。当使用RDP登录到计算机但不在扩展中时,该命令运行正常。我收到“启动进程:由于错误,无法运行此命令:访问被拒绝。”
我认为执行用户(nAuthority\SYSTEM)有足够的权限执行该命令。有什么建议吗
将生成带有随机密码的新用户帐户,其凭据存储在$credentials
中。$filePath
指向用于导入证书的自定义c#命令行工具。$certPass
作为参数提供。这是我的密码:
Start-Process -LoadUserProfile -NoNewWindow -Credential $credentials -FilePath $filePath -ArgumentList @("--importCertificate", $certPass)
此问题在某种程度上与。出于安全原因,不允许系统用户模拟其他用户(通过启动进程、运行方式等)-有关模拟的详细信息,请参阅 虽然您可以尝试调整GPO或编辑注册表(使用命令行工具,如ntrights.exe)以使用启动进程,但我更喜欢。与启动流程类似,PsExec允许您传入用户名和密码,但也有一个-h标志,该标志使用帐户的提升令牌(如果可用)调用流程 然后,您的命令将类似于:
psexec -h -u $username -p $password c:\path\to\tool.exe --importCertificate $certPass
在我的ARM模板CustomScriptExtension PowerShell脚本中,我喜欢使用Chocolate安装PsExec:
Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
C:\ProgramData\chocolatey\bin\choco.exe install -y sysinternals
如果第一次运行,请不要忘记/接受EULA参数。