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

如何将 [switch] 参数从 C# 传递给 PowerShell 脚本?

这个问题的答案需要从多个方面进行阐述,以提供完善且全面的解答。

首先,我们需要了解什么是 PowerShell,以及它和 C# 的区别。PowerShell 是一种命令行工具,用于管理计算机系统和执行任务。C# 是一种面向对象的编程语言,用于创建复杂的应用程序。在云计算领域,PowerShell 通常用于自动化和管理工作,而 C# 通常用于开发云原生应用程序。

接下来,我们需要了解如何将 C# 参数传递给 PowerShell 脚本。这可以通过在 PowerShell 脚本中使用 switch 命令来实现。switch 命令允许我们使用一个或多个参数来指定多个不同的操作。例如,我们可以使用以下命令来将名为 myParameter 的参数传递给 PowerShell 脚本:

代码语言:bash
复制

switch -regex -file "myScript.ps1" {

代码语言:txt
复制
"^(Set-Location \\Server1\Share$\*)" {
代码语言:txt
复制
    $location = $matches[1]
代码语言:txt
复制
    Write-Host "Setting location to $location"
代码语言:txt
复制
}
代码语言:txt
复制
"^(Set-Location \\Server2\Share$\*)" {
代码语言:txt
复制
    $location = $matches[1]
代码语言:txt
复制
    Write-Host "Setting location to $location"
代码语言:txt
复制
}
代码语言:txt
复制
"^(Set-Location \\Server3\Share$\*)" {
代码语言:txt
复制
    $location = $matches[1]
代码语言:txt
复制
    Write-Host "Setting location to $location"
代码语言:txt
复制
}
代码语言:txt
复制
"^(Set-Location \\Server4\Share$\*)" {
代码语言:txt
复制
    $location = $matches[1]
代码语言:txt
复制
    Write-Host "Setting location to $location"
代码语言:txt
复制
}
代码语言:txt
复制
"^(Set-Location \\Server5\Share$\*)" {
代码语言:txt
复制
    $location = $matches[1]
代码语言:txt
复制
    Write-Host "Setting location to $location"
代码语言:txt
复制
}
代码语言:txt
复制
"^(Set-Location \\Server6\Share$\*)" {
代码语言:txt
复制
    $location = $matches[1]
代码语言:txt
复制
    Write-Host "Setting location to $location"
代码语言:txt
复制
}
代码语言:txt
复制
"^(Set-Location \\Server7\Share$\*)" {
代码语言:txt
复制
    $location = $matches[1]
代码语言:txt
复制
    Write-Host "Setting location to $location"
代码语言:txt
复制
}
代码语言:txt
复制
"^(Set-Location \\Server8\Share$\*)" {
代码语言:txt
复制
    $location = $matches[1]
代码语言:txt
复制
    Write-Host "Setting location to $location"
代码语言:txt
复制
}
代码语言:txt
复制
"^(Set-Location \\Server9\Share$\*)" {
代码语言:txt
复制
    $location = $matches[1]
代码语言:txt
复制
    Write-Host "Setting location to $location"
代码语言:txt
复制
}
代码语言:txt
复制
"^(Set-Location \\Server10\Share$\*)" {
代码语言:txt
复制
    $location = $matches[1]
代码语言:txt
复制
    Write-Host "Setting location to $location"
代码语言:txt
复制
}
代码语言:txt
复制
"^(Set-Location \\Server11\Share$\*)" {
代码语言:txt
复制
    $location = $matches[1]
代码语言:txt
复制
    Write-Host "Setting location to $location"
代码语言:txt
复制
}
代码语言:txt
复制
"^(Set-Location \\Server12\Share$\*)" {
代码语言:txt
复制
    $location = $matches[1]
代码语言:txt
复制
    Write-Host "Setting location to $location"
代码语言:txt
复制
}
代码语言:txt
复制
"^(Set-Location \\Server13\Share$\*)" {
代码语言:txt
复制
    $location = $matches[1]
代码语言:txt
复制
    Write-Host "Setting location to $location"
代码语言:txt
复制
}
代码语言:txt
复制
"^(Set-Location \\Server14\Share$\*)" {
代码语言:txt
复制
    $location = $matches[1]
代码语言:txt
复制
    Write-Host "Setting location to $location"
代码语言:txt
复制
}
代码语言:txt
复制
"^(Set-Location \\Server15\Share$\*)" {
代码语言:txt
复制
    $location = $matches[1]
代码语言:txt
复制
    Write-Host "Setting location to $location"
代码语言:txt
复制
}
代码语言:txt
复制
"^(Set-Location \\Server16\Share$\*)" {
代码语言:txt
复制
    $location = $matches[1]
代码语言:txt
复制
    Write-Host "Setting location to $location"
代码语言:txt
复制
}
代码语言:txt
复制
"^(Set-Location \\Server17\Share$\*)" {
代码语言:txt
复制
    $location = $matches[1]
代码语言:txt
复制
    Write-Host "Setting location to $location"
代码语言:txt
复制
}
代码语言:txt
复制
"^(Set-Location \\Server18\Share$\*)" {
代码语言:txt
复制
    $location = $matches[1]
代码语言:txt
复制
    Write-Host "Setting location to $location"
代码语言:txt
复制
}
代码语言:txt
复制
"^(Set-Location \\Server19\Share$\*)" {
代码语言:txt
复制
    $location = $matches[1]
代码语言:txt
复制
    Write-Host "Setting location to $location"
代码语言:txt
复制
}
代码语言:txt
复制
"^(Set-Location \\Server20\Share$\*)" {
代码语言:txt
复制
    $location = $matches[1]
代码语言:txt
复制
    Write-Host "Setting location to $location"
代码语言:txt
复制
}
代码语言:txt
复制
"^(Set-Location \\Server21\Share$\*)" {
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Powershell快速入门(二) Shell编程

这一部分着重于介绍Powershell的程序知识,让我们能够编写功能强大的Powershell脚本,执行比较复杂的任务。 变量 变量使用$变量名创建和引用。...\\运算符用于执行一个脚本或命令。如果执行的是Powershell脚本,那么脚本会在自己的作用域中执行,也就是说在当前环境下无法访问被执行的脚本中的变量。...格式化方法和C#中的完全相同,所以如果不熟悉的话直接看在C#中如何格式化数据就行了。...Powershell是一种强类型的脚本语言,所以可以在参数列表上添加参数类型,参数类型是可选的,不过我还是推荐写的时候带上类型,方便阅读和类型检查。...开关参数需要指定参数类型为switch

3.6K101

.NET代码快速转换成powershell代码

PowerShell 2的第一个技术预览版到现在,已经过去将近两年的时间了,下面列出了在这期间添加的一些新特性。 Remoting:可以在远程机器上运行Cmdlet和Script。...ScriptCmdlets:以前只能用静态编译型语言编写Cmdlet,如C#和VB。现在则可以直接使用PowerShell脚本编写。 步进式管道:可以认为这种管道一次只传输一个元素。...打包操作符:可以使用@操作符来将一组键值对当成单一参数进行传递。 PowerShell ISE:“集成脚本环境”是一个轻量级的IDE。...异常处理:可以在PowerShell中使用类似Java、C#和VB中的try-catch-finally来处里异常。 Add-Type:使用CodeDOM来编译任何.NET语言的代码片段。...我们使用.net写了很多工具,在powershell到来之前,我们都是写成控制台程序来做这样的工作,现在有了强大的powershell脚本工具,如何将我们的丰富的工具快速转换成powershell脚本

2K70
  • (3)Powershell基础知识(一)

    的一些特性 Powershell对命令行和脚本环境添加了许多新的功能,以此来改善Powershell的管理和脚本脚本交互能力,想对于其他的命令脚本Powershell有以下特性。...右命令行很容易过度到脚本 使用 Windows PowerShell,可以很方便地以交互方式键入命令过渡到创建和运行脚本。...如果在 PowerShell cmdlet 中使用 -? 参数,则始终表示“显示此命令的帮助”。脚本命令开发人员无需分析该命令,他们只需提供帮助文本。...即使是在 PowerShell 中运行传统命令行工具,也可以使用 PowerShell 的帮助功能。PowerShell 将对参数进行处理并将结果传递给外部工具。...换句话说,学习C#Powershell是相互促进的,如果您不是 C# 程序员或是完全不了解C#,也没有关系,了解任何一门面对对象的编程语言都有助于学习Powershell

    4.1K20

    aardio v29.1 支持嵌入执行PowerShell代码

    标准库新增 dotNet.ps 用于直接调用执行 PowerShell 脚本命令。...但是这个C#调用PowerShell 的代码有个问题,需要带上 2MB的 System.Management.Automation.dll,并且也不能内存加载,只能在指定的PowerShell 3以及...useLocalScope);//useLocalScope参数必须是布尔类型,以匹配C#函数签名 powerShellRunner.InvokeScript是一个C#函数,第2个参数useLocalScope...是bool类型,但是我们在 aardio 里很多非 bool 类型可以自动转换,例如我们一个0,null都是在aardio中合法的,但是C#是静态语言,你个0,他就因为找不到第二个参数是数值类型的对应函数而报错...同样的还有数组类型,例如C#的函数参数是string[]数组类型,如果我们在aardio里用{}一个空数组进去,C#无法判断这是什么数组,然后又会找不到对应签名的函数而报错。

    45040

    无文件Powershell恶意程序使用DNS作为隐蔽信道

    “pre_logic”函数支持两个switch参数。第一个用于决定在下一个感染步骤中是否要实现持久性。如果选择实现持久性,第二个switch就会决定第三阶段代码要不要执行。 ?...除了两个switch外,“pre_logic”函数还支持四个参数,这四个参数随后将传递给下一阶段的“logic”函数。这些参数决定,下一个感染阶段发送DNS TXT记录查询时,要使用哪些子域。...如果在这个阶段开始时,与其执行相关的switch参数被传递至“pre_logic”函数,那么payload就会立即执行。 ?...第三阶段Powershell脚本中的“Logic”函数会脚本中的第二组域中随机选择一个C2域,并用这个域进行初始查找。...然后,第三阶段中的解码函数会被调用,并将解码的字符串传递给IEX,来扩展Powershell环境。 这一步完成后,将调用新扩展环境中的一个函数,来执行第四阶段代码,并设置特定参数

    2.2K90

    【JSA神助攻之一】FreeScript给数据分析工作者带来无限惊喜,在ExcelWPS环境上做专业数据分析不是梦

    https://www.yuque.com/cuihuajihome/document/nrwymdqcifx3gkmq 以下是历史内容: 目前FreeScript已完成对JScript、VBScript、C#...、VB.NET、PowerShell、javascript、python、R语言的支持,可以借助FreeScript,在Excel/WPS环境下使上上述编程语言无限扩展电子表格的使用边界,能力无上限,只差你的想象力让它腾飞起舞...例如如下的demo,调用R脚本,生成图表,再使用VBA、JSA将生成的结果输出到Excel/WPS表格上呈现。 以下为历史内容: FreeScript再次起飞,增加VB.NET语言的支持。...最新突破,在C# /VB.NET /PowerShell上,都可以做到在脚本中获取到当前的Excel/WPS表格的Application对象模型。...有了Application对象模型,就不单单是让脚本来处理数据这么简单,只需要将特定的参数VBA/JSA上传递给脚本获取,在脚本端直接将所有自动化流程做完都可以,包括但不限于增删工作薄、工作表,对单元格

    13710

    网络安全自学篇(二十)| Powershell基础入门及常见用法(二)

    学习Powershell基础语法之后,更重要的是解决实际问题,后续作者将继续深入学习。 ? 5.switch循环 使用switch循环实现输出数组1到10,并进行奇数和偶数判断 ? ?...如何将数组倒序输出呢?如下所示。 ? ? 数组添加一个元素代码如下: ? ? 更多数组操作,推荐读者结合实际应用进行学习。...五.Powershell函数 1.自定义函数及调用 函数通常包括函数名、参数、函数体,下面是定义及调用一个myping函数的代码(test11.ps1)。 ? ?...同样,上面的代码可以修改为指定参数。 ? 下面这个代码是接收两个参数并显示的功能。 ? ? 2.函数返回值 函数返回值通过return实现,可以返回多个值。下面是test13.ps1例子。 ? ?...随后推出的Windows NT是第一个系统级别广泛使用注册表的操作系统。

    2.6K20

    【JSA宏神助攻之一】FreeScript给数据分析工作者带来无限惊喜,在ExcelWPS环境上做专业数据分析不是梦

    https://www.yuque.com/cuihuajihome/document/nrwymdqcifx3gkmq 以下是历史内容: 目前FreeScript已完成对JScript、VBScript、C#...、VB.NET、PowerShell、javascript、python、R语言的支持,可以借助FreeScript,在Excel/WPS环境下使上上述编程语言无限扩展电子表格的使用边界,能力无上限,只差你的想象力让它腾飞起舞...例如如下的demo,调用R脚本,生成图表,再使用VBA、JSA将生成的结果输出到Excel/WPS表格上呈现。 以下为历史内容: FreeScript再次起飞,增加VB.NET语言的支持。...最新突破,在C# /VB.NET /PowerShell上,都可以做到在脚本中获取到当前的Excel/WPS表格的Application对象模型。...有了Application对象模型,就不单单是让脚本来处理数据这么简单,只需要将特定的参数VBA/JSA上传递给脚本获取,在脚本端直接将所有自动化流程做完都可以,包括但不限于增删工作薄、工作表,对单元格

    18710

    【工具使用】强大的红队武器Octopus“吊打”杀软

    0x01安装 使用以下命令就可直接把代码github上下载到本地,我这里网络问题,我直接了一份到kali上了(需要代码可github下载或后台回复006) git clone https://github.com...载荷(前提是需要一个监听器) powershell单行代码将使您能够生成powershell命令,该命令可直接C2下载并执行有效负载。...由于使用了@ahmedkhlief,他可以重用APT34威胁组中的代码,该威胁组C2下载HTA文件内容并使用mshta.exe受信任的Windows二进制文件运行,以获取最终的Powershell代理已执行...Octopus使用一种称为“非托管Powershell”的技术来执行powershell脚本,而无需接触powershell.exe二进制文件,这可以帮助您避免对powershell.exe的任何限制。...Octopus将使用“ System.Management.Automation.dll”文件编译C#代码,然后使用“ PowerShell”对象启动Powershell代码执行。

    1.3K20

    Attacking SQL Server CLR Assemblies

    脚本示例,展示了如何将"cmd_exec.dll"文件转换为TSQL命令,该命令可用于在没有物理文件引用的情况下创建程序集 # Target file $assemblyFile = "c:tempcmd_exec.dll...tempruncmd.csc CLR DLL: c:tempruncmd.dll SQL Cmd: c:tempruncmd.txt 下面是一个用于生成10个示例CLR DLL / CREATE ASSEMBLY TSQL脚本的简短脚本...,例如如果我们的程序集已经存在,我们可以尝试确定它接受的参数以及如何使用它们,只是为了好玩,让我们使用下面的查询来盲目地确定"cmd_exec"存储过程需要哪些参数 SELECT...,针对存储过程的攻击者可能能够确定它可用于操作系统命令执 如何将SQL Server中存在的CLR程序集导出到DLL?...PowerShell自动化 您可以使用我之前提供的原始 PowerShell命令,也可以使用下面的 PowerUPSQL 命令示例从新修改的"cmd_exec.dll"文件中获取十六进制字节并生成 ALTER

    1.7K20

    域内提权之sAMAccountName欺骗

    但是由于没有控制导致可以任意使用,因此任何拥有控制权和对象(即机器帐户)的用户都可以修改此值,该修改的目的可能导致模拟域上的其他帐户,例如域控制器计算机帐户,Charlie Clark是第一个通过发布详细文章说明如何将这些漏洞武器化的人...票证大小可以确定KDC是否在没有PAC的情况下签发了票证 noPAC.exe scan -domain purple.lab -user pentestlab -pass Password1234 如果PowerShell...控制台执行操作,Shitsecure开发了一个PowerShell脚本Invoke-noPac,它将.NET 程序集noPac嵌入到base64中,由于该工具实际上是noPac,因此可以使用相同的参数来检索票证...的,则可以Invoke-noPac脚本中使用相同的命令行参数,正如上面已经提到的它实际上是noPac C#工具的包装器 Invoke-noPac -command "-domain purple.lab...10.0.0.1相比,在没有PAC的情况下收到的两张票证相对较小 python3 scanner.py purple.lab/pentestlab:'Password1234' -dc-ip 10.0.0.1 此脚本可以根据活动使用各种参数执行

    1K10

    教你如何开发不可检测的C#、C++反向Shell

    在这篇文章中,我会GitHub上借鉴部分代码,然后用到了下面这个C#程序中。这个程序不能绕过AV,没有混淆代码,它能做的只有“在目标设备上打开socket,启动cmd.exe”: ?...这个脚本有三个主要优势: 1、 while循环可以每5秒尝试重连一次; 2、 不可见的cmd实例; 3、 如果标准攻击者IP发生变化,可自动获取新参数; ? ? ?...检测报告:【点击阅读原文获取】 使用代理凭证通过网络开启C#反向Shell 在研究如何利用代理凭证并通过互联网从一个内部企业网络中打开反向Shell时,我开发出了下列代码: 1、 结合peewpw脚本在没有管理员权限的情况下凭证管理器中导出代理凭证...通过PowerShell和实时编译C#开启反向Shell 这都很简单,直接把文件交给Microsoft.Workflow.Compiler.exe来编译,那我们为什么不用PowerShell来实现呢?...通过Excel宏、PowerShellC#实时编译开启反向Shell 现在,我想尝试把之前的PowerShell代码注入到宏文件中,你猜怎么着?

    2K30

    免费下载 80多种的微软推出入门级 .NET视频

    我把这个页面的链接重新组织了一下,去掉Youtube 的链接,下面介绍一下如何下载这80多个入门级视频: 点击系列的链接,比如C# 101的链接进入到Channel 9的页面,角落里有一个链接,上面写着...接下来,下载 Scott Hanselman 制作了一个小PowerShell脚本 到本地磁盘,并将其命名为DownloadVideos.ps1,注意要确保以* .ps1扩展名保存它,这是需要运行Powershell...最后,“开始”菜单打开计算机上的PowerShell,然后运行DownloadVideos.ps1。 ?...C#101 在本视频系列中,Kendra Havens和Scott Hanselman通过现场编码演示探讨了C#编程语言的概念和语法。 ?...了解有关适用于Apache Spark的.NET的全部知识,以及如何将大数据世界带入.NET生态系统。

    1K31

    技术分享-持久性-WMI事件订阅

    然而,各种框架,如 Metasploit、Empire、PoshC2、PowerSploit 和多个 PowerShell 脚本C# 工具可用于自动化此技术,为代码执行提供不同的触发器和各种选项。...脚本的集合,其中包含用于通过 WMI 进行持久性的 PowerShell 脚本。...WMI-Persistence是另一个 PowerShell 脚本,它可以创建事件过滤器,在每次重新启动后 5 分钟内远程位置执行基于 PowerShell 的有效负载。...Rahmat Nurfauzi开发了一个 PowerShell 脚本 ( WMI-Persistence ),它默认使用regsvr32方法执行任意命令,以便远程服务器运行任意脚本。 ....该脚本使用 WMI 存储库来存储恶意命令,该命令将执行任意脚本、可执行文件或任何其他带有参数的命令。以下函数将检索所有活动的 WMI 事件对象。

    2.8K10

    人人都值得学一点PowerShell实现自动化(6)自动化微软系产品

    C#那么方便,但因总体代码量较少,写完C#再写PowerShell时,可以很方便地将C#智能提示出来的代码,直接复制到PowerShell上小改即可。...C#代码如下:顺带写了自动删除过去60天外的脚本文件,防止备份数量过多。...使用PowerShell脚本如下:基本上按C#写出来的代码,按PowerShell语法改写一下即可,PowerShell直接写,很多没有智能提示,比较蛋痛。...一个小坑,不知道什么原因,使用PowerShell备份Azure SQL时报错,最终项目真实环境是用了C#生成的控制台程序,没有使用PowerShell脚本。...,相反,可能更多时候是C#代码里调用PowerShell为主,毕竟PowerShell的定位也只是一些自动化脚本,小型的需求使用。

    1.8K10
    领券