Tim*_*Tim 10 powershell uac appcmd invoke-command
好的,这是我的问题:
我试图在服务器上远程运行脚本.
我是两个盒子的管理员,防火墙例外已经到位,启用了远程管理,其他一切看起来都很好,我可以看到.
invoke-command -ComputerName $ComputerName -ScriptBlock `
{
cd C:\Windows\System32\inetsrv\;
./appcmd.exe ADD vdir /app.name:<SiteName>/ /path:/<VDir Name> /physicalPath:<Path to files>
}
Run Code Online (Sandbox Code Playgroud)
我一直收到以下错误
ERROR ( hresult:80070005, message:Failed to commit configuration changes. Access is denied.
Run Code Online (Sandbox Code Playgroud)
它试图运行的服务器是服务器2k8 R2盒子,我认为这个问题是UAC问题.无论如何要让它以管理员身份运行而不必在UAC盒子上单击是吗?
这段代码最终将成为一个必须完全自动化的脚本.
任何帮助将不胜感激.
Tim*_*Tim 10
好.经过一些研究和测试,我发现了这个问题.在禁用UAC和防火墙并且脚本仍无法正常工作之后,我深入挖掘并发现主要问题是invoke-command运行命令的方式.它使用运行脚本的人员的凭据对服务器进行身份验证,然后尝试使用其他帐户来运行权限或降低用户的权限,以便无法运行某些命令.
我将-Credentials开关添加到了invoke命令,现在一切正常.更正了以下代码示例:
$user = New-Object Management.Automation.PSCredential("$UserName", $securePassword)
invoke-command -ComputerName $ComputerName -Credential $user -ScriptBlock `
{
cd C:\Windows\System32\inetsrv\;
./appcmd.exe ADD vdir /app.name:<SiteName>/ /path:/<VDir Name> /physicalPath:<Path to files>
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
42748 次 |
最近记录: |