Questions tagged «powershell»

PowerShell是Microsoft的跨平台命令行和脚本实用程序。将此标签仅用于有关编写和执行PowerShell脚本的问题。跨平台版本PowerShell Core(Windows,macOS和Linux)特定的编程问题应标记为[powershell-core]。有关系统管理的问题应在“超级用户或服务器故障”时提出。

8
如何在PowerShell中创建自定义类型供脚本使用?
我希望能够在某些PowerShell脚本中定义和使用自定义类型。例如,假设我们需要一个具有以下结构的对象: Contact { string First string Last string Phone } 我将如何创建它,以便可以在如下函数中使用它: function PrintContact { param( [Contact]$contact ) "Customer Name is " + $contact.First + " " + $contact.Last "Customer Phone is " + $contact.Phone } 这样的事情是否可行,甚至在PowerShell中推荐?

3
如何在PowerShell中逐行处理文件
我正在处理一些千兆字节的文本文件,并希望使用PowerShell对它们进行一些流处理。这很简单,只需解析每一行并提取一些数据,然后将其存储在数据库中即可。 不幸的是,get-content | %{ whatever($_) }似乎在管道的此阶段将整个行集保留在内存中。它也非常慢,要花很长时间才能读完所有内容。 所以我的问题分为两个部分: 如何使其逐行处理流,而不是将整个内容保留在内存中?我想避免为此目的用完几GB的RAM。 如何使其运行更快?在aget-content上进行PowerShell迭代似乎比C#脚本慢100倍。 我希望我在这里做一些愚蠢的事情,例如缺少-LineBufferSize参数或其他东西。

5
在PowerShell中运行CMD命令
我在运行PowerShell命令时遇到很多问题。它正在做的是运行将在CMD提示窗口中运行的命令。 这是命令: "C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\i386\CmRcViewer.exe" PCNAME 我已经尝试了以下方法,但均未成功(我尝试了多次迭代以尝试获得可行的方法。语法可能全部搞砸了): $TEXT = $textbox.Text #$textbox is where the user enters the PC name. $CMDCOMMAND = "C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\i386\CmRcViewer.exe" Start-Process '"$CMDCOMMAND" $TEXT' #iex -Command ('"C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\i386\CmRcViewer.exe"' $TEXT) 该命令将打开SCCM远程连接窗口,该窗口连接到用户在文本框中指定的计算机。

4
将安全字符串转换为纯文本
我正在使用PowerShell,并且我有将用户输入的密码成功转换为纯文本的代码: $SecurePassword = Read-Host -AsSecureString "Enter password" | convertfrom-securestring | out-file C:\Users\tmarsh\Documents\securePassword.txt 我尝试了几种将其转换回去的方法,但是似乎都无法正常工作。最近,我尝试了以下方法: $PlainPassword = Get-Content C:\Users\tmarsh\Documents\securePassword.txt #convert the SecureString object to plain text using PtrToString and SecureStringToBSTR $BSTR = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($PlainPassword) $PlainPassword = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR) [Runtime.InteropServices.Marshal]::ZeroFreeBSTR($BSTR) #this is an important step to keep things secure 这也给我一个错误。 Cannot convert argument "s", with …

5
PowerShell Set-Content和Out-File-有什么区别?
在PowerShell中,Out-File和之间有什么区别Set-Content?还是Add-Content和Out-File -append? 我发现如果我对同一个文件使用这两个文件,则文本完全是mojibaked。 (第二个小问题:>是的别名Out-File,对吧?)
86 powershell 

26
您的PowerShell`profile.ps1`文件中包含什么?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题编辑此帖子。 2年前关闭。 改善这个问题 您的个人资料中有哪些基本内容(功能,别名,启动脚本)?
85 powershell 

5
生成后事件执行PowerShell
是否可以使用构建后事件设置.NET项目以执行Powershell脚本?我正在使用此脚本生成一些文件。 我还可以将它是调试版本还是发行版本传递给脚本。一个很好的例子。
85 c#  .net  powershell  msbuild 


3
在单独的行上回显%path%?
使用Windows命令提示符,我可以回显%path%并在单独的行中获取生成的路径吗?类似于Windows的东西: echo $path | tr ':' '\n' 我可以使用vanilla cmd进行此操作,还是需要Powershell或js脚本编写? 示例echo%path%输出: C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Microsoft SQL Server\80\Tools\Binn\;C:\Program Files\Microsoft SQL Server\90\DTS\Binn\;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\; 所需的输出: C:\WINDOWS\system32; C:\WINDOWS; C:\WINDOWS\System32\Wbem; C:\Program Files\Microsoft SQL Server\80\Tools\Binn\; C:\Program Files\Microsoft SQL Server\90\DTS\Binn\; C:\Program Files\Microsoft SQL Server\90\Tools\binn\; C:\Program Files\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE\; C:\Program Files\Microsoft Visual …
83 powershell  path  cmd 

10
从路径中提取文件名
我想从以下路径中提取文件名: D:\ Server \ User \ CUST \ MEA \ Data \ In \ Files \ CORRECTED \ CUST_MEAFile.csv 现在,我编写了这段代码来获取文件名。只要文件夹级别没有变化,此功能就可以正常工作。但是,如果文件夹级别已更改,则此代码需要重写。我正在寻找一种使其更灵活的方法,例如代码始终可以提取文件名,而与文件夹级别无关。 ($outputFile).split('\')[9].substring(0)

3
Powershell Web请求,不会在4xx / 5xx上引发异常
我正在编写一个Powershell脚本,该脚本需要发出Web请求并检查响应的状态代码。 我试过这样写: $client = new-object system.net.webclient $response = $client.DownloadData($url) 以及这个: $response = Invoke-WebRequest $url 但是只要网页上的状态代码不是成功状态代码,PowerShell就会继续执行并引发异常,而不是给我实际的响应对象。 即使页面无法加载,如何获取页面的状态码?
82 powershell 

2
如何告诉'PowerShell'复制项目无条件复制文件
如果资源不存在,以下PowerShell脚本将起作用。 Copy-Item $src_dir $dst_dir$agent_folder -recurse 但是如果有资源,它将说: + Copy-Item <<<< $src_dir $dst_dir$agent_folder -recurse + CategoryInfo : ResourceExists: (C:\Users\Pac\Desktop\Agents\Agent0\lib:S tring) [Copy-Item], IOException + FullyQualifiedErrorId : DirectoryExist,Microsoft.PowerShell.Commands.CopyItemComm and 我必须在命令中添加些什么,以便它无条件地复制文件?
82 powershell 

6
限制Get-ChildItem递归深度
我可以使用以下命令递归获取所有子项目: Get-ChildItem -recurse 但是有办法限制深度吗?例如,如果我只想向下递归一两个级别?
82 powershell 

5
确定当前的PowerShell进程是32位还是64位?
在x64位OS平台上运行PowerShell脚本时,如何确定该脚本在哪个版本的PowerShell(32位或64位)上运行? 背景信息 默认情况下,在64位平台(例如Windows Server 2008)上安装了32位和64位版本的PowerShell。这在运行必须针对特定体系结构的PowerShell脚本(即使用64位位,用于SharePoint 2010的脚本,以使用64位库)。 相关问题: 针对Powershell的x64与x86可变性进行编程的最佳方法是什么?这个问题涉及在32位和64位体系结构上运行的代码。当您要确保脚本仅针对正确的版本运行时,我的问题涉及这种情况。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.