将版权作为新成员添加到获取进程



我有一个PowerShell脚本,其中包含:
1. $GetP:变量是(获取进程命令)
2. $path$getfile :是用于获取 $GetP 路径.
中的所有进程路径的两个变量3. foreach语法:是一种获取$getfile中所有路径的方法(合法版权).
...
现在我想将版权作为新成员添加到每个路径的$GetPGet-Process.

她是我的错误语法:

$GetP = Get-Process
$path = $GetP | select -ExpandProperty  Path
$getfile = dir $path -Include *.* -recurse 
foreach ($iffile in $getfile)
{
        $fname = $iffile.FullName
        $vfile = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($fname)
        $Copyright = $vfile.LegalCopyright
        #$Copyright
} 

$FileCopyRight = foreach ($Copyright in $GetP) {
    $fpmvar = $vfile.LegalCopyright
    $Copyright | Add-Member -NotePropertyName CopyRight -NotePropertyValue $fpmvar -PassThru
  }

$GetP | select CopyRight

注意:当您删除$Copyright中的"#"注释时,它将显示所有版权。

您需要一次执行一个进程,或者将变量与 ex. 哈希表链接在一起。 自动取款机。 $copyright 将只是 $getfile -array 中最后一个文件的值。

我建议为每个进程运行一个循环,将版权添加到该对象并继续下一个进程。

尝试:

Get-Process | ForEach-Object {
    #If path is defined
    if($_.Path) {
        $CopyRight = (Get-Item $_.Path).VersionInfo.LegalCopyright
        Add-Member -InputObject $_ -NotePropertyName "CopyRight" -NotePropertyValue $CopyRight -PassThru
    }
} | Select Name, CopyRight

示例输出:

ApMsgFwd              Copyright (C) 2006-2014 Alps Electric Co., Ltd.                   
ApntEx                Copyright (C) 1998-2014 Alps Electric Co., Ltd.                   
Apoint                Copyright (C) 1999-2015 Alps Electric Co., Ltd.                   
ApplicationFrameHost  © Microsoft Corporation. All rights reserved.                     
AppVClient            © Microsoft Corporation. All rights reserved.                     
AppVStreamingUX       Copyright (c) Microsoft Corporation. All rights reserved.         
armsvc                Copyright © 2013 Adobe Systems Incorporated.  All rights reserved.
....

最新更新