{
	"id": "f518a9dc-159f-4fbe-a022-b4e0c8523c3d",
	"created_at": "2026-04-06T01:29:32.752772Z",
	"updated_at": "2026-04-10T13:11:45.906313Z",
	"deleted_at": null,
	"sha1_hash": "e3c0ef5ddf6772b89827380cb772eea3c330904c",
	"title": "Installutil.exe (Installer Tool) - .NET Framework",
	"llm_title": "",
	"authors": "",
	"file_creation_date": "0001-01-01T00:00:00Z",
	"file_modification_date": "0001-01-01T00:00:00Z",
	"file_size": 89178,
	"plain_text": "Installutil.exe (Installer Tool) - .NET Framework\r\nBy gewarren\r\nArchived: 2026-04-06 00:43:16 UTC\r\nThe Installer tool is a command-line utility that allows you to install and uninstall server resources by executing\r\nthe installer components in specified assemblies. This tool works in conjunction with classes in the\r\nSystem.Configuration.Install namespace.\r\nThis tool is automatically installed with Visual Studio. To run the tool, use Visual Studio Developer Command\r\nPrompt or Visual Studio Developer PowerShell.\r\nAt the command prompt, type the following:\r\ninstallutil [/u[ninstall]] [options] assembly [[options] assembly] ...\r\nArgument Description\r\nassembly\r\nThe file name of the assembly in which to execute the installer components. Omit this\r\nparameter if you want to specify the assembly's strong name by using the /AssemblyName\r\noption.\r\nOption Description\r\n/h[elp]\r\n-or-\r\n/?\r\nDisplays command syntax and options for the tool.\r\n/help assembly\r\n-or-\r\n/? assembly\r\nDisplays additional options recognized by individual installers within\r\nthe specified assembly, along with command syntax and options for\r\nInstallUtil.exe. This option adds the text returned by each installer\r\ncomponent's Installer.HelpText property to the help text of\r\nInstallUtil.exe. For example, if ServiceProcessInstaller.Account is\r\nUser , the /username and /password options are available.\r\nhttps://msdn.microsoft.com/en-us/library/50614e95.aspx\r\nPage 1 of 5\n\nOption Description\r\n/AssemblyName \"assemblyName\r\n,Version=major.minor.build.revision\r\n,Culture=locale\r\n,PublicKeyToken=publicKeyToken\"\r\nSpecifies the strong name of an assembly, which must be registered in\r\nthe global assembly cache. The assembly name must be fully qualified\r\nwith the version, culture, and public key token of the assembly. The\r\nfully qualified name must be surrounded by quotes.\r\nFor example, \"myAssembly, Culture=neutral,\r\nPublicKeyToken=0038abc9deabfle5, Version=4.0.0.0\" is a fully\r\nqualified assembly name.\r\n/InstallStateDir=[\r\ndirectoryName ]\r\nSpecifies the directory of the .InstallState file that contains the data\r\nused to uninstall the assembly. The default is the directory that\r\ncontains the assembly.\r\n/LogFile= [filename]\r\nSpecifies the name of the log file where installation progress is\r\nrecorded. By default, if the /LogFile option is omitted, a log file\r\nnamed assemblyname.InstallLog is created. If filename is omitted, no\r\nlog file is generated.\r\n/LogToConsole ={ true | false }\r\nIf true , displays output to the console. If false (the default),\r\nsuppresses output to the console.\r\n/ShowCallStack\r\nOutputs the call stack to the log file if an exception occurs at any\r\npoint during installation.\r\n/u [ ninstall ]\r\nUninstalls the specified assemblies. Unlike the other options, /u\r\napplies to all assemblies regardless of where the option appears on the\r\ncommand line.\r\nIndividual installers used within an assembly may recognize options in addition to those listed in the Options\r\nsection. To learn about these options, run InstallUtil.exe with the paths of the assemblies on the command line\r\nalong with the /? or /help option. To specify these options, you include them on the command line along with\r\nthe options recognized by InstallUtil.exe.\r\nNote\r\nHelp text on the options supported by individual installer components is returned by the Installer.HelpText\r\nproperty. The individual options that have been entered on the command line are accessible programmatically\r\nfrom the Installer.Context property.\r\nAll options and command-line parameters are written to the installation log file. However, if you use the\r\n/Password parameter, which is recognized by some installer components, the password information is replaced\r\nby eight asterisks (*) and won't appear in the log file.\r\nImportant\r\nhttps://msdn.microsoft.com/en-us/library/50614e95.aspx\r\nPage 2 of 5\n\nIn some cases, parameters passed to the installer may include sensitive or personally identifiable information,\r\nwhich, by default, is written to a plain text log file. To prevent this behavior, you can suppress the log file by\r\nspecifying /LogFile= (with no filename argument) on the command line.\r\n.NET Framework applications consist of traditional program files and associated resources, such as message\r\nqueues, event logs, and performance counters, that must be created when the application is deployed. You can use\r\nan assembly's installer components to create these resources when your application is installed and to remove\r\nthem when your application is uninstalled. Installutil.exe detects and executes these installer components.\r\nYou can specify multiple assemblies on the same command line. Any option that occurs before an assembly name\r\napplies to that assembly's installation. Except for /u and /AssemblyName , options are cumulative but\r\noverridable. That is, options specified for one assembly apply to all subsequent assemblies unless the option is\r\nspecified with a new value.\r\nIf you run Installutil.exe against an assembly without specifying any options, it places the following three files\r\ninto the assembly's directory:\r\nInstallUtil.InstallLog - Contains a general description of the installation progress.\r\nassemblyname.InstallLog - Contains information specific to the commit phase of the installation process.\r\nFor more information about the commit phase, see the Commit method.\r\nassemblyname.InstallState - Contains data used to uninstall the assembly.\r\nInstallutil.exe uses reflection to inspect the specified assemblies and to find all Installer types that have the\r\nSystem.ComponentModel.RunInstallerAttribute attribute set to true . The tool then executes either the\r\nInstaller.Install or the Installer.Uninstall method on each instance of the Installer type. Installutil.exe performs\r\ninstallation in a transactional manner; that is, if one of the assemblies fails to install, it rolls back the installations\r\nof all other assemblies. Uninstall is not transactional.\r\nInstallutil.exe cannot install or uninstall delay-signed assemblies, but it can install or uninstall strong-named\r\nassemblies.\r\nThe 32-bit version of the common language runtime (CLR) ships with only the 32-bit version of the Installer tool,\r\nbut the 64-bit version of the CLR ships with both 32-bit and 64-bit versions of the Installer tool. When using the\r\n64-bit CLR, use the 32-bit Installer tool to install 32-bit assemblies, and the 64-bit Installer tool to install 64-bit\r\nand common intermediate language (CIL) assemblies. Both versions of the Installer tool behave the same.\r\nYou can't use Installutil.exe to deploy a Windows service that was created by using C++, because Installutil.exe\r\ndoesn't recognize the embedded native code that's produced by the C++ compiler. If you try to deploy a C++\r\nWindows service with Installutil.exe, an exception such as BadImageFormatException will be thrown. To work\r\nwith this scenario, move the service code to a C++ module, and then write the installer object in C# or Visual\r\nBasic.\r\nThe following command displays a description of the command syntax and options for InstallUtil.exe.\r\ninstallutil /?\r\nhttps://msdn.microsoft.com/en-us/library/50614e95.aspx\r\nPage 3 of 5\n\nThe following command displays a description of the command syntax and options for InstallUtil.exe. It also\r\ndisplays a description and list of options supported by the installer components in myAssembly.exe if help text\r\nhas been assigned to the installer's Installer.HelpText property.\r\ninstallutil /? myAssembly.exe\r\nThe following command executes the installer components in the assembly myAssembly.exe .\r\ninstallutil myAssembly.exe\r\nThe following command executes the installer components in an assembly by using the /AssemblyName switch\r\nand a fully qualified name.\r\ninstallutil /AssemblyName \"myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=4.0.0.0\"\r\nThe following command executes the installer components in an assembly specified by file name and in an\r\nassembly specified by strong name. Note that all assemblies specified by file name must precede assemblies\r\nspecified by strong name on the command line, because the /AssemblyName option cannot be overridden.\r\ninstallutil myAssembly.exe /AssemblyName \"myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version\r\nThe following command executes the uninstaller components in the assembly myAssembly.exe .\r\ninstallutil /u myAssembly.exe\r\nThe following command executes the uninstaller components in the assemblies myAssembly1.exe and\r\nmyAssembly2.exe .\r\ninstallutil myAssembly1.exe /u myAssembly2.exe\r\nBecause the position of the /u option on the command line is not important, this is equivalent to the following\r\ncommand.\r\ninstallutil /u myAssembly1.exe myAssembly2.exe\r\nThe following command executes the installers in the assembly myAssembly.exe and specifies that progress\r\ninformation will be written to myLog.InstallLog .\r\ninstallutil /LogFile=myLog.InstallLog myAssembly.exe\r\nhttps://msdn.microsoft.com/en-us/library/50614e95.aspx\r\nPage 4 of 5\n\nThe following command executes the installers in the assembly myAssembly.exe , specifies that progress\r\ninformation should be written to myLog.InstallLog , and uses the installers' custom /reg option to specify that\r\nupdates should be made to the system registry.\r\ninstallutil /LogFile=myLog.InstallLog /reg=true myAssembly.exe\r\nThe following command executes the installers in the assembly myAssembly.exe , uses the installer's custom\r\n/email option to specify the user's email address, and suppresses output to the log file.\r\ninstallutil /LogFile= /email=admin@mycompany.com myAssembly.exe\r\nThe following command writes the installation progress for myAssembly.exe to myLog.InstallLog and writes\r\nthe progress for myTestAssembly.exe to myTestLog.InstallLog .\r\ninstallutil /LogFile=myLog.InstallLog myAssembly.exe /LogFile=myTestLog.InstallLog myTestAssembly.exe\r\nSystem.Configuration.Install\r\nTools\r\nDeveloper command-line shells\r\nSource: https://msdn.microsoft.com/en-us/library/50614e95.aspx\r\nhttps://msdn.microsoft.com/en-us/library/50614e95.aspx\r\nPage 5 of 5",
	"extraction_quality": 1,
	"language": "EN",
	"sources": [
		"MITRE"
	],
	"origins": [
		"web"
	],
	"references": [
		"https://msdn.microsoft.com/en-us/library/50614e95.aspx"
	],
	"report_names": [
		"50614e95.aspx"
	],
	"threat_actors": [],
	"ts_created_at": 1775438972,
	"ts_updated_at": 1775826705,
	"ts_creation_date": 0,
	"ts_modification_date": 0,
	"files": {
		"pdf": "https://archive.orkl.eu/e3c0ef5ddf6772b89827380cb772eea3c330904c.pdf",
		"text": "https://archive.orkl.eu/e3c0ef5ddf6772b89827380cb772eea3c330904c.txt",
		"img": "https://archive.orkl.eu/e3c0ef5ddf6772b89827380cb772eea3c330904c.jpg"
	}
}