我正在尝试通过PowerShell远程在Windows Server 2008 r2计算机上安装.net框架。阅读它似乎无法通过现有的PowerShell会话实现,但需要明确传入凭据(任何想法为什么会这样?)。但是,我仍然会收到许可错误。
例如,如果我跑:
$cred = Get-Credential -Credential 10.20.0.13\administrator
$Session=New-PsSession -ComputerName 10.20.0.13 -Credential $cred
Invoke-command -ScriptBlock {Start-Process -FilePath c:\installers\dotNetFx40_Full_x86_x64.exe -ArgumentList "/q /norestart /log c:\" -Wait} -Credential $cred -ComputerName 10.20.0.13
我可以在远程计算机上看到安装程序运行(在任务管理器中),临时文件夹是在c:\的根目录下创建的,提取的文件然后我得到一个700kb的日志文件。在那个日志文件的脚下我得到:
OS Version = 6.1.7601,Platform 2,Service Pack 1 OS Description = Win2K8R2 - x64标准版Service Pack 1 CommandLine = C:\ b65da67b927bfb71c84adcecefc019 \ Setup.exe / q / norestart / log c:\ / x86 / x64 TimeZone = GMT标准时间初始LCID = 2057使用 同时下载和安装机制操作:安装 包名称= Microsoft .NET Framework 4安装包版本= 4.0.30319用户体验数据收集策略:已禁用适用项目数:11 Exe (C:\ b65da67b927bfb71c84adcecefc019 \ SetupUtility.exe)成功。可执行程序 日志文件:dd_SetupUtility.txt ServiceControl操作成功! ServiceControl操作成功!可执行程序 的(C:\ b65da67b927bfb71c84adcecefc019 \ Windows6.1-KB958488-v6001-x64.msu程序) 失败,0x5 - 访问被拒绝。 。最终结果:安装 错误代码:(0x00000005),“访问被拒绝。”(已废弃 时间:0 00:01:12)。
因此拒绝访问。但是,使用完全相同的凭据,我可以执行其他任务(在Powershell中添加服务器角色,通过powershell等添加Windows功能),然后我可以使用相同的用户名/密码在框中进行RDP并在那里运行安装程序(完成正常)。
我在某处丢失某些东西,但似乎无法找出它是什么。我可以看到它为其他人工作(http://social.technet.microsoft.com/Forums/windowsserver/ar-SA/3045eb24-7739-4695-ae94-5aa7052119fd/install-dotnet-framework-4-using-powershell?forum=winserverpowershell)所以不知道我为什么会这样做。
任何帮助都非常感激。
由于
答案 0 :(得分:0)
您正在创建会话但从不使用它?
我之前没有在远程计算机上尝试过此操作,但尝试使用-Verb RunAs
“以管理员身份”运行此过程,如下所示:
$cred = Get-Credential -Credential 10.20.0.13\administrator
$Session=New-PsSession -ComputerName 10.20.0.13 -Credential $cred
Invoke-command -ScriptBlock {Start-Process -FilePath c:\installers\dotNetFx40_Full_x86_x64.exe -ArgumentList "/q /norestart /log c:\" -Wait -Verb RunAs } -Session $Session
答案 1 :(得分:0)
安装.NET framework 4.0时,它会安装一些更新(.msu)文件。
但是当我们远程安装.NET 4.0时,由于这些更新而失败。这背后的原因是,不允许远程安装这些更新。请查找知识库文章here。本文还提到了解决方法。