Powershell 需要帮助读取文本文件并输出到csv吗
下面是从几个系统的注册表中获取信息的一种方法。因为我没有任何McAfee软件,所以我使用Python作为占位符。代码注释似乎足够了,但请随时要求澄清。[咧嘴笑] $Results中的第一项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
#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"