相关疑难解决方法(0)

Powershell 自定义对象混淆

我正在编写一个脚本,试图输出两个不同的自定义对象;一个接一个地遇到问题,所以为了简化,我把所有的代码都精简到了最低限度:

$beep = new-object -TypeName PSObject
$beep | Add-Member -MemberType NoteProperty -Name "Entry1" -Value "beep1"
$beep | Add-Member -MemberType NoteProperty -Name "Entry2" -Value "beep1"
$beep

$boop = new-object -TypeName PSObject
$boop | Add-Member -MemberType NoteProperty -Name "Entry1" -Value "boop1"
$boop | Add-Member -MemberType NoteProperty -Name "Entry2" -Value "boop1"
$boop
Run Code Online (Sandbox Code Playgroud)

当我运行它时,对象似乎组合在一起。当我做一个 get-member 时,它似乎只显示一个对象。为什么?

在我实际尝试完成的代码中,一个对象是上面的自定义对象,但另一个是 selected.system.int32。当我尝试一个接一个地输出时,只有第一个输出。如果我翻转订单;同样的事情,第一个对象得到输出。我做错了什么/不明白?

@JamesQ - 我想让我感到困惑的是当我这样做时:

$beep = new-object -TypeName PSObject
$beep | Add-Member -MemberType NoteProperty -Name "Entry1" -Value "beep1"
$beep | Add-Member -MemberType NoteProperty -Name "Entry2" -Value "beep1" …
Run Code Online (Sandbox Code Playgroud)

powershell

3
推荐指数
1
解决办法
1125
查看次数

PowerShell输出在功能之间交叉

我正在Windows 10的5.1版中编写PowerShell脚本,该脚本可获取有关本地系统(最终是其子网)的某些信息,并将其输出到文本文件中。首先,我将所有方面都集成到一个函数中。我在输出getUsersAndGroupsgetRunningProcesses函数时遇到输出问题,其中的输出getUsersAndGroups将注入到的输出中getRunningProcesses

这两个功能是:

    # Powershell script to get various properties and output to a text file

    Function getRunningProcesses()
    {
        # Running processes
        Write-Host "Running Processes:
    ------------ START PROCESS LIST ------------
        "
        Get-Process | Select-Object name,fileversion,productversion,company
        Write-Host "
    ------------- END PROCESS LIST -------------
    "
    }

    Function getUsersAndGroups()
    {
        # Get Users and Groups
        Write-Host "Users and Groups:"
        $adsi = [ADSI]"WinNT://$env:COMPUTERNAME"
        $adsi.Children | where {$_.SchemaClassName -eq 'user'} | Foreach-Object {
            $groups = $_.Groups() | …
Run Code Online (Sandbox Code Playgroud)

powershell

2
推荐指数
1
解决办法
145
查看次数

PowerShell 5.1 在这个简单的示例中我没有得到预期的输出

$res = Invoke-Sqlcmd -Query "select * from customer" -ServerInstance "(localdb)\MSSQLLocalDB" -Database "Database1" -OutputAs DataTables

$res | Where-Object FirstName -eq "John"
$res.Where({$_.FirstName -eq "John"})
Run Code Online (Sandbox Code Playgroud)

这是输出:

Id FirstName City   
-- --------- ----   
 1 John      Augusta
 1 John      Augusta
Run Code Online (Sandbox Code Playgroud)

我期待这个:

Id FirstName City   
-- --------- ----   
 1 John      Augusta

Id FirstName City   
-- --------- ----   
 1 John      Augusta
Run Code Online (Sandbox Code Playgroud)

powershell

2
推荐指数
1
解决办法
72
查看次数

标签 统计

powershell ×3