我刚刚发现/ n软件免费使用Powershell NetCmdlets,在使用它们之后,我喜欢它们带给命令行的功能.所以它提出了一个问题,你最喜欢的Cmdlet是什么,你如何使用它们?
如果我创建一个简单的Powershell函数,例如
Function Hello {
[CmdletBinding( )]
Param (
[parameter()]
$Name
)
Begin{}
Process{
Write-Output "Hello $Name"
}
End{}
}
Run Code Online (Sandbox Code Playgroud)
然后使用Get-Command列出它Get-Command Hello
,cmdlet被列为'CommandType'函数.为什么不将它列为'CommandType'cmdlet?
从模块导出时,我还发现我必须使用FunctionsToExport而不是CmdletsToExport.
它似乎并没有影响功能的使用,我只是好奇他们为什么这样列出.
我有一个PS1文件,其中包含多个Powershell函数.我需要创建一个静态DLL,读取内存中的所有函数及其定义.然后,当用户调用DLL并传入函数名称以及函数的参数时,它会调用其中一个函数.
我的问题是,是否可以这样做.即调用已读取并存储在内存中的函数?
谢谢
我正在尝试使用二进制Cmdlet内部创建一个基本的PowerShell模块,因为在PowerShell中编写内容只是看起来不像在C#中那样方便.
按照本指南,看起来我必须:
project.json
RootModule
我的目标.dll
.dll
附近的清单PSModulePath
但是,当我尝试时Import-Module
,PowerShell核心抱怨缺少运行时:
Import-Module : Could not load file or assembly 'System.Runtime, Version=4.1.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system
cannot find the file specified.
At line:1 char:1
Run Code Online (Sandbox Code Playgroud)
我做错了什么,或者还不支持这些棘手的事情?
我目前正在整理一些Powershell cmdlet.建造它们很容易,但我不知道我是否以可接受的方式构建它们(可以这么说).
是否有任何指导/最佳实践应该遵循将数据传递到Powershell管道?目前,我实际上输出了一个DataSet类型的对象 - 如果任何cmdlet想要在下游使用它,那么它们必须遍历该DataSet中的DataTable,然后遍历每个DataTable中的DataRows.
我想问题是......我会通过这样做来打扰任何人吗?或者我应该输出本质上是一堆行的数据?
在此先感谢所有人
-jt
我在Windows 7 64位专业版上使用Visual Studio 2010.我在调试自定义PowerShell cmdlet时遇到问题.
C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe
-noexit -command Add-PSSnapIn MyCustomSnapIn
问题1:按F5时无法连接(调试→开始调试)
问题2:当我按下Ctrl + F5时,意外启动为32位进程(Debug→Start Without Debugging)
The annoying way to debug right now: The only way I've found to debug my cmdlet is to press F5, then select Debug→Detach All, then …
我希望能够使用IronPython编写PowerShell CmdLets,而且我需要一个CmdLet来查看环境并根据内容将CmdLets添加到PowerShell.例如,读取目录,并为其在那里看到的每个文件名添加CmdLet Remove-.
我有一个在服务器(测试服务器)上运行的powershell脚本,并读取他的客户端(DC1)的日志文件.
DC1上启用了远程桌面和远程协助.
Get-EventLog System -ComputerName test-server -Source Microsoft-Windows-Winlogon # WORKS
Get-EventLog System -ComputerName DC1 -Source Microsoft-Windows-Winlogon # DOESN'T WORK
Run Code Online (Sandbox Code Playgroud)我在test-server上运行这个脚本.正如您在test-server上读取本地日志文件时所看到的那样工作正常但如果我尝试远程读取DC1的日志文件,则会收到错误" Get-EventLog:找不到网络路径 ".
错误的屏幕截图:
如何使用Get-EventLog避免此错误并从测试服务器读取DC1的日志文件?
我有一个azure订阅,我正在尝试编写一个powershell脚本,以自动获取我目前订阅的所有资源(虚拟机,存储帐户,数据库等)的列表.有没有办法使用azure管理REST API或Azure Cmdlet执行此操作?
我已经有一段时间了.我打算为我的项目创建新的PowerShell模块.目标是将多个自定义cmdlet打包到独立单元中,我可以通过我们的Nexus存储库(或通过其他任何方式)将其部署到其他计算机.
问题:我看到的每个地方,都看到教程将所有PowerShell函数/ cmdlet打包成单个*.psm1文件.文件存储在同名目录中,实际上代表模块本身.
问题:有没有办法,如何将每个cmdlet /函数分成独立文件?如果我有一个由几个cmdlet组成的模块,将它们全部放在单个*.psm1文件中并不是很方便.
谢谢马修
cmdlets ×10
powershell ×10
c# ×2
.net ×1
.net-core ×1
azure ×1
debugging ×1
function ×1
ironpython ×1
python ×1