Microsoft .NET Framework4.0安装失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Microsoft .NET Framework4.0安装失败相关的知识,希望对你有一定的参考价值。

安装到后面就回滚,网上主流的方法都没用

Microsoft .NET Framework4.0安装失败的具体解决步骤如下:

1、首先我们打开电脑,在桌面上点按win+R进入运行,在运行界面上输入installer并点击确定。

2、然后点击右上角的视图选项图标,将视图选项切换为“详细信息。

3、然后在左上角的“名称”那里右键,点击“其他”。

4、在最下面找到“主题”,并勾选上,点击确定。

5、而后就可以在主题中仔细查找,找到带有Microsoft .net framework字样的主题,记住这里必须要带有上述字样的主题,其余的只带有net的就不要管了。

6、找到Microsoft .net framework字样的主题后就直接右键卸载,注意不要卸载掉3.5和2.0,这两个是系统里面本身就有的,卸载了会有不必要的麻烦,卸载完毕后重新安装即可安装成功。

参考技术A

Microsoft .NET Framework 4.0安装不了的原因是系统错误导致的,具体解决方法步骤如下:

1、首先打开计算机,然后打开dos,然后再里面输入“net stop wuauserv”回车来停止服务。

2、然后在运行界面内敲击键盘输入 ”%windir%“。

3、这样会打开一个文件夹,在这个文件夹中找到”SoftwareDistribution“文件夹。

4、然后把这个文件夹重命名为”SDold“。

5、再次回到dos,输入”net start wuauserv“,然后回车来启动服务。

6、可以看到正在启动服务,服务已经启动成功。

7、然后再次打开电脑运行,在运行中输入“regedit”。

8、这时会打开注册表编辑器,找到注册表,HKEY_LOCAL_MACHINE--SOFWARE--Microsoft--Internet Explorer文件下的MAIN,右键单击main后,在上面菜单中找到 编辑--权限。

9、点击后在弹出的对话框,就会出现“完全控制”。

10、最后在界面内找到“安装”选项并单击即可解决Microsoft .NET Framework 4.0安装不了的问题了。

参考技术B 回答

目前用的是什么系统?有些电脑店安装的系统被修改过不好安装.net

提问

自己装的win7旗舰版

回答

https://www.microsoft.com/zh-cn/download/details.aspx?id=17718

可以尝试在这里手动安装一下

提问

显示安装失败错误代码是

回答
提问

我是电脑里没这个软件所以要下

回答

如果说.net4.0安装不了可以尝试安装一下4.5 也是兼容4.0的

https://support.microsoft.com/zh-cn/topic/-net-framework-4-5-1-%E8%84%B1%E6%9C%BA%E5%AE%89%E8%A3%85%E7%A8%8B%E5%BA%8F-%E5%92%8C-net-framework-4-5-1-%E8%AF%AD%E8%A8%80%E5%8C%85-%E8%84%B1%E6%9C%BA%E5%AE%89%E8%A3%85%E7%A8%8B%E5%BA%8F-%E9%80%82%E7%94%A8%E4%BA%8E-windows-vista-windows-7-windows-8-windows-server-2008-windows-server-2008-r2-%E5%92%8C-windows-server-2012-697646a3-3673-206c-13c5-03134225660d

参考技术C 您好 你的问题我也遇到过 ,如今我已经解决了,没看错你的系统应该也是win7的
按照以下步骤操作:
1. 依次打开C盘--windows--systerm32,在此目录下右键cmd.exe以管理员身份运行。
进入后打net sotp WuAuServ 回车
2. echo %windir%回车(打完此命令后去windows文件夹下把SoftwareDistribution这个文件夹该个名字为SDold,如果无法改名字请重新启动电脑,从第一步骤重新开始)
3.在cmd中打入命令net start WuAuServ回车
然后 继续安装就可以了
有问题联系我
祝你成功!
参考技术D 复制来的
1.点击电脑桌面右下角的“开始”按钮,点击“运行”按钮,在弹出的节目输入框中输入“regedit”。
2.在弹出来的“注册表编辑器”界面上,选择HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\Internet

Explorer\Main。
3.右键选中Main,选择“权限”选项,在弹出来的“Main的权限”界面下,选中组或用户名称下内容,在

“完全控制”选项中,在“允许”下方打上“√”
最后关闭注册表编辑器、重新安装.NET就可以了

渗透基础——命令行下安装Microsoft .NET Framework

渗透基础——命令行下安装Microsoft .NET Framework 0x00 前言

在渗透测试中,有些工具的运行(例如高版本的Powershell)需要依赖Microsoft .NET Framework 4.0的环境。而默认配置下,Win7不支持Microsoft .NET Framework 4.0。为了保证工具能够在Win7下使用,这里就需要在命令行下实现安装Microsoft .NET Framework 4.0。

经过一番搜索,我没有找到介绍命令行下安装Microsoft .NET Framework的资料。

于是我写了这篇文章,介绍我的实现方法,开源C代码,分享实现原理和脚本开发的细节。

渗透基础——命令行下安装Microsoft .NET Framework 0x01 简介

本文将要介绍以下内容:

· Win7下安装Microsoft .NET Framework 4.0的正常方法

· 命令行下的实现方法

· 实现原理

· 脚本开发的细节

渗透基础——命令行下安装Microsoft .NET Framework 0x02 Win7下安装Microsoft .NET Framework 4.0的正常方法

Microsoft .NET Framework的安装包分为两种:

(1)Web Installer

https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=17851

Web Installer的文件很小,在安装过程中需要Internet连接来下载其他所需的.NET Framework组件

(2)Standalone Installer

https://www.microsoft.com/en-US/Download/confirmation.aspx?id=17718

Standalone Installer的文件相对来说会很大,因为它包括了完整的组件,在安装过程中不需要Internet连接。

这里以Standalone Installer为例,正常的流程如下:

1.下载Standalone Installer

获得文件dotNetFx40_Full_x86_x64.exe。

2.运行dotNetFx40_Full_x86_x64.exe

弹出对话框,选择同意协议后点击Install按钮。

如下图:

渗透基础——命令行下安装Microsoft .NET Framework

3.等待安装过程

如下图:

渗透基础——命令行下安装Microsoft .NET Framework

4.安装完成,弹出对话框

如下图:

渗透基础——命令行下安装Microsoft .NET Framework

点击Finish按钮进入下一步。

5.再次弹出对话框,提示选择是否重启系统

如下图:

渗透基础——命令行下安装Microsoft .NET Framework

在系统重启后,完成所有安装工作。

渗透基础——命令行下安装Microsoft .NET Framework 0x03 命令行下的实现方法

这里介绍我最开始的思路:

1.我们可以通过向安装程序的面板发送按键消息来模拟用户的点击行为

2.为保证在命令行下安装,需要对弹出的对话框发送隐藏窗口的消息

3.为保证按键准确,这里不应该采用计算坐标的方法模拟鼠标点击,而是枚举窗口获得按钮的句柄,向目标句柄发送鼠标点击的消息

为了验证我的思路,首先需要编写程序查看是否能够获得每个安装页面的按钮句柄。

我写了如下C代码:

#include <afx.h> #include <Windows.h> BOOL CALLBACK EnumChildWindowProc(HWND Child_hWnd, LPARAM lParam) { WCHAR szTitle[1024]; if (Child_hWnd) { GetWindowText(Child_hWnd, szTitle, sizeof(szTitle)); printf("[*] Handle: %08X ", Child_hWnd); printf("[*] Caption: %ws ", szTitle); return true; } return false; } int _tmain(int argc, _TCHAR *argv[]) { HWND hWnd3 = FindWindow(NULL, L"Microsoft .NET Framework 4 Setup"); if (hWnd3 == NULL) { printf("[!] I can't find the main window. "); return 0; } EnumChildWindows(hWnd3, EnumChildWindowProc, 0); return 0; }

对于第一个安装页面,使用程序来枚举所有子窗口,输出句柄和标题,如下图:

渗透基础——命令行下安装Microsoft .NET Framework

这里需要注意Install按钮,默认为disable状态,如果想要进入下一步,需要先将Install按钮设置为enable状态,再发送鼠标点击的消息。

在代码实现上加上一个if判断来实现,关键代码如下:

if (wcscmp(szTitle, L"&Install") == 0) { printf("[+] Catch it! "); printf("[*] Handle: %08X ", Child_hWnd); printf("[*] Caption: %ws ", szTitle); printf("[*] Enable the Install button. "); EnableWindow(Child_hWnd, TRUE); printf("[*] Send the click command to &Install. "); ::PostMessage(Child_hWnd, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(0,0)); ::PostMessage(Child_hWnd, WM_LBUTTONUP, MK_LBUTTON, MAKELPARAM(0, 0)); }

完成这一步后我们进入下一步,等待安装结束后进入第二个页面,同样枚举一下所有子窗口,如下图:

渗透基础——命令行下安装Microsoft .NET Framework

渗透基础——命令行下安装Microsoft .NET Framework

我们看到,之前页面的子窗口还在,我们需要向Finish按钮发送鼠标点击消息,关键代码如下:

if (wcscmp(szTitle, L"&Finish") == 0) { printf("[+] Catch it! "); printf("[*] Handle: %08X ", Child_hWnd); printf("[*] Caption: %ws ", szTitle); printf("[*] Send the click command to &Finish. "); ::PostMessage(Child_hWnd, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(0, 0)); ::PostMessage(Child_hWnd, WM_LBUTTONUP, MK_LBUTTON, MAKELPARAM(0, 0)); }

接下来进入最后一步,再一次枚举所有子窗口,如下图:

渗透基础——命令行下安装Microsoft .NET Framework

我们看到,页面的子窗口被刷新,在程序实现上这里需要重新获得主窗口的句柄,我们向Restart Later按钮发送鼠标点击消息,关键代码如下:

if (wcscmp(szTitle, L"Restart &Later") == 0) { printf("[+] Catch it! "); printf("[*] Handle: %08X ", Child_hWnd); printf("[*] Caption: %ws ", szTitle); printf("[*] Send the click command to Restart &Later. "); ::PostMessage(Child_hWnd, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(0, 0)); ::PostMessage(Child_hWnd, WM_LBUTTONUP, MK_LBUTTON, MAKELPARAM(0, 0)); }

至此,关键的实现代码已经完成。

而要完整的实现在命令行下安装Microsoft .NET Framework,还需要考虑以下问题;

1.当启动安装程序dotNetFx40_Full_x86_x64.exe前,需要检查安装环境,如果已经存在另一个安装进程,那么会弹框提示冲突

如下图:

渗透基础——命令行下安装Microsoft .NET Framework

这里需要在启动前做一个判断:如果存在另一个安装进程,就结束安装操作。

2.当启动安装程序dotNetFx40_Full_x86_x64.exe时,会启动子进程Setup.exe,这里没法做到通过设置启动参数隐藏启动进程Setup.exe来隐藏窗口

这里需要加一个循环判断,只要发现主窗口就对其隐藏。

为了避免CPU占用过多,在做while循环时,应该加一个Sleep函数。

3.启动安装程序后需要模拟鼠标点击

需要注意的是,接下来的安装过程中,子窗口Install(名称为&Install)会一直存在,为了避免重复向Install按钮发送点击消息,在实现上我使用了第二个函数来匹配其他按钮。

4.安装完成后,弹出新的窗口提示安装成功,捕获子窗口,向其发送鼠标按键的命令

这里捕获的子窗口名称为&Finish。

5.接下来,弹框提示是否重新启动系统时,需要通过FindWindow()重新获得句柄

这里可以放在第二个函数的同一个循环中,当发现子窗口Restart &Later时,向其发送鼠标按键的命令。

需要注意弹出的窗口为新窗口,不能使用之前的窗口句柄,需要通过FindWindow()重新获得句柄。

https://github.com/3gstudent/Homework-of-C-Language/blob/master/Install_.Net_Framework_from_the_command_line.cpp

代码支持命令行下安装Microsoft .NET Framework 4、Microsoft .NET Framework 4.5和Microsoft .NET Framework 4.5.1

渗透基础——命令行下安装Microsoft .NET Framework 0x04 小结

本文介绍了通过发送鼠标消息在命令行下安装Microsoft .NET Framework的方法,开源C代码,分享实现原理和脚本开发的细节。

本文为 3gstudent 原创稿件,授权嘶吼独家发布

以上是关于Microsoft .NET Framework4.0安装失败的主要内容,如果未能解决你的问题,请参考以下文章

microsoft .net framework4简体中文语言包 能删除吗 做啥用的。

我家电脑WIN7系统的 安装不了net framework4 求系统方面专家教导下

win 10安装.net framework4.0安装出现阻滞怎么弄?具体看图!急!

IIS配置完成,启动网站报Framework4错误

如何安装.net framework 4

win10安装net framework4.0报net framework4已是此操作系统的一部分,删除4.5和4.6重启安装还是报这个错