问题标签 [powershell-v5.1]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
powershell - 从powershell中的命令输出中选择多个字符串
这可能是一个以前已经回答过的简单问题,但我就是找不到。我正在尝试从我制作的简单脚本中过滤掉不需要的文本/输出。
我想添加的不仅仅是已建立的连接到输出窗口,例如 UDP 和 TCP 连接,但要删除环回地址。如果有更好的方法或更有效的方法来做到这一点,那就太好了。
windows - 如何将文件夹中的每个 X 子文件夹压缩为单独的 rar 文件
我对 Powershell 编码真的很陌生,需要你的帮助
我在带有 Powershell 5.1 的 Windows 10 上,并试图用 Winrar 解决它。主文件夹包含 5000 个子文件夹我想指定每个存档应包含多少个文件夹,并将其中的每个 X 压缩为单独的 rar 文件。
创建文本文件并为每个 rar 文件创建一个 .txt 文件,其中包含每个 rar 中的所有子文件夹名
例如:首先:指定每个存档应该包含多少个文件夹
包含 5000 个子文件夹的文件夹名称为“Project”
所有 rar 文件应与主文件夹同名,并带有连续编号:在这种情况下
每个 rar 文件都有一个 txt 文件,其中列出了 rar 文件的内容
有没有办法不手动执行?
powershell - 如何让 PS 脚本访问需要管理员访问权限的文件夹
我是我公司的桌面支持技术人员,我们经常执行大量重复性故障排除,例如从 C\windows\temp、本地 appdata 临时文件夹以及 google 和 IE 缓存/清除临时文件和缓存饼干。我正在编写一个 powershell 脚本来一次性完成这一切,它完成了它应该做的事情。唯一的问题是,当我在用户的计算机上时,我必须首先实际访问 windows temp 和本地 appdata 文件夹,然后运行脚本才能使其工作。我相信这是因为这两个文件夹需要管理员权限才能进入。由于我是管理员,因此我可以很好地访问文件夹,但是我无法找到要插入的代码以允许 powershell 脚本访问这些文件夹。笔记:我在脚本的开头确实有一个命令以管理员身份启动 powershell,但这似乎还不够。我的代码在下面,对此的任何见解都会很棒。(看起来我在代码中的评论标签把评论变成了粗体,道歉)
powershell - 结果为单个字符串,每行需要一个
尝试将 get-netadaptor 的一些属性与 get-netipaddress 结合起来
尝试了我所知道的一切,但变量 $getnet-name 的结果都在一行上
这是我陷入循环的地方
每个接口重复相同的结果
希望最终也能仅使用 Get -AddressFamily 过滤器过滤 IPv4 地址
目前正在工作,但这确实可能不是这样做的好方法。如果您想添加它们,更优雅的替代解决方案会很有帮助!
谢谢!
powershell - 使用 powershell 以交互方式终止进程
如何创建在powershell中杀死进程的交互式方法?
最好以使用输入字段的形式终止进程,以查找并终止所需的进程。
powershell - Get-Package 命令包含 xml 字符串 - 需要转换为 PSObject
Get-Package
SwidTagText
需要来自对象的Windows 更新安装日期。该对象采用 XML 格式,我尝试转换的所有内容都不起作用。
我正在尝试从 WMI 切换,因为它拉回结果非常慢。
试过这个ConvertFrom-XML
功能。也试过ConvertFrom-String
powershell - 将参数限制为特定类型;使用 CimInstance 时
有没有一种明智的方法来限制用于函数的参数类型,当它可能被封装在一个CimInstance
?
例如,假设我有如下方法:
问题?
- 有没有更好的方法来强制执行参数的类型;即使用参数类型,而不是验证脚本?
- 有没有办法使 CIM 与 WMI 的实现不可知,以便它只关心对象是 SecurityDescriptor/Access Control Entry?
即我的要求只是第一个参数是安全描述符,我的第二个是ACE;但是因为我在当前的实现中使用 CIM 来获取这些,所以它们恰好是CimInstance
. 然后我希望强制它们代表正确的底层对象,因此必须使用ValidateScript
来检查CimClass
. 但是,从这个功能的角度来看,CIM 的使用是一个任意的细节;它
powershell - 传递给 Invoke-Command 的属性将类型从 IDictionary 更改为 HashTable
Invoke-Command
在脚本块采用字典类型参数的情况下,我一直在运行错误:
无法处理参数“字典”上的参数转换。无法将“System.Collections.Hashtable”类型的“System.Collections.Hashtable”值转换为“System.Collections.Generic.IDictionary`2[System.String,System.String]”类型。在 line:7 char:1 + Invoke-Command -ComputerName 。-ArgumentList $dictionary -ScriptBlock ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidData: (:) [], ParameterBindin...mationException + FullyQualifiedErrorId : ParameterArgumentTransformationError + PSComputerName:本地主机
经过大量挖掘,我能够将脚本简化为下面的 MVP 以显示此问题的根源:
似乎如果脚本块Invoke-Command
包含任何内联函数,则参数会自动转换为HashTable
; 而如果脚本块不包含任何嵌套函数定义,则参数保留为System.Collections.Generic.IDictionary[string, string]
.
我是否在滥用此功能/是否有常见的解决方法?或者这只是 PowerShell 中的一个错误?
powershell - Ignore CTRL+C in delay - powershell
Whenever I set a delay in powershell using Start-Sleep
, e.g:
then it does not ignore CTRLC. I mean when I hit that key stroke the delay quits. How can I ignore it in delays?