首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在不生成msbuild.exe进程的情况下从Powershell运行MSBuild?

在不生成msbuild.exe进程的情况下从Powershell运行MSBuild,可以使用以下方法:

  1. 使用MSBuild命令行参数

可以使用MSBuild命令行参数来指定不生成msbuild.exe进程。具体方法是在Powershell中使用以下命令:

代码语言:txt
复制
msbuild.exe /nologo /noconsolelogger /v:minimal /clp:NoSummary /p:BuildInParallel=true /p:BuildProjectReferences=false /p:Configuration=Release /p:Platform=x64 /p:OutputPath=bin\x64\Release\ /p:ErrorReport=none /p:WarningsNotAsErrors=MSB4011 Solution.sln

其中,/nologo /noconsolelogger /v:minimal /clp:NoSummary 参数可以减少MSBuild的输出信息,/p:BuildInParallel=true /p:BuildProjectReferences=false 参数可以启用并行构建,/p:Configuration=Release /p:Platform=x64 /p:OutputPath=bin\x64\Release\ 参数可以指定构建的配置和平台,/p:ErrorReport=none /p:WarningsNotAsErrors=MSB4011 参数可以控制错误报告和警告行为。

  1. 使用MSBuild API

可以使用MSBuild API来在Powershell中运行MSBuild,以下是一个示例代码:

代码语言:powershell
复制
Add-Type -AssemblyName 'Microsoft.Build, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'

$projectFile = 'Path\To\Project.csproj'
$buildParameters = New-Object 'Microsoft.Build.Execution.BuildParameters'
$buildParameters.Loggers = New-Object 'System.Collections.Generic.List[Microsoft.Build.Framework.ILogger]'
$buildParameters.Loggers.Add((New-Object 'Microsoft.Build.Logging.ConsoleLogger'))
$buildRequest = New-Object 'Microsoft.Build.Execution.BuildRequestData' -ArgumentList $projectFile, $null, '4.0', $null, $null, New-Object 'System.Collections.Generic.Dictionary[string,string]'
$buildRequest.GlobalProperties.Add('Configuration', 'Release')
$buildRequest.GlobalProperties.Add('Platform', 'x64')
$buildRequest.GlobalProperties.Add('OutputPath', 'bin\x64\Release\')
$buildRequest.GlobalProperties.Add('ErrorReport', 'none')
$buildRequest.GlobalProperties.Add('WarningsNotAsErrors', 'MSB4011')
$buildResult = [Microsoft.Build.Execution.BuildManager]::DefaultBuildManager.Build($buildParameters, $buildRequest)

这个示例代码使用MSBuild API来创建一个BuildParameters对象和一个BuildRequestData对象,然后使用BuildManager类的Build方法来执行MSBuild构建。在这个示例中,我们设置了一些全局属性,例如Configuration、Platform、OutputPath、ErrorReport和WarningsNotAsErrors,以控制MSBuild的行为。

总之,在不生成msbuild.exe进程的情况下从Powershell运行MSBuild,可以使用MSBuild命令行参数或MSBuild API来实现。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

OFFENSIVE LATERAL MOVEMENT 横向移动(译文)

两者之间区别,尽管CS文档有说明,PsExec(psh)仍在调用Powershell.exe,并且您信标将作为Powershell.exe进程运行,而没有(psh)PsExec将作为rundll32...默认情况下,PsExec将生成rundll32.exe进程以从中运行。它不会将DLL拖放到磁盘或任何东西上,因此蓝队角度来看,如果rundll32.exe在没有参数情况下运行,则非常可疑。...攻击者角度来看,这用于编译C#代码以生成恶意二进制文件或有效负载,甚至直接XML文件运行有效负载。MSBuild也可以通过SMB进行编译,如下语法所示。...命令,而不会通过不受管进程(二进制直接编译成机器代码)而生成Powershell。...此方法问题在于它产生了两个进程:mmc.exe,因为MMC2.0和MSBuild.exe调用了DCOM方法。 另外,这确实会临时写入磁盘。

4.1K10

红队技巧-白加黑

,通过微软官方介绍来看,Msbuild.exe可以通过项目xml文件来构建,这也是关键。...适用条件:.NET Framework>=4.0 第一步找到Msbuild.exe 默认情况下Msbuild.exe是没有在系统环境变量中,所以需要我们先找到,默认情况下Msbuild.exe是在....这里要下载nps_payload工具可以生成xml或hta文件,msbuild都可以执行,且自带免杀挺有效。...第三步生成启动项目文件 msbuild.exe Micropoor.xml 2.2 白名单Installutil.exe Installer工具是一个命令行实用程序,允许您通过执行指定程序集中安装程序组件来安装和卸载服务器资源...工具 GreatSCT可以基于Metasploit、自定义shellcode、powershell生成payload,然后可利用多种白名单程序进行加载,从而达到免杀目的。

2.3K20

MSBuild 命令简单使用

MSBuild 命令简单使用 独立观察员 2022 年 7 月 7 日 位置 在 VS 安装目录下,:D:Microsoft Visual Studio2022EnterpriseMSBuildCurrentBin...view=vs-2022) 使用 MSBuild.exe 生成项目或解决方案文件时,可以包含几个开关来指定过程各个方面。 每个开关都有两种形式:-switch 和 /switch。...如果 Windows 命令提示符之外 shell 运行 MSBuild,则开关参数列表(用分号或逗号分隔)可能需要单引号或双引号,以确保将列表传递到 MSBuild,而不是由 shell 解释。...语法 MSBuild.exe [Switches] [ProjectFile] 参数 参数 描述 ProjectFile 在指定项目文件中生成目标。...开关 略(见原文) 示例 MSBuild.exe MyProject.proj -t:rebuild 问题 1、VS 中生成前事件中参数未被识别的问题 项目中有如下生成事件,其中使用了 $(SolutionDir

1.2K10

一文搞定SonarQube接入C#(.NET)代码质量分析

msbuild.exe路径一般如下: X86: C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe X64: C:\Program Files (x86...2、使用MSBuild方式进行Sonar Scanner扫描代码前期准备文件生成,CMD命令下运行: SonarScanner.MSBuild.exe begin /k:"hcloud.Common.KDY.WebApi.Core...=Release (指定编译模式) 或者 MSBuild.exe D:\hcloud\Common\Common.sln /t:Rebuild (指定具体.sln解决方案) 编译项目运行结果如下所示...4、由于示例中Jenkins服务是部署在Linux系统中,故此处可添加一台Windows主机(10.0.0.148)作为C#项目编译运行环境,在Windows节点配置中,添加并配置相应工具,如下图所示...解决方法: 登录节点10.0.0.148(windows主机),右击我电脑选择管理然后管理界面里面找到服务或者在cmd界面输入services.msc打开服务管理界面,服务管理界面找到jenkins

4.8K31

远控免杀入门到实践——工具总结篇

Mono2.11 版本开始,采用编译器叫 mcs,它作用是将 C# 编译为 CIL(Common Language Infrastructure,通用中间语言,也叫 MSIL 微软中间语言,这个语言能运行在所有支持...通过在项目或解决方案文件中调用 msbuild.exe,可以在未安装 Visual Studio 环境中编译和生成程序。...nps_payload 只是使用了白名单 msbuild.exe 方法,nps_payload 还对生成文件进行了混淆处理,使用非常简单,免杀效果也是不错。...2、Msbuild.exe:Microsoft Build Engine 是一个用于构建应用程序平台。这个引擎,也称为 MSBuild。...生成基于白名单 Msbuild.exe 文件,virustotal.com 上 payload.xml 文件查杀率为 14/56 生成单个可执行 payload.exe 文件,virustotal.com

3.7K21

保护力度不够Microsoft SQL数据库正成为黑客攻击目标

可以观察到,攻击者部署了可以访问服务器加密货币挖矿工具,Lemon Duck、KingMiner和Vollgar。...如果攻击者通过这些进程成功登录admin帐户,他们会使用xp_cmdshell命令在受感染系统中执行。...安博士最新发表ASEC分析报告写道:“最近发现Cobalt Strike是通过如下所示MS-SQL进程通过cmd.exe和powershell.exe下载。”...在MSBuild.exe中执行Cobalt Strike有一个额外设置选项可以绕过安全产品检测,在这里,它加载普通dll wwanmm.dll,然后在dll内存区域中写入并执行一个信标。”...“因为接收攻击者命令并执行恶意行为信标并不存在于可疑内存区域,而是在正常模块wwanmm.dll中运行,所以它可以绕过基于内存检测。”

34710

MSBuild后门技术分析

CrowdStrike博客文章是一位同事介绍给我。SUNBURST开发人员会尝试每秒都去搜索MSBuild.exe进程,然后读取这些远程进程虚拟内存来确定现在构建是否是正确解决方案。...运行任意解决方案快速构建后(比如说使用C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe SomeProject.sln /t:Build...PoC将用PureBasic编写,因为没有一个正常攻击者会在其中实现他植入,因此不需要考虑复制粘贴这个源代码;-) 目标分析 注入代码应具有以下特征: 没有其他正在运行进程; 无远程进程操作(读取.../写入远程进程内存等); 生成正确解决方案唯一触发器; 在生成过程中插入后门 在生成过程之后删除后门源文件; 目标实现 正如我们前面看到,VERSION.dll文件很早就由.NET运行时加载了。...总结 通过将我们VERSION.dll拷贝到MSBuild目录下,我们可以更好地确保操作安全性,因为不需要创建额外进程,可以省略内存搜索并捕获每一次构建操作,因为我们代码是由MSBuild直接执行

74310

dll 劫持和应用

taskhostsvc.exe 启动后通过创建互斥体保证只有一个实例在运行,然后每秒进程中搜索 MsBuild.exe 进程(Microsoft Build Engine),找到后通过读取 MsBuild.exe...APT 攻击中上文中植入过程不够完美,比如计划任务和周期性进程扫描很容易暴露攻击行为,其次监控 MsBuild.exe 运行到最终替换源码文件,这中间执行时间可能影响后门植入成功率。...MSBuild.exe 启动过程中会去优先加载指定目录 dll,如下: [2.MSBuild优先加载部分dll文件(ref:https://www.a12d404.net/ranting/2021...5 路径劫持 根据以上知识,我们可以自由生成恶意 dll 文件,并且通过函数转发使其调用原始 dll 函数,完全不会影响应用程序正常运行。...2.公共dll 当然我们还可以对公共 dll 进行劫持(比如系统 dll user32.dll),但是公共 dll 一般都会提前被其他进程加载,当新应用程序需要加载时,将直接内存进行加载和调用,如果我们使用恶意

74930

利用github actions进行自动化开发

光这么说,可能确实有点迷茫,那我拿开发写代码来举个例子: 小明开发一套程序,需要利用IDE开发,开发好进行调试,然后放到服务器上运行,再解决服务器上兼容问题,最终查看程序运行一段时间以后稳定性。...\MSBuild.exe $Env:GITHUB_WORKSPACE\juicy-potato\JuicyPotato\JuicyPotato.sln 上述代码主要意思是同步所有git代码,然后利用warrenbuckley...看提示是找不到sdk 8.1,根据搜索,发现vs2019默认不带这玩意,可以利用powershell安装,因此我们可以在编译过程中加个安装sdk 8.1方法: - name: Install Windows...actions/upload-release-asset模块发布时候,需要是压缩包,因此这里使用powershell生成exe压缩一下,再丢给actions/upload-release-asset...\MSBuild.exe $Env:GITHUB_WORKSPACE\juicy-potato\JuicyPotato\JuicyPotato.sln - uses: actions/upload-artifact

1.1K30

使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时大量参数

参数可以看到它对响应文件解释: > dotnet build /? # 省略了一部分输出,只保留响应文件相关两个。 @ 文本文件插入命令行设置。...自动以下位置使用任何名为 "msbuild.rsp" 响应文件: (1) msbuild.exe 目录...(2) 生成第一个项目或解决方案目录 /noautoresponse 不自动包括任何 MSBuild.rsp 文件。...(缩写: /noautorsp) 当然,使用 dotnet msbuild 或者直接使用 msbuild.exe 都是一样具备此功能。...时,将执行这些事情: 使用 Release 配置进行编译 当前计算机有多少 CPU 核,就使用多少个进程进行并行编译 NuGet 包打包版本设置为 1.6.0-beta(这将覆盖 csproj 中设置

1.5K20

“白象”APT组织近期动态

5. sct脚本解密后会调用Powershell下载并运行putty.exe和自动加载Strategic_Chain.pdf,让用户误以为已经打开相关文档成功。 ? 6....其中VMwareCplLauncher.exe为具有合法数字签名文件,vmtools.dll为经过篡改dll,用于最终加载BADNEWS最新变种MSBuild.exe。...VMwareCplLauncher.exe运行后,会自动加载vmtools.dll,vmtools.dll执行后会创建一个名为BaiduUpdateTask1任务计划,该任务计划每隔一分钟会执行一次MSBuild.exe...MSBuild.exe执行后,会下载 hxxps://raw.githubusercontent.com/husngilgit/husnahazrt/master/xml.xml ?...目前该组织已经成长为有较高攻击能力小分队,且使用漏洞手法也比较新颖,对社会工程学把捏相当精妙,这近期多起攻击事件中就可以看出。

1.3K40

.net持续集成sonarqube篇之sonarqube安装与基本配置

下载完成全将下载压缩包解压,进入bin目录,可以看到这个目录下有数个文件夹,文件夹名称很容易看出它们对应是windows,mac,linux平台下启动目录,由于我们是在windows平台下运行...同样,为了方便使用,我们也需要把msbuild.exe添加到环境变量中,如果你系统中安装visual Studio开发工具,则Visual studio中会自动包含一个msbuild.exe我们找到它路径添加到系统环境变量...,定位到usage栏,可以看到有一个简短示例代码如下 SonarScanner.MSBuild.exe begin /k:"project-key" MSBuild.exe /t:Rebuild SonarScanner.MSBuild.exe.../k:"mygetdata" /v:"1.0" MSBuild.exe /t:Rebuild SonarScanner.MSBuild.exe end 第二段是执行msbuild,第三段是一个结束标志...图中我们可以看到我们刚才创建key 为mygetdata构建了,图中可以简要看到此项目的严重bug,一般bug,代码规范,代码单元测试覆盖率,代码重复度,代码最后一次分析时间等.

1.6K40

找出 .NET Core SDK 是否使用预览版全局配置文件在哪里(探索篇)

) 设置过滤规则 在工具栏上点击“设置过滤器”,然后,添加我们感兴趣两个进程名称: devenv.exe MSBuild.exe 前者是 Visual Studio 进程名,后者是 MSBuild.exe...我们使用这两个进程名称分别找到 Visual Studio 2019 是如何设置全局 .NET Core 预览配置,并且在命令行中运行 MSBuild.exe 来验证确实是这个全局配置。...你可以注意到左侧时间,我截图中 45 秒到 48 秒是可能有效文件读写,再后面已经延迟了 10 秒了,多半是其他操作。...捕获 MSBuild.exe 现在,我们清除一下 Process Monitor 中已经记录数据,然后,我们在命令行中对一个项目敲下 msbuild 命令。...验证结论 要验证此文件确实是全局配置其实也很简单,自行改一改配置,然后使用 MSBuild.exe 编译试试即可。

20630

Lazarus APT攻击手法之利用Build Events特性执行代码复现

绿盟科技 https://mp.weixin.qq.com/s/7RwH5_h1rGn3MxGIngal6A 绿盟科技文章中我们可以知道事件背景和一些信息。...这里简单复现一下,就不讨论宏代码一个情况了。 在cobalt strike种直接生成powershell恶意脚本。 ? 把命令放在visual studio中 ? 应用然后编译 ?...不难理解,MSBuild可以在未安装Visual Studio环境中编排和构建产品(可以简单理解为执行可以代码),而且Visual Studio使用MSBuild加载和生成托管项目。...我们去微软中下载msbuild.exe 当然在.net中我们也能查找到 ?...利用起来也不难 在MSF中可以直接生成利用代码 我们使用Microsoft VisualStudio创建以MSBuild格式保存、带有*.csproj后缀C#代码,以便可以使用MSBuild平台将其编译为可执行程序

1.2K10

.net持续集成sonarqube篇之 sonarqube与jenkins集成(命令模式)

我们运行以下前面章节运行代码,看看会出现什么问题: MSBuild.SonarQube.Runner.exe begin /k:"mytest" /n:"mytest" /v:"v8.0" /d:sonar.cs.opencover.reportsPaths...="%CD%\testcover.xml" msbuild.exe "E:\personalproject\newTest2018\ConsoleApp1\packages\OpenCover.4.6.519...可以看到这个界面有两个地方可以设置path,上面是用户级别的,下面是系统级别的,如果你是在上面用户级别设置path,则Jenkins无法读取到(这里仅仅是指默认情况下)当前用户变量,因为Jenkins...第二段msbuild.exe也是一样问题,它必须在工程目录下时候才不需要指定要编译项目名,如果当前目录下没有sln或者csproj文件,则需要显式指定项项目文件完整路径msbuild.exe "...右击我电脑选择管理然后管理界面里面找到服务或者在cmd界面输入services.msc来打开服务管理界面,服务管理界面找到jenkins服务,右键点击属性,在弹出对话框中切换到登陆标签,如果没有登陆则是本地败

80820
领券