Powershell 需要帮助读取文本文件并输出到csv吗

Powershell 需要帮助读取文本文件并输出到csv吗,powershell,Powershell,下面是从几个系统的注册表中获取信息的一种方法。因为我没有任何McAfee软件,所以我使用Python作为占位符。代码注释似乎足够了,但请随时要求澄清。[咧嘴笑] $Results中的第一项 #requires -RunAsAdministrator # fake reading in a list of systems # in real life, use Get-Content $SystemList = @' LocalHost 10.0.0.1 127.0.0.1 BetterN

下面是从几个系统的注册表中获取信息的一种方法。因为我没有任何McAfee软件,所以我使用Python作为占位符。代码注释似乎足够了,但请随时要求澄清。[咧嘴笑]

$Results中的第一项

#requires -RunAsAdministrator

# fake reading in a list of systems
#    in real life, use Get-Content
$SystemList = @'
LocalHost
10.0.0.1
127.0.0.1
BetterNotBeThere
'@ -split [System.Environment]::NewLine

$sb = {
    $RegPath = 'HKLM:\SOFTWARE\Python\PythonCore\3.8'
    Get-ChildItem -LiteralPath  $RegPath -Recurse |
        ForEach-Object {
            Get-ItemProperty $_.pspath
            }
    }

# the "-ErrorAction SilentlyContinue" will make PoSh NOT show error on the screen
#    if you need to get a list of non-responders, you can compare the input list to the items in "$Results"
$Results = Invoke-Command -ScriptBlock $sb -ComputerName $SystemList -ErrorAction SilentlyContinue

$Results |
    # filter out the items with no path info or lots of extra properties
    Where-Object {
        $_.'(default)'
        } |
    # remove unwanted properties & add a ComputerName prop
    Select-Object -Property @{n = 'ComputerName'; e = {$_.PSComputerName}}, * -ExcludeProperty 'RunspaceId', 'PSShowComputerName' |
    Export-Csv -LiteralPath "$env:TEMP\powershelltek_HKLM-Software-Info.csv" -NoTypeInformation
CSV文件的内容

(default)      : C:\Python38\Doc\python380.chm
PSPath         : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.8\Help\Main Python 
                 Documentation
PSParentPath   : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.8\Help
PSChildName    : Main Python Documentation
PSProvider     : Microsoft.PowerShell.Core\Registry
PSComputerName : LocalHost
RunspaceId     : a915a91a-5cfd-405f-ac0a-b3350cd90942

感谢Prasoon,我正在尝试从文本文件读取主机,然后将它们输出到csv文件,到目前为止,在-ComputerName
Invoke命令
接受
-ComputerName
参数中的系统列表后,我一次只能输入一个主机。[咧嘴笑]嗨,李,我是新来的powershell如果你能提供语法的话,我没有任何McAffe的东西,所以我很好奇你在那个地方寻找什么。对我来说,
Python
的类似位置包含
(默认值):C:\Python38\Lib\idlelib\idle.pyw
以及powershell添加的一系列内容[通常前缀为
PS
]。那么,您想从这些项目中向您的CSV添加什么?请发布您获得的详细信息-将它们添加到您的原始帖子-以便我可以使CSV有意义。否则,我将不得不使用系统中的某些内容作为占位符。在$SystemList=@'中,您能否澄清用法?
$SystemList
部分只是提供系统名称示例集的一种方法。代码的工作方式应与系统上的工作方式完全相同。正如注释所暗示的[
在现实生活中,使用Get Content
],当您准备好使用真实的系统名称时,使用
Get Content
Import CSV
加载它们,或者通过类似于
Get-ADComputer
的方式。Hi-Lee脚本运行良好,但当我使用Get-Content-Path获取主机列表时,它将出错:Invoke命令:无法验证参数“ComputerName”上的参数。参数为null或为空。请提供一个不为null或为空的参数empty@powershelltek-这意味着您在加载文件时遇到问题。[grin]此时,
$SystemList
中是否有任何内容?另外,您是如何替换该代码段的?最简单的方法是在整个块之后添加一行
$SystemList=Get Content
,然后删除或注释掉以
@-split[System.Environment]::NewLine
结尾的块。一旦有了自己的测试[或真实]数据,就不需要整个here字符串。Lee脚本现在运行时没有错误。添加Get内容后,将创建csv文件,但其中没有数据
(default)      : C:\Python38\Doc\python380.chm
PSPath         : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.8\Help\Main Python 
                 Documentation
PSParentPath   : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.8\Help
PSChildName    : Main Python Documentation
PSProvider     : Microsoft.PowerShell.Core\Registry
PSComputerName : LocalHost
RunspaceId     : a915a91a-5cfd-405f-ac0a-b3350cd90942
"ComputerName","(default)","PSPath","PSParentPath","PSChildName","PSProvider","PSComputerName"
"LocalHost","C:\Python38\Doc\python380.chm","Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.8\Help\Main Python Documentation","Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.8\Help","Main Python Documentation","Microsoft.PowerShell.Core\Registry","LocalHost"
"LocalHost","C:\Python38\Lib\idlelib\idle.pyw","Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.8\Idle","Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.8","Idle","Microsoft.PowerShell.Core\Registry","LocalHost"
"LocalHost","1","Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.8\IdleShortcuts","Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.8","IdleShortcuts","Microsoft.PowerShell.Core\Registry","LocalHost"
"LocalHost","C:\Python38\","Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.8\InstallPath","Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.8","InstallPath","Microsoft.PowerShell.Core\Registry","LocalHost"
"LocalHost","C:\Python38\Lib\;C:\Python38\DLLs\","Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.8\PythonPath","Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.8","PythonPath","Microsoft.PowerShell.Core\Registry","LocalHost"
"127.0.0.1","C:\Python38\Doc\python380.chm","Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.8\Help\Main Python Documentation","Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.8\Help","Main Python Documentation","Microsoft.PowerShell.Core\Registry","127.0.0.1"
"127.0.0.1","C:\Python38\Lib\idlelib\idle.pyw","Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.8\Idle","Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.8","Idle","Microsoft.PowerShell.Core\Registry","127.0.0.1"
"127.0.0.1","1","Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.8\IdleShortcuts","Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.8","IdleShortcuts","Microsoft.PowerShell.Core\Registry","127.0.0.1"
"127.0.0.1","C:\Python38\","Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.8\InstallPath","Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.8","InstallPath","Microsoft.PowerShell.Core\Registry","127.0.0.1"
"127.0.0.1","C:\Python38\Lib\;C:\Python38\DLLs\","Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.8\PythonPath","Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.8","PythonPath","Microsoft.PowerShell.Core\Registry","127.0.0.1"