Delen via


Invoke-Command

Voert opdrachten uit op lokale en externe computers.

Syntaxis

InProcess (Standaard)

Invoke-Command
    [-ScriptBlock] <ScriptBlock>
    [-StrictMode <Version>]
    [-NoNewScope]
    [-InputObject <PSObject>]
    [-ArgumentList <Object[]>]
    [<CommonParameters>]

FilePathRunspace

Invoke-Command
    [[-Session] <PSSession[]>]
    [-FilePath] <String>
    [-ThrottleLimit <Int32>]
    [-AsJob]
    [-HideComputerName]
    [-JobName <String>]
    [-RemoteDebug]
    [-InputObject <PSObject>]
    [-ArgumentList <Object[]>]
    [<CommonParameters>]

Session

Invoke-Command
    [[-Session] <PSSession[]>]
    [-ScriptBlock] <ScriptBlock>
    [-ThrottleLimit <Int32>]
    [-AsJob]
    [-HideComputerName]
    [-JobName <String>]
    [-RemoteDebug]
    [-InputObject <PSObject>]
    [-ArgumentList <Object[]>]
    [<CommonParameters>]

FilePathComputerName

Invoke-Command
    [[-ComputerName] <String[]>]
    [-FilePath] <String>
    [-Credential <PSCredential>]
    [-Port <Int32>]
    [-UseSSL]
    [-ConfigurationName <String>]
    [-ApplicationName <String>]
    [-ThrottleLimit <Int32>]
    [-AsJob]
    [-InDisconnectedSession]
    [-SessionName <String[]>]
    [-HideComputerName]
    [-JobName <String>]
    [-SessionOption <PSSessionOption>]
    [-Authentication <AuthenticationMechanism>]
    [-EnableNetworkAccess]
    [-RemoteDebug]
    [-InputObject <PSObject>]
    [-ArgumentList <Object[]>]
    [<CommonParameters>]

ComputerName

Invoke-Command
    [[-ComputerName] <String[]>]
    [-ScriptBlock] <ScriptBlock>
    [-Credential <PSCredential>]
    [-Port <Int32>]
    [-UseSSL]
    [-ConfigurationName <String>]
    [-ApplicationName <String>]
    [-ThrottleLimit <Int32>]
    [-AsJob]
    [-InDisconnectedSession]
    [-SessionName <String[]>]
    [-HideComputerName]
    [-JobName <String>]
    [-SessionOption <PSSessionOption>]
    [-Authentication <AuthenticationMechanism>]
    [-EnableNetworkAccess]
    [-RemoteDebug]
    [-InputObject <PSObject>]
    [-ArgumentList <Object[]>]
    [-CertificateThumbprint <String>]
    [<CommonParameters>]

Uri

Invoke-Command
    [[-ConnectionUri] <Uri[]>]
    [-ScriptBlock] <ScriptBlock>
    [-Credential <PSCredential>]
    [-ConfigurationName <String>]
    [-ThrottleLimit <Int32>]
    [-AsJob]
    [-InDisconnectedSession]
    [-HideComputerName]
    [-JobName <String>]
    [-AllowRedirection]
    [-SessionOption <PSSessionOption>]
    [-Authentication <AuthenticationMechanism>]
    [-EnableNetworkAccess]
    [-RemoteDebug]
    [-InputObject <PSObject>]
    [-ArgumentList <Object[]>]
    [-CertificateThumbprint <String>]
    [<CommonParameters>]

FilePathUri

Invoke-Command
    [[-ConnectionUri] <Uri[]>]
    [-FilePath] <String>
    [-Credential <PSCredential>]
    [-ConfigurationName <String>]
    [-ThrottleLimit <Int32>]
    [-AsJob]
    [-InDisconnectedSession]
    [-HideComputerName]
    [-JobName <String>]
    [-AllowRedirection]
    [-SessionOption <PSSessionOption>]
    [-Authentication <AuthenticationMechanism>]
    [-EnableNetworkAccess]
    [-RemoteDebug]
    [-InputObject <PSObject>]
    [-ArgumentList <Object[]>]
    [<CommonParameters>]

VMId

Invoke-Command
    [-ScriptBlock] <ScriptBlock>
    [-VMId] <Guid[]>
    -Credential <PSCredential>
    [-ConfigurationName <String>]
    [-ThrottleLimit <Int32>]
    [-AsJob]
    [-HideComputerName]
    [-RemoteDebug]
    [-InputObject <PSObject>]
    [-ArgumentList <Object[]>]
    [<CommonParameters>]

VMName

Invoke-Command
    [-ScriptBlock] <ScriptBlock>
    -Credential <PSCredential>
    -VMName <String[]>
    [-ConfigurationName <String>]
    [-ThrottleLimit <Int32>]
    [-AsJob]
    [-HideComputerName]
    [-RemoteDebug]
    [-InputObject <PSObject>]
    [-ArgumentList <Object[]>]
    [<CommonParameters>]

FilePathVMId

Invoke-Command
    [-FilePath] <String>
    [-VMId] <Guid[]>
    -Credential <PSCredential>
    [-ConfigurationName <String>]
    [-ThrottleLimit <Int32>]
    [-AsJob]
    [-HideComputerName]
    [-RemoteDebug]
    [-InputObject <PSObject>]
    [-ArgumentList <Object[]>]
    [<CommonParameters>]

FilePathVMName

Invoke-Command
    [-FilePath] <String>
    -Credential <PSCredential>
    -VMName <String[]>
    [-ConfigurationName <String>]
    [-ThrottleLimit <Int32>]
    [-AsJob]
    [-HideComputerName]
    [-RemoteDebug]
    [-InputObject <PSObject>]
    [-ArgumentList <Object[]>]
    [<CommonParameters>]

SSHHost

Invoke-Command
    [-ScriptBlock] <ScriptBlock>
    -HostName <String[]>
    [-Port <Int32>]
    [-AsJob]
    [-HideComputerName]
    [-JobName <String>]
    [-UserName <String>]
    [-KeyFilePath <String>]
    [-Subsystem <String>]
    [-ConnectingTimeout <Int32>]
    [-SSHTransport]
    [-Options <Hashtable>]
    [-RemoteDebug]
    [-InputObject <PSObject>]
    [-ArgumentList <Object[]>]
    [<CommonParameters>]

ContainerId

Invoke-Command
    [-ScriptBlock] <ScriptBlock>
    -ContainerId <String[]>
    [-ConfigurationName <String>]
    [-ThrottleLimit <Int32>]
    [-AsJob]
    [-HideComputerName]
    [-JobName <String>]
    [-RunAsAdministrator]
    [-RemoteDebug]
    [-InputObject <PSObject>]
    [-ArgumentList <Object[]>]
    [<CommonParameters>]

FilePathContainerId

Invoke-Command
    [-FilePath] <String>
    -ContainerId <String[]>
    [-ConfigurationName <String>]
    [-ThrottleLimit <Int32>]
    [-AsJob]
    [-HideComputerName]
    [-JobName <String>]
    [-RunAsAdministrator]
    [-RemoteDebug]
    [-InputObject <PSObject>]
    [-ArgumentList <Object[]>]
    [<CommonParameters>]

SSHHostHashParam

Invoke-Command
    [-ScriptBlock] <ScriptBlock>
    -SSHConnection <Hashtable[]>
    [-AsJob]
    [-HideComputerName]
    [-JobName <String>]
    [-RemoteDebug]
    [-InputObject <PSObject>]
    [-ArgumentList <Object[]>]
    [<CommonParameters>]

FilePathSSHHost

Invoke-Command
    [-FilePath] <String>
    -HostName <String[]>
    [-AsJob]
    [-HideComputerName]
    [-UserName <String>]
    [-KeyFilePath <String>]
    [-Subsystem <String>]
    [-ConnectingTimeout <Int32>]
    [-SSHTransport]
    [-Options <Hashtable>]
    [-RemoteDebug]
    [-InputObject <PSObject>]
    [-ArgumentList <Object[]>]
    [<CommonParameters>]

FilePathSSHHostHash

Invoke-Command
    [-FilePath] <String>
    -SSHConnection <Hashtable[]>
    [-AsJob]
    [-HideComputerName]
    [-RemoteDebug]
    [-InputObject <PSObject>]
    [-ArgumentList <Object[]>]
    [<CommonParameters>]

Description

De Invoke-Command cmdlet voert opdrachten uit op een lokale of externe computer en retourneert alle uitvoer van de opdrachten, inclusief fouten. Met één Invoke-Command opdracht kunt u opdrachten uitvoeren op meerdere computers.

Als u één opdracht wilt uitvoeren op een externe computer, gebruikt u de parameter ComputerName. Als u een reeks gerelateerde opdrachten wilt uitvoeren die gegevens delen, gebruikt u de New-PSSession-cmdlet om een PSSession- (een permanente verbinding) op de externe computer te maken en gebruikt u vervolgens de parameter Session van Invoke-Command om de opdracht uit te voeren in de PSSession-. Als u een opdracht wilt uitvoeren in een niet-verbonden sessie, gebruikt u de parameter InDisconnectedSession. Als u een opdracht in een achtergrondtaak wilt uitvoeren, gebruikt u de parameter AsJob.

U kunt ook Invoke-Command op een lokale computer gebruiken om een scriptblok uit te voeren als opdracht. PowerShell voert het scriptblok direct uit in een onderliggend bereik van het huidige bereik.

Lees Invoke-Commandvoordat u gebruikt om opdrachten uit te voeren op een externe computer.

Vanaf PowerShell 6.0 kunt u Secure Shell (SSH) gebruiken om verbinding te maken met en opdrachten aan te roepen op externe computers. SSH moet worden geïnstalleerd op de lokale computer en de externe computer moet worden geconfigureerd met een PowerShell SSH-eindpunt. Het voordeel van een externe PowerShell-sessie op basis van SSH is dat deze werkt op meerdere platforms (Windows, Linux, macOS). Voor een SSH-sessie gebruikt u de parameters HostName of SSHConnection parameters om de externe computer en relevante verbindingsgegevens op te geven. Zie Externe communicatie van PowerShell via SSH via SSHvoor meer informatie over het instellen van externe communicatie met PowerShell SSH.

Sommige codevoorbeelden gebruiken splatting om de lijnlengte te verminderen. Zie about_Splattingvoor meer informatie.

Voorbeelden

Voorbeeld 1: Een script uitvoeren op een server

In dit voorbeeld wordt het Test.ps1 script uitgevoerd op de Server01-computer.

Invoke-Command -FilePath C:\scripts\test.ps1 -ComputerName Server01

De parameter FilePath geeft een script op dat zich op de lokale computer bevindt. Het script wordt uitgevoerd op de externe computer en de resultaten worden geretourneerd naar de lokale computer.

Voorbeeld 2: Een opdracht uitvoeren op een externe server

In dit voorbeeld wordt een Get-Culture opdracht uitgevoerd op de externe Server01-computer.

Invoke-Command -ComputerName Server01 -Credential Domain01\User01 -ScriptBlock {
    Get-Culture
}

De parameter ComputerName geeft de naam van de externe computer op. De parameter Credential wordt gebruikt om de opdracht uit te voeren in de beveiligingscontext van Domain01\User01, een gebruiker die gemachtigd is om opdrachten uit te voeren. De parameter ScriptBlock geeft de opdracht op die op de externe computer moet worden uitgevoerd.

Als reactie vraagt PowerShell het wachtwoord en een verificatiemethode voor het User01-account aan. Vervolgens wordt de opdracht uitgevoerd op de Server01-computer en wordt het resultaat geretourneerd.

Voorbeeld 3: Een opdracht uitvoeren in een permanente verbinding

In dit voorbeeld wordt dezelfde Get-Culture opdracht uitgevoerd in een sessie, met behulp van een permanente verbinding, op de externe computer met de naam Server02.

$s = New-PSSession -ComputerName Server02 -Credential Domain01\User01
Invoke-Command -Session $s -ScriptBlock { Get-Culture }

De cmdlet New-PSSession maakt een sessie op de externe Server02-computer en slaat deze op in de variabele $s. Normaal gesproken maakt u alleen een sessie wanneer u een reeks opdrachten uitvoert op de externe computer.

De cmdlet Invoke-Command voert de opdracht Get-Culture uit op Server02. De parameter Session geeft de sessie op die is opgeslagen in de variabele $s.

Als reactie voert PowerShell de opdracht uit in de sessie op de Server02-computer.

Voorbeeld 4: Een sessie gebruiken om een reeks opdrachten uit te voeren waarmee gegevens worden gedeeld

In dit voorbeeld worden de effecten van het gebruik van ComputerName en Session parameters van Invoke-Commandvergeleken. Het laat zien hoe u een sessie gebruikt om een reeks opdrachten uit te voeren die dezelfde gegevens delen.

Invoke-Command -ComputerName Server02 -ScriptBlock { $p = Get-Process powershell }
Invoke-Command -ComputerName Server02 -ScriptBlock { $p.VirtualMemorySize }
$s = New-PSSession -ComputerName Server02
Invoke-Command -Session $s -ScriptBlock { $p = Get-Process powershell }
Invoke-Command -Session $s -ScriptBlock { $p.VirtualMemorySize }
17930240

De eerste twee opdrachten gebruiken de parameter ComputerName van Invoke-Command om opdrachten uit te voeren op de externe Server02-computer. De eerste opdracht maakt gebruik van de Get-Process cmdlet om het PowerShell-proces op de externe computer op te halen en op te slaan in de $p variabele. Met de tweede opdracht wordt de waarde opgehaald van de eigenschap VirtualMemorySize van het PowerShell-proces.

Wanneer u de parameter ComputerName gebruikt, maakt PowerShell een nieuwe sessie om de opdracht uit te voeren. De sessie wordt gesloten wanneer de opdracht is voltooid. De $p variabele is gemaakt in één verbinding, maar deze bestaat niet in de verbinding die is gemaakt voor de tweede opdracht.

Het probleem wordt opgelost door een permanente sessie op de externe computer te maken en vervolgens beide opdrachten in dezelfde sessie uit te voeren.

De New-PSSession cmdlet maakt een permanente sessie op de computer Server02 en slaat de sessie op in de $s variabele. De Invoke-Command regels die volgen, gebruiken de parameter Session om beide opdrachten in dezelfde sessie uit te voeren. Omdat beide opdrachten in dezelfde sessie worden uitgevoerd, blijft de $p waarde actief.

Voorbeeld 5: Een opdracht aanroepen met een scriptblok dat is opgeslagen in een variabele

In dit voorbeeld ziet u hoe u een opdracht uitvoert die is opgeslagen als een scriptblok in een variabele. Wanneer het scriptblok wordt opgeslagen in een variabele, kunt u de variabele opgeven als de waarde van de parameter ScriptBlock.

$command = {
    Get-WinEvent -LogName PowerShellCore/Operational |
      Where-Object -FilterScript { $_.Message -like '*certificate*' }
}
Invoke-Command -ComputerName S1, S2 -ScriptBlock $command

De $command variabele slaat de Get-WinEvent opdracht op die is opgemaakt als een scriptblok. De Invoke-Command voert de opdracht uit die is opgeslagen in $command op de externe S1- en S2-computers.

Voorbeeld 6: Voer één opdracht uit op verschillende computers

In dit voorbeeld ziet u hoe u Invoke-Command gebruikt om één opdracht uit te voeren op meerdere computers.

$parameters = @{
  ComputerName      = 'Server01', 'Server02', 'TST-0143', 'localhost'
  ConfigurationName = 'MySession.PowerShell'
  ScriptBlock       = { Get-WinEvent -LogName PowerShellCore/Operational }
}
Invoke-Command @parameters

De parameter ComputerName geeft een door komma's gescheiden lijst met computernamen op. De lijst met computers bevat de localhost-waarde, die de lokale computer vertegenwoordigt. De parameter ConfigurationName geeft een alternatieve sessieconfiguratie op. De parameter ScriptBlock wordt uitgevoerd Get-WinEvent om de PowerShellCore-/operationele gebeurtenislogboeken van elke computer op te halen.

Voorbeeld 7: de versie van het hostprogramma op meerdere computers ophalen

In dit voorbeeld wordt de versie van het PowerShell-hostprogramma op 200 externe computers uitgevoerd.

$version = Invoke-Command -ComputerName (Get-Content Machines.txt) -ScriptBlock {
    (Get-Host).Version
}

Omdat er slechts één opdracht wordt uitgevoerd, hoeft u geen permanente verbindingen met elk van de computers te maken. In plaats daarvan gebruikt de opdracht de parameter ComputerName om de computers aan te geven. Als u de computers wilt opgeven, wordt de Get-Content cmdlet gebruikt om de inhoud van het Machine.txt-bestand, een bestand met computernamen op te halen.

De Invoke-Command-cmdlet voert een Get-Host opdracht uit op de externe computers. Er wordt gebruikgemaakt van punt notatie om de eigenschap versie van de PowerShell-host op te halen.

Deze opdrachten worden één voor één uitgevoerd. Wanneer de opdrachten zijn voltooid, wordt de uitvoer van de opdrachten van alle computers opgeslagen in de variabele $version. De uitvoer bevat de naam van de computer waaruit de gegevens afkomstig zijn.

Voorbeeld 8: Een achtergrondtaak uitvoeren op verschillende externe computers

In dit voorbeeld wordt een opdracht uitgevoerd op twee externe computers. De opdracht Invoke-Command maakt gebruik van de parameter AsJob, zodat de opdracht wordt uitgevoerd als achtergrondtaak. De opdrachten worden uitgevoerd op de externe computers, maar de taak bestaat op de lokale computer. De resultaten worden verzonden naar de lokale computer.

$s = New-PSSession -ComputerName Server01, Server02
Invoke-Command -Session $s -ScriptBlock { Get-EventLog System } -AsJob
Id   Name    State      HasMoreData   Location           Command
---  ----    -----      -----         -----------        ---------------
1    Job1    Running    True          Server01,Server02  Get-EventLog System
$j = Get-Job
$j | Format-List -Property *
HasMoreData   : True
StatusMessage :
Location      : Server01,Server02
Command       : Get-EventLog System
JobStateInfo  : Running
Finished      : System.Threading.ManualResetEvent
InstanceId    : e124bb59-8cb2-498b-a0d2-2e07d4e030ca
Id            : 1
Name          : Job1
ChildJobs     : {Job2, Job3}
Output        : {}
Error         : {}
Progress      : {}
Verbose       : {}
Debug         : {}
Warning       : {}
StateChanged  :
$results = $j | Receive-Job

Met de New-PSSession cmdlet worden sessies gemaakt op de externe server01- en Server02-computers. De cmdlet Invoke-Command voert een achtergrondtaak uit in elk van de sessies. De opdracht gebruikt de parameter AsJob om de opdracht uit te voeren als achtergrondtaak. Met deze opdracht wordt een taakobject geretourneerd dat twee onderliggende taakobjecten bevat, één voor elk van de taken die worden uitgevoerd op de twee externe computers.

Met de opdracht Get-Job wordt het taakobject opgeslagen in de $j variabele. De $j variabele wordt vervolgens doorgesluisd naar de cmdlet Format-List om alle eigenschappen van het taakobject in een lijst weer te geven. Met de laatste opdracht worden de resultaten van de taken opgehaald. Het pijpt het taakobject in $j naar de Receive-Job cmdlet en slaat de resultaten op in de $results variabele.

Voorbeeld 9: Lokale variabelen opnemen in een opdracht die wordt uitgevoerd op een externe computer

In dit voorbeeld ziet u hoe u de waarden van lokale variabelen opneemt in een opdracht die wordt uitgevoerd op een externe computer. De opdracht maakt gebruik van de Using: bereikaanpassing om een lokale variabele in een externe opdracht te identificeren. Standaard wordt ervan uitgegaan dat alle variabelen worden gedefinieerd in de externe sessie. De Using: bereikaanpassing is geïntroduceerd in PowerShell 3.0. Zie Using: en about_Scopesvoor meer informatie over de bereikaanpassing.

$Log = 'PowerShellCore/Operational'
Invoke-Command -ComputerName Server01 -ScriptBlock {
    Get-WinEvent -LogName $Using:Log -MaxEvents 10
}

De $Log variabele slaat de naam van het gebeurtenislogboek, PowerShellCore/Operational, op. De Invoke-Command cmdlet wordt uitgevoerd Get-WinEvent op Server01 om de tien nieuwste gebeurtenissen op te halen uit het gebeurtenislogboek. De waarde van de parameter LogName is de $Log variabele die wordt voorafgegaan door de Using: bereikaanpassing om aan te geven dat deze is gemaakt in de lokale sessie, niet in de externe sessie.

Voorbeeld 10: De computernaam verbergen

In dit voorbeeld ziet u het effect van het gebruik van de parameter HideComputerName van Invoke-Command. HideComputerName wijzigt het object dat door deze cmdlet wordt geretourneerd niet. Alleen de weergave wordt gewijzigd. U kunt nog steeds de cmdlets Format gebruiken om de eigenschap PsComputerName van een van de betrokken objecten weer te geven.

Invoke-Command -ComputerName S1, S2 -ScriptBlock { Get-Process powershell }
PSComputerName    Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id   ProcessName
--------------    -------  ------    -----      ----- -----   ------     --   -----------
S1                575      15        45100      40988   200     4.68     1392 PowerShell
S2                777      14        35100      30988   150     3.68     67   PowerShell
Invoke-Command -ComputerName S1, S2 -HideComputerName -ScriptBlock {
    Get-Process powershell
}
Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id   ProcessName
-------  ------    -----      ----- -----   ------     --   -----------
575      15        45100      40988   200     4.68     1392 PowerShell
777      14        35100      30988   150     3.68     67   PowerShell

De eerste twee opdrachten gebruiken Invoke-Command om een Get-Process opdracht uit te voeren voor het PowerShell-proces. De uitvoer van de eerste opdracht bevat de eigenschap PsComputerName, die de naam bevat van de computer waarop de opdracht is uitgevoerd. De uitvoer van de tweede opdracht, die gebruikmaakt van HideComputerName, bevat niet de kolom PsComputerName.

Voorbeeld 11: Het trefwoord 'param' gebruiken in een scriptblok

Het param trefwoord en de parameter ArgumentList worden gebruikt om variabele waarden door te geven aan benoemde parameters in een scriptblok. In dit voorbeeld worden bestandsnamen weergegeven die beginnen met de letter a en de extensie .pdf hebben.

Zie paramvoor meer informatie over het trefwoord .

$parameters = @{
    ComputerName = 'Server01'
    ScriptBlock  = {
        param ($Param1, $Param2)
        Get-ChildItem -Name $Param1 -Include $Param2
    }
    ArgumentList = 'a*', '*.pdf'
}
Invoke-Command @parameters
aa.pdf
ab.pdf
ac.pdf
az.pdf

Invoke-Command gebruikt de parameter ScriptBlock waarmee twee variabelen, $Param1 en $Param2worden gedefinieerd. Get-ChildItem de benoemde parameters gebruikt, Name en Include with the variable names. De ArgumentList- geeft de waarden door aan de variabelen.

Voorbeeld 12: gebruik de $args automatische variabele in een scriptblok

De $args automatische variabele en de parameter ArgumentList worden gebruikt om matrixwaarden door te geven aan parameterposities in een scriptblok. In dit voorbeeld wordt de mapinhoud van een server van .txt bestanden weergegeven. De parameter Get-ChildItemPath is positie 0 en de parameter Filter is positie 1.

Zie $args voor meer informatie over de variabele

$parameters = @{
    ComputerName = 'Server01'
    ScriptBlock  = { Get-ChildItem $args[0] $args[1] }
    ArgumentList = 'C:\Test', '*.txt*'
}
Invoke-Command @parameters
    Directory: C:\Test

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           6/12/2019    15:15            128 alog.txt
-a---           7/27/2019    15:16            256 blog.txt
-a---           9/28/2019    17:10             64 zlog.txt

Invoke-Command gebruikt een ScriptBlock parameter en Get-ChildItem geeft de $args[0] en $args[1] matrixwaarden op. De ArgumentList geeft de $args matrixwaarden door aan de Get-ChildItem parameterposities voor Path en Filter.

Voorbeeld 13: Een script uitvoeren op alle computers die worden vermeld in een tekstbestand

In dit voorbeeld wordt de cmdlet Invoke-Command gebruikt om het Sample.ps1-script uit te voeren op alle computers die worden vermeld in het Servers.txt-bestand. De opdracht gebruikt de parameter FilePath om het scriptbestand op te geven. Met deze opdracht kunt u het script uitvoeren op de externe computers, zelfs als het scriptbestand niet toegankelijk is voor de externe computers.

$parameters = @{
    ComputerName = (Get-Content Servers.txt)
    FilePath     = 'C:\Scripts\Sample.ps1'
    ArgumentList = 'Process', 'Service'
}
Invoke-Command @parameters

Wanneer u de opdracht verzendt, wordt de inhoud van het Sample.ps1-bestand gekopieerd naar een scriptblok en wordt het scriptblok uitgevoerd op elk van de externe computers. Deze procedure is gelijk aan het gebruik van de parameter ScriptBlock om de inhoud van het script in te dienen.

Voorbeeld 14: Een opdracht uitvoeren op een externe computer met behulp van een URI

In dit voorbeeld ziet u hoe u een opdracht uitvoert op een externe computer die wordt geïdentificeerd door een URI (Uniform Resource Identifier). In dit specifieke voorbeeld wordt een Set-Mailbox-opdracht uitgevoerd op een externe Exchange-server.

$LiveCred = Get-Credential
$parameters = @{
  ConfigurationName = 'Microsoft.Exchange'
  ConnectionUri     = 'https://ps.exchangelabs.com/PowerShell'
  Credential        = $LiveCred
  Authentication    = 'Basic'
  ScriptBlock       = { Set-Mailbox Dan -DisplayName 'Dan Park' }
}
Invoke-Command @parameters

De eerste regel maakt gebruik van de Get-Credential cmdlet voor het opslaan van Windows Live ID-referenties in de $LiveCred variabele. PowerShell vraagt de gebruiker om Windows Live ID-referenties in te voeren.

De $parameters variabele is een hash-tabel met de parameters die moeten worden doorgegeven aan de cmdlet Invoke-Command. De Invoke-Command-cmdlet voert een Set-Mailbox-opdracht uit met behulp van de sessieconfiguratie van Microsoft.Exchange. De parameter ConnectionURI geeft de URL van het Exchange-servereindpunt op. De parameter Credential geeft de referenties op die zijn opgeslagen in de $LiveCred-variabele. De parameter AuthenticationMechanism geeft het gebruik van basisverificatie aan. De parameter ScriptBlock geeft een scriptblok op dat de opdracht bevat.

Voorbeeld 15: Een sessieoptie gebruiken

In dit voorbeeld ziet u hoe u een SessionOption parameter maakt en gebruikt.

$so = New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck
$parameters = @{
    ComputerName  = 'server01'
    UseSSL        = $true
    ScriptBlock   = { Get-HotFix }
    SessionOption = $so
    Credential    = 'server01\user01'
}
Invoke-Command @parameters

De New-PSSessionOption-cmdlet maakt een sessieoptieobject dat ervoor zorgt dat het externe einde de certificeringsinstantie, canonieke naam en intrekkingslijsten niet controleert tijdens het evalueren van de binnenkomende HTTPS-verbinding. Het SessionOption--object wordt opgeslagen in de variabele $so.

Opmerking

Het uitschakelen van deze controles is handig voor probleemoplossing, maar is uiteraard niet veilig.

De cmdlet Invoke-Command voert een Get-HotFix opdracht op afstand uit. De parameter SessionOption krijgt de variabele $so.

Voorbeeld 16: URI-omleiding beheren in een externe opdracht

In dit voorbeeld ziet u hoe u de parameters AllowRedirection en SessionOp tion gebruikt voor het beheren van URI-omleiding in een externe opdracht.

$max = New-PSSessionOption -MaximumRedirection 1
$parameters = @{
  ConnectionUri    = 'https://ps.exchangelabs.com/PowerShell'
  ScriptBlock      = { Get-Mailbox dan }
  AllowRedirection = $true
  SessionOption    = $max
}
Invoke-Command @parameters

De cmdlet New-PSSessionOption maakt een PSSessionOption--object dat is opgeslagen in de $max variabele. De opdracht gebruikt de parameter MaximumRedirection om de eigenschap MaximumConnectionRedirectionCount van het PSSessionOption-object in te stellen op 1.

De cmdlet Invoke-Command voert een Get-Mailbox opdracht uit op een externe Microsoft Exchange Server. De parameter AllowRedirection biedt expliciete machtigingen om de verbinding om te leiden naar een alternatief eindpunt. De parameter SessionOption maakt gebruik van het sessieobject dat is opgeslagen in de $max variabele.

Als de externe computer die is opgegeven door ConnectionURI een omleidingsbericht retourneert, wordt de verbinding door PowerShell omgeleid, maar als de nieuwe bestemming een ander omleidingsbericht retourneert, wordt de waarde voor het aantal omleidingen van 1 overschreden en wordt Invoke-Command een niet-afsluitfout geretourneerd.

Voorbeeld 17: Toegang krijgen tot een netwerkshare in een externe sessie

In dit voorbeeld ziet u hoe u toegang hebt tot een netwerkshare vanuit een externe sessie. Er worden drie computers gebruikt om het voorbeeld te demonstreren. Server01 is de lokale computer, Server02 is de externe computer en Net03 bevat de netwerkshare. Server01 maakt verbinding met Server02 en vervolgens voert Server02 een tweede hop naar Net03 uit om toegang te krijgen tot de netwerkshare. Zie De tweede hop maken in Externe communicatie van PowerShellvoor meer informatie over hoe externe communicatie van PowerShell ondersteuning biedt voor hops tussen computers.

De vereiste Delegatie van referentiebeveiligingsondersteuningsprovider (CredSSP) is ingeschakeld in de clientinstellingen op de lokale computer en in de service-instellingen op de externe computer. Als u de opdrachten in dit voorbeeld wilt uitvoeren, moet u lid zijn van de groep Administrators op de lokale computer en de externe computer.

Enable-WSManCredSSP -Role Client -DelegateComputer Server02
$s = New-PSSession Server02
Invoke-Command -Session $s -ScriptBlock { Enable-WSManCredSSP -Role Server -Force }
$parameters = @{
  ComputerName   = 'Server02'
  ScriptBlock    = { Get-Item \\Net03\Scripts\LogFiles.ps1 }
  Authentication = 'CredSSP'
  Credential     = 'Domain01\Admin01'
}
Invoke-Command @parameters

Met de cmdlet Enable-WSManCredSSP kunt u CredSSP-delegatie van de lokale Server01-computer naar de externe Server02-computer inschakelen. De parameter Role geeft Client op om de CredSSP-clientinstelling op de lokale computer te configureren.

New-PSSession maakt een PSSession--object voor Server02 en slaat het object op in de $s variabele.

De cmdlet Invoke-Command maakt gebruik van de $s-variabele om verbinding te maken met de externe computer, Server02. Met de parameter ScriptBlock wordt Enable-WSManCredSSP uitgevoerd op de externe computer. De parameter Role geeft Server op om de CredSSP-serverinstelling op de externe computer te configureren.

De variabele $parameters bevat de parameterwaarden om verbinding te maken met de netwerkshare. De Invoke-Command-cmdlet voert een Get-Item opdracht uit in de sessie in $s. Met deze opdracht wordt een script opgehaald uit de \\Net03\Scripts netwerkshare. De opdracht gebruikt de parameter Authentication met een waarde van CredSSP- en de parameter Credential met de waarde Domain01\Admin01.

Voorbeeld 18: Scripts starten op veel externe computers

In dit voorbeeld wordt een script uitgevoerd op meer dan honderd computers. Als u de impact op de lokale computer wilt minimaliseren, maakt deze verbinding met elke computer, start u het script en verbreekt u vervolgens de verbinding met elke computer. Het script wordt nog steeds uitgevoerd in de niet-verbonden sessies.

$parameters = @{
  ComputerName          = (Get-Content -Path C:\Test\Servers.txt)
  InDisconnectedSession = $true
  FilePath              = '\\Scripts\Public\ConfigInventory.ps1'
  SessionOption         = @{
      OutputBufferingMode = 'Drop'
      IdleTimeout         = [timespan]::FromHours(12)
  }
}
Invoke-Command @parameters

De opdracht gebruikt Invoke-Command om het script uit te voeren. De waarde van de parameter ComputerName is een Get-Content opdracht waarmee de namen van de externe computers uit een tekstbestand worden opgehaald. De parameter InDisconnectedSession verbreekt de sessies zodra de opdracht wordt gestart. De waarde van de parameter FilePath is het script dat Invoke-Command op elke computer wordt uitgevoerd.

De waarde van SessionOption is een hash-tabel. De OutputBufferingMode-waarde is ingesteld op Drop en de waarde IdleTimeout is ingesteld op 12 uur.

Gebruik de cmdlet Receive-PSSession om de resultaten op te halen van opdrachten en scripts die worden uitgevoerd in niet-verbonden sessies.

Voorbeeld 19: Een opdracht uitvoeren op een externe computer met behulp van SSH

In dit voorbeeld ziet u hoe u een opdracht uitvoert op een externe computer met behulp van Secure Shell (SSH). Als SSH is geconfigureerd op de externe computer om te vragen om wachtwoorden, krijgt u een wachtwoordprompt. Anders moet u gebruikersverificatie op basis van SSH-sleutels gebruiken.

Invoke-Command -HostName UserA@LinuxServer01 -ScriptBlock { Get-MailBox * }

Voorbeeld 20: Een opdracht uitvoeren op een externe computer met behulp van SSH en een gebruikersverificatiesleutel opgeven

In dit voorbeeld ziet u hoe u een opdracht uitvoert op een externe computer met behulp van SSH en een sleutelbestand opgeeft voor gebruikersverificatie. U wordt niet om een wachtwoord gevraagd, tenzij de sleutelverificatie mislukt en de externe computer is geconfigureerd om basiswachtwoordverificatie toe te staan.

$parameters = @{
    HostName    = 'UserA@LinuxServer01'
    ScriptBlock = { Get-MailBox * }
    KeyFilePath = '/UserA/UserAKey_rsa'
}
Invoke-Command

Voorbeeld 21: Een scriptbestand uitvoeren op meerdere externe computers met behulp van SSH als taak

In dit voorbeeld ziet u hoe u een scriptbestand uitvoert op meerdere externe computers met behulp van SSH en de SSHConnection parameterset. De parameter SSHConnection gebruikt een matrix met hash-tabellen die verbindingsgegevens voor elke computer bevatten. In dit voorbeeld is vereist dat de externe doelcomputers SSH hebben geconfigureerd ter ondersteuning van op sleutels gebaseerde gebruikersverificatie.

$sshConnections = @(
    @{
        HostName    = "WinServer1"
        UserName    = "Domain\UserA"
        KeyFilePath = "C:\Users\UserA\id_rsa"
    }
    @{
        HostName    = "UserB@LinuxServer5"
        KeyFilePath = "/Users/UserB/id_rsa"
    }
)
$results = Invoke-Command -FilePath C:\Scripts\GetInfo.ps1 -SSHConnection $sshConnections

Voorbeeld 22: Verbinding maken met een externe SSH-sessie met behulp van SSH-opties

In dit voorbeeld ziet u hoe u een scriptbestand uitvoert op een externe Linux-computer met behulp van SSH-opties. De parameter Opties gebruikt een hashtabel met waarden die als opties worden doorgegeven aan de onderliggende ssh opdracht waarmee de verbinding met het externe systeem tot stand is gebracht.

$options = @{
    Port=22
    User = 'UserB'
    Host = 'LinuxServer5'
}
$results = Invoke-Command -FilePath C:\Scripts\CollectEvents.ps1 -KeyFilePath '/Users/UserB/id_rsa' -Options $options

Parameters

-AllowRedirection

Hiermee wordt omleiding van deze verbinding naar een alternatieve URI (Uniform Resource Identifier) toegestaan.

Wanneer u de parameter ConnectionURI gebruikt, kan de externe bestemming een instructie retourneren om om te leiden naar een andere URI. PowerShell leidt standaard geen verbindingen om, maar u kunt deze parameter gebruiken om de verbinding om te leiden.

U kunt ook het aantal keren beperken dat de verbinding wordt omgeleid door de waarde van de MaximumConnectionRedirectionCount sessieoptie te wijzigen. Gebruik de parameter MaximumRedirection van de cmdlet New-PSSessionOption of stel de eigenschap MaximumConnectionRedirectionCount in van de $PSSessionOption voorkeursvariabele. De standaardwaarde is 5.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False

Parametersets

Uri
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathUri
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-ApplicationName

Specificeert het toepassingsnaamsegment van de verbindings-URI. Gebruik deze parameter om de naam van de toepassing op te geven wanneer u de parameter ConnectionURI niet gebruikt in de opdracht.

De standaardwaarde is de waarde van de $PSSessionApplicationName voorkeursvariabele op de lokale computer. Als deze voorkeursvariabele niet is gedefinieerd, is de standaardwaarde WSMAN. Deze waarde is geschikt voor de meeste toepassingen. Zie about_Preference_Variablesvoor meer informatie.

De WinRM-service gebruikt de naam van de toepassing om een listener te selecteren voor de service van de verbindingsaanvraag. De waarde van deze parameter moet overeenkomen met de waarde van de eigenschap URLPrefix van een listener op de externe computer.

Parametereigenschappen

Type:String
Default value:$PSSessionApplicationName if set on the local computer, otherwise WSMAN
Ondersteunt jokertekens:False
DontShow:False

Parametersets

ComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False
FilePathComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-ArgumentList

Levert de waarden van parameters voor de scriptblock. De parameters in het scriptblok worden doorgegeven door de positie van de matrixwaarde die is opgegeven aan ArgumentList. Dit staat bekend als matrixsplatting. Zie about_Splattingvoor meer informatie over het gedrag van ArgumentList.

Parametereigenschappen

Type:

Object[]

Default value:None
Ondersteunt jokertekens:False
DontShow:False
Aliassen:Argumenten

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-AsJob

Geeft aan dat met deze cmdlet de opdracht wordt uitgevoerd als achtergrondtaak op een externe computer. Gebruik deze parameter om opdrachten uit te voeren die veel tijd in beslag nemen om te voltooien.

Wanneer u de parameter AsJob gebruikt, retourneert de opdracht een object dat de taak vertegenwoordigt en wordt vervolgens de opdrachtprompt weergegeven. U kunt in de sessie blijven werken terwijl de taak is voltooid. Gebruik de *-Job cmdlets om de taak te beheren. Gebruik de cmdlet Receive-Job om de taakresultaten op te halen.

De parameter AsJob lijkt op het gebruik van de Invoke-Command-cmdlet om een Start-Job-cmdlet op afstand uit te voeren. Met AsJobwordt de taak echter gemaakt op de lokale computer, ook al wordt de taak uitgevoerd op een externe computer. De resultaten van de externe taak worden automatisch geretourneerd naar de lokale computer.

Zie about_Jobs en about_Remote_Jobsvoor meer informatie over PowerShell-achtergrondtaken.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False

Parametersets

Session
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathRunspace
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
ComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
Uri
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathUri
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
VMId
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
VMName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathVMId
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathVMName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
SSHHost
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
ContainerId
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathContainerId
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
SSHHostHashParam
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathSSHHost
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathSSHHostHash
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Authentication

Hiermee geeft u het mechanisme op dat wordt gebruikt om de referenties van de gebruiker te verifiëren. CredSSP-verificatie is alleen beschikbaar in Windows Vista, Windows Server 2008 en latere versies van het Windows-besturingssysteem.

De acceptabele waarden voor deze parameter zijn als volgt:

  • Verstek
  • Eenvoudig
  • Credssp
  • Samenvatting
  • Kerberos
  • Onderhandelen
  • OnderhandelenMetImplicieteReferentie

De standaardwaarde is Standaard.

Zie AuthenticationMechanism-opsommingvoor meer informatie over de waarden van deze parameter.

Waarschuwing

CredSSP-verificatie (Credential Security Support Provider), waarbij de referenties van de gebruiker worden doorgegeven aan een externe computer die moet worden geverifieerd, is ontworpen voor opdrachten waarvoor verificatie is vereist voor meer dan één resource, zoals toegang tot een externe netwerkshare. Dit mechanisme verhoogt het beveiligingsrisico van de op afstand uitgevoerde bewerking. Als de externe computer is aangetast, kunnen de referenties die aan de computer worden doorgegeven, worden gebruikt om de netwerksessie te beheren. Zie Credential Security Support Providervoor meer informatie.

Parametereigenschappen

Type:AuthenticationMechanism
Default value:Default
Geaccepteerde waarden:Basic, Default, Credssp, Digest, Kerberos, Negotiate, NegotiateWithImplicitCredential
Ondersteunt jokertekens:False
DontShow:False

Parametersets

ComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
Uri
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathUri
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-CertificateThumbprint

Hiermee geeft u het certificaat van de digitale openbare sleutel (X509) van een gebruikersaccount dat gemachtigd is om verbinding te maken met de niet-verbonden sessie. Voer de vingerafdruk van het certificaat in.

Certificaten worden gebruikt in verificatie op basis van clientcertificaten. Ze kunnen alleen worden toegewezen aan lokale gebruikersaccounts en ze werken niet met domeinaccounts.

Als u een vingerafdruk van een certificaat wilt ophalen, gebruikt u een Get-Item of Get-ChildItem opdracht in het PowerShell-certificaat: station.

Parametereigenschappen

Type:String
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

ComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
Uri
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-ComputerName

Hiermee geeft u de computers waarop de opdracht wordt uitgevoerd. De standaardwaarde is de lokale computer.

Wanneer u de parameter ComputerName gebruikt, maakt PowerShell een tijdelijke verbinding die alleen wordt gebruikt om de opgegeven opdracht uit te voeren en vervolgens wordt gesloten. Als u een permanente verbinding nodig hebt, gebruikt u de parameter Session.

Typ de NETBIOS-naam, het IP-adres of de volledig gekwalificeerde domeinnaam van een of meer computers in een door komma's gescheiden lijst. Als u de lokale computer wilt opgeven, typt u de computernaam, localhost of een punt (.).

Als u een IP-adres wilt gebruiken in de waarde van ComputerName, moet de opdracht de parameter Credential bevatten. De computer moet zijn geconfigureerd voor het HTTPS-transport of het IP-adres van de externe computer moet worden opgenomen in de WinRM-TrustedHosts lijst van de lokale computer. Zie How to Add a Computer to the Trusted Host Listvoor instructies voor het toevoegen van een computernaam aan de TrustedHosts.

Op Windows Vista en latere versies van het Windows-besturingssysteem, om de lokale computer op te nemen in de waarde van ComputerName, moet u PowerShell uitvoeren met de Als administrator uitvoeren optie.

Parametereigenschappen

Type:

String[]

Default value:Local computer
Ondersteunt jokertekens:False
DontShow:False
Aliassen:Cn

Parametersets

ComputerName
Position:0
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathComputerName
Position:0
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-ConfigurationName

Hiermee geeft u de sessieconfiguratie die wordt gebruikt voor de nieuwe PSSession.

Voer een configuratienaam of de volledig gekwalificeerde resource-URI in voor een sessieconfiguratie. Als u alleen de configuratienaam opgeeft, wordt de volgende schema-URI voorafgegaan: http://schemas.microsoft.com/PowerShell.

Bij gebruik met SSH geeft deze parameter het subsysteem op dat moet worden gebruikt voor het doel zoals gedefinieerd in sshd_config. De standaardwaarde voor SSH is het powershell subsysteem.

De sessieconfiguratie voor een sessie bevindt zich op de externe computer. Als de opgegeven sessieconfiguratie niet bestaat op de externe computer, mislukt de opdracht.

De standaardwaarde is de waarde van de $PSSessionConfigurationName voorkeursvariabele op de lokale computer. Als deze voorkeursvariabele niet is ingesteld, wordt de standaardinstelling Microsoft.PowerShell-. Zie about_Preference_Variablesvoor meer informatie.

Parametereigenschappen

Type:String
Default value:$PSSessionConfigurationName if set on the local computer, otherwise Microsoft.PowerShell
Ondersteunt jokertekens:False
DontShow:False

Parametersets

ComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False
FilePathComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False
Uri
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False
FilePathUri
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False
VMId
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False
VMName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False
FilePathVMId
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False
FilePathVMName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False
ContainerId
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False
FilePathContainerId
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-ConnectingTimeout

Hiermee geeft u de hoeveelheid tijd in milliseconden op die is toegestaan voor de eerste SSH-verbinding. Als de verbinding niet binnen de opgegeven tijd is voltooid, wordt er een fout geretourneerd.

Deze parameter is geïntroduceerd in PowerShell 7.2

Parametereigenschappen

Type:Int32
Default value:Unlimited
Ondersteunt jokertekens:False
DontShow:False

Parametersets

SSHHost
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathSSHHost
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-ConnectionUri

Hiermee geeft u een URI (Uniform Resource Identifier) op die het verbindingseindpunt van de sessie definieert. De URI moet volledig gekwalificeerd zijn.

De notatie van deze tekenreeks is als volgt:

<Transport>://<ComputerName>:<Port>/<ApplicationName>

De standaardwaarde is als volgt:

http://localhost:5985/WSMAN

Als u geen verbindings-URI opgeeft, kunt u de parameters UseSSL en Poort gebruiken om de verbindings-URI-waarden op te geven.

Geldige waarden voor het segment Transport van de URI zijn HTTP en HTTPS. Als u een verbindings-URI met een transportsegment opgeeft, maar geen poort opgeeft, wordt de sessie gemaakt met de standaardenpoorten: 80 voor HTTP en 443 voor HTTPS. Als u de standaardpoorten voor externe communicatie met PowerShell wilt gebruiken, geeft u poort 5985 op voor HTTP of 5986 voor HTTPS.

Als de doelcomputer de verbinding omleidt naar een andere URI, voorkomt PowerShell de omleiding, tenzij u de AllowRedirection parameter in de opdracht gebruikt.

Parametereigenschappen

Type:

Uri[]

Default value:http://localhost:5985/WSMAN
Ondersteunt jokertekens:False
DontShow:False
Aliassen:URI (Uniform Resource Identifier), CU

Parametersets

Uri
Position:0
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathUri
Position:0
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-ContainerId

Hiermee geeft u een matrix van container-id's.

Parametereigenschappen

Type:

String[]

Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

ContainerId
Position:Named
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False
FilePathContainerId
Position:Named
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-Credential

Hiermee geeft u een gebruikersaccount op dat gemachtigd is om deze actie uit te voeren. De standaardwaarde is de huidige gebruiker.

Typ een gebruikersnaam, zoals User01 of Domain01\User01, of voer een PSCredential--object in dat is gegenereerd door de Get-Credential-cmdlet. Als u een gebruikersnaam typt, wordt u gevraagd het wachtwoord in te voeren.

Referenties worden opgeslagen in een PSCredential-object en het wachtwoord wordt opgeslagen als een SecureString.

Opmerking

Zie voor meer informatie over SecureString gegevensbeveiliging Hoe veilig is SecureString?.

Parametereigenschappen

Type:PSCredential
Default value:Current user
Ondersteunt jokertekens:False
DontShow:False

Parametersets

ComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False
FilePathComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False
Uri
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False
FilePathUri
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False
VMId
Position:Named
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False
VMName
Position:Named
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False
FilePathVMId
Position:Named
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False
FilePathVMName
Position:Named
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-EnableNetworkAccess

Geeft aan dat deze cmdlet een interactief beveiligingstoken toevoegt aan loopbacksessies. Met het interactieve token kunt u opdrachten uitvoeren in de loopbacksessie waarmee gegevens van andere computers worden opgehaald. U kunt bijvoorbeeld een opdracht uitvoeren in de sessie waarmee XML-bestanden van een externe computer naar de lokale computer worden gekopieerd.

Een loopbacksessie is een PSSession- die afkomstig is en eindigt op dezelfde computer. Als u een loopbacksessie wilt maken, laat u de parameter ComputerName weg of stelt u de waarde in op punt (.), localhost of de naam van de lokale computer.

Standaard worden loopbacksessies gemaakt met behulp van een netwerktoken, wat mogelijk niet voldoende machtigingen biedt voor verificatie bij externe computers.

De parameter EnableNetworkAccess is alleen van kracht in loopbacksessies. Als u EnableNetworkAccess gebruikt wanneer u een sessie op een externe computer maakt, slaagt de opdracht, maar wordt de parameter genegeerd.

U kunt externe toegang in een loopbacksessie toestaan met behulp van de CredSSP- waarde van de parameter Authentication, waarmee de sessiereferenties worden gedelegeerd aan andere computers.

Als u de computer wilt beschermen tegen schadelijke toegang, kunnen verbroken loopbacksessies met interactieve tokens, die zijn gemaakt met EnableNetworkAccess, alleen opnieuw worden verbonden vanaf de computer waarop de sessie is gemaakt. Verbroken sessies waarvoor CredSSP-verificatie wordt gebruikt, kunnen opnieuw worden verbonden vanaf andere computers. Zie Disconnect-PSSession voor meer informatie.

Deze parameter is geïntroduceerd in PowerShell 3.0.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False

Parametersets

ComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
Uri
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathUri
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-FilePath

Hiermee geeft u een lokaal script op dat door deze cmdlet wordt uitgevoerd op een of meer externe computers. Voer het pad en de bestandsnaam van het script in of geef een scriptpad door naar Invoke-Command. Het script moet bestaan op de lokale computer of in een map waartoe de lokale computer toegang heeft. Gebruik ArgumentList om de waarden van parameters in het script op te geven.

Wanneer u deze parameter gebruikt, converteert PowerShell de inhoud van het opgegeven scriptbestand naar een scriptblok, verzendt het scriptblok naar de externe computer en voert deze uit op de externe computer.

Parametereigenschappen

Type:String
Default value:None
Ondersteunt jokertekens:False
DontShow:False
Aliassen:PSPath

Parametersets

FilePathRunspace
Position:1
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathComputerName
Position:1
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathUri
Position:1
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathVMId
Position:1
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathVMName
Position:1
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathContainerId
Position:1
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathSSHHost
Position:1
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathSSHHostHash
Position:1
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-HideComputerName

Geeft aan dat deze cmdlet de computernaam van elk object weglaat uit de uitvoerweergave. Standaard wordt de naam van de computer die het object heeft gegenereerd, weergegeven in de weergave.

Deze parameter is alleen van invloed op de uitvoerweergave. Het object wordt niet gewijzigd.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False
Aliassen:HCN

Parametersets

Session
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathRunspace
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
ComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
Uri
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathUri
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
VMId
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
VMName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathVMId
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathVMName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
SSHHost
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
ContainerId
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathContainerId
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
SSHHostHashParam
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathSSHHost
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathSSHHostHash
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-HostName

Hiermee geeft u een matrix van computernamen voor een SSH-verbinding (Secure Shell). Dit is vergelijkbaar met de parameter ComputerName, behalve dat de verbinding met de externe computer wordt gemaakt met behulp van SSH in plaats van Windows WinRM.

Deze parameter is geïntroduceerd in PowerShell 6.0.

Parametereigenschappen

Type:

String[]

Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

SSHHost
Position:Named
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathSSHHost
Position:Named
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-InDisconnectedSession

Geeft aan dat met deze cmdlet een opdracht of script wordt uitgevoerd in een niet-verbonden sessie.

Wanneer u de parameter InDisconnectedSession gebruikt, maakt Invoke-Command een permanente sessie op elke externe computer, start u de opdracht die is opgegeven door de parameter ScriptBlock of FilePath en wordt de verbinding met de sessie verbroken. De opdrachten blijven worden uitgevoerd in de niet-verbonden sessies. InDisconnectedSession kunt u opdrachten uitvoeren zonder een verbinding met de externe sessies te onderhouden. En omdat de sessie is verbroken voordat resultaten worden geretourneerd, zorgt InDisconnectedSession ervoor dat alle opdrachtresultaten worden geretourneerd naar de opnieuw verbonden sessie, in plaats van te worden gesplitst tussen sessies.

U kunt InDisconnectedSession- niet gebruiken met de parameter Session of de parameter AsJob.

Opdrachten die gebruikmaken van InDisconnectedSession een PSSession--object retourneren dat de niet-verbonden sessie vertegenwoordigt. Ze retourneren de uitvoer van de opdracht niet. Gebruik de cmdlets Connect-PSSession of Receive-PSSession om verbinding te maken met de niet-verbonden sessie. Gebruik de cmdlet Receive-PSSession om de resultaten op te halen van opdrachten die in de sessie zijn uitgevoerd. Als u opdrachten wilt uitvoeren die uitvoer genereren in een niet-verbonden sessie, stelt u de waarde van de optie OutputBufferingMode sessie in op Drop. Als u verbinding wilt maken met de niet-verbonden sessie, stelt u de time-out voor inactiviteit in de sessie in, zodat u voldoende tijd hebt om verbinding te maken voordat u de sessie verwijdert.

U kunt de uitvoerbuffermodus en inactiviteitstime-out instellen in de parameter SessionOption of in de $PSSessionOption voorkeursvariabele. Zie New-PSSessionOption en about_Preference_Variablesvoor meer informatie over sessieopties.

Zie about_Remote_Disconnected_Sessionsvoor meer informatie over de functie Niet-verbonden sessies.

Deze parameter is geïntroduceerd in PowerShell 3.0.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False
Aliassen:Niet verbonden

Parametersets

ComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
Uri
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathUri
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-InputObject

Hiermee geeft u invoer voor het commando. Voer een variabele in die de objecten bevat of typ een opdracht of expressie waarmee de objecten worden opgehaald.

Wanneer u de parameter InputObject gebruikt, gebruikt u de automatische $input variabele in de waarde van de parameter ScriptBlock om de invoerobjecten weer te geven.

Parametereigenschappen

Type:PSObject
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:True
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-JobName

Hiermee geeft u een beschrijvende naam voor de achtergrondtaak. Taken worden standaard Job<n>genoemd, waarbij <n> een rangnummer is.

Als u de parameter JobName in een opdracht gebruikt, wordt de opdracht uitgevoerd als een taak en wordt Invoke-Command een taakobject geretourneerd, zelfs als u AsJob- niet in de opdracht opneemt.

Zie about_Jobs voor meer informatie over PowerShell-achtergrondtaken.

Parametereigenschappen

Type:String
Default value:Job<n>
Ondersteunt jokertekens:False
DontShow:False

Parametersets

FilePathRunspace
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
Session
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
ComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
Uri
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathUri
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
SSHHost
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
ContainerId
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathContainerId
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
SSHHostHashParam
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-KeyFilePath

Hiermee geeft u een sleutelbestandspad op dat wordt gebruikt door Secure Shell (SSH) om een gebruiker op een externe computer te verifiëren.

Met SSH kan gebruikersverificatie worden uitgevoerd via persoonlijke en openbare sleutels als alternatief voor basiswachtwoordverificatie. Als de externe computer is geconfigureerd voor sleutelverificatie, kan deze parameter worden gebruikt om de sleutel op te geven die de gebruiker identificeert.

Deze parameter is geïntroduceerd in PowerShell 6.0.

Parametereigenschappen

Type:String
Default value:None
Ondersteunt jokertekens:False
DontShow:False
Aliassen:IdentityFilePath

Parametersets

SSHHost
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathSSHHost
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-NoNewScope

Geeft aan dat met deze cmdlet de opgegeven opdracht in het huidige bereik wordt uitgevoerd. Standaard voert Invoke-Command opdrachten uit in hun eigen bereik.

Deze parameter is alleen geldig in opdrachten die worden uitgevoerd in de huidige sessie, dat wil gezegd, opdrachten die zowel de ComputerName als Sessie parameters weglaten.

Deze parameter is geïntroduceerd in PowerShell 3.0.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False

Parametersets

InProcess
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Options

Hiermee geeft u een hashtabel op van SSH-opties die worden gebruikt bij het maken van verbinding met een externe SSH-sessie. De mogelijke opties zijn waarden die worden ondersteund door de Unix-versie van de opdracht ssh.

Alle waarden die expliciet door parameters worden doorgegeven, hebben voorrang op waarden die zijn doorgegeven in de Opties hashtabel. Als u bijvoorbeeld de parameter Poort gebruikt, worden alle Port sleutel-waardepaar dat is doorgegeven in de Opties hashtabel overschreven.

Deze parameter is toegevoegd in PowerShell 7.3.

Parametereigenschappen

Type:Hashtable
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

SSHHost
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathSSHHost
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Port

Hiermee geeft u de netwerkpoort op de externe computer die wordt gebruikt voor deze opdracht. Als u verbinding wilt maken met een externe computer, moet de externe computer luisteren op de poort die door de verbinding wordt gebruikt. De standaardpoorten zijn 5985 (WinRM-poort voor HTTP) en 5986 (WinRM-poort voor HTTPS).

Voordat u een alternatieve poort gebruikt, configureert u de WinRM-listener op de externe computer om naar die poort te luisteren. Als u de listener wilt configureren, typt u de volgende twee opdrachten bij de PowerShell-prompt:

Remove-Item -Path WSMan:\Localhost\listener\listener* -Recurse

New-Item -Path WSMan:\Localhost\listener -Transport http -Address * -Port \<port-number\>

Gebruik de parameter Port niet, tenzij u dit moet doen. De poort die in de opdracht is ingesteld, is van toepassing op alle computers of sessies waarop de opdracht wordt uitgevoerd. Een alternatieve poortinstelling kan verhinderen dat de opdracht wordt uitgevoerd op alle computers.

Parametereigenschappen

Type:Int32
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

ComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
SSHHost
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-RemoteDebug

Wordt gebruikt om de aangeroepen opdracht uit te voeren in de foutopsporingsmodus in de externe PowerShell-sessie.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False

Parametersets

Session
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathRunspace
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
ComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
Uri
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathUri
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
VMId
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
VMName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathVMId
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathVMName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
SSHHost
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
ContainerId
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathContainerId
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
SSHHostHashParam
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathSSHHost
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathSSHHostHash
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-RunAsAdministrator

Geeft aan dat deze cmdlet een opdracht aanroept als beheerder.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False

Parametersets

ContainerId
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathContainerId
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-ScriptBlock

Hiermee geeft u de opdrachten die moeten worden uitgevoerd. Plaats de opdrachten tussen accolades ({ }) om een scriptblok te maken. Wanneer u Invoke-Command gebruikt om een opdracht op afstand uit te voeren, worden alle variabelen in de opdracht geëvalueerd op de externe computer.

Opmerking

Parameters voor het scriptblok kunnen alleen worden doorgegeven vanuit ArgumentList op positie. Schakelparameters kunnen niet worden doorgegeven door positie. Als u een parameter nodig hebt die zich gedraagt als een SwitchParameter type, gebruikt u in plaats daarvan een Booleaanse type.

Parametereigenschappen

Type:ScriptBlock
Default value:None
Ondersteunt jokertekens:False
DontShow:False
Aliassen:Opdracht

Parametersets

InProcess
Position:0
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
Session
Position:0
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
ComputerName
Position:0
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
Uri
Position:0
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
VMId
Position:0
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
VMName
Position:0
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
SSHHost
Position:0
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
ContainerId
Position:0
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
SSHHostHashParam
Position:0
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Session

Hiermee geeft u een matrix van sessies waarin deze cmdlet de opdracht uitvoert. Voer een variabele in die PSSession objecten bevat of een opdracht waarmee de PSSession--objecten worden gemaakt of opgehaald, zoals een opdracht New-PSSession of Get-PSSession.

Wanneer u een PSSession-maakt, maakt PowerShell een permanente verbinding met de externe computer. Gebruik een PSSession- om een reeks gerelateerde opdrachten uit te voeren waarmee gegevens worden gedeeld. Als u één opdracht of een reeks niet-gerelateerde opdrachten wilt uitvoeren, gebruikt u de parameter ComputerName. Zie about_PSSessionsvoor meer informatie.

Parametereigenschappen

Type:

PSSession[]

Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

Session
Position:0
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathRunspace
Position:0
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-SessionName

Hiermee geeft u een beschrijvende naam op voor een niet-verbonden sessie. U kunt de naam gebruiken om te verwijzen naar de sessie in volgende opdrachten, zoals een Get-PSSession opdracht. Deze parameter is alleen geldig met de parameter InDisconnectedSession.

Deze parameter is geïntroduceerd in PowerShell 3.0.

Parametereigenschappen

Type:

String[]

Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

ComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-SessionOption

Hiermee stelt u geavanceerde opties in voor de sessie. Voer een SessionOption--object in, zoals een object dat u maakt met behulp van de cmdlet New-PSSessionOption of een hash-tabel waarin de sleutels namen van sessieopties zijn en de waarden sessieoptiewaarden zijn.

Opmerking

Als u een hashtabel opgeeft voor SessionOption, converteert PowerShell de hashtabel naar een System.Management.Automation.Remoting.PSSessionOption-object. De waarden voor sleutels die in de hashtabel zijn opgegeven, worden omgezet in de overeenkomende eigenschap van het object. Dit gedraagt zich anders dan het aanroepen van New-PSSessionOption. De System.TimeSpan waarden voor de time-outeigenschappen, zoals IdleTimeout-, converteert bijvoorbeeld een geheel getal in tikken in plaats van milliseconden. Zie PSSessionOption- voor meer informatie over het PSSessionOption-object en de eigenschappen ervan

De standaardwaarden voor de opties worden bepaald door de waarde van de $PSSessionOption voorkeursvariabele, als deze is ingesteld. Anders worden de standaardwaarden ingesteld op basis van opties die zijn ingesteld in de sessieconfiguratie.

De waarden voor sessieopties hebben voorrang op standaardwaarden voor sessies die zijn ingesteld in de $PSSessionOption voorkeursvariabele en in de sessieconfiguratie. Ze hebben echter geen voorrang op maximumwaarden, quota of limieten die zijn ingesteld in de sessieconfiguratie.

Zie New-PSSessionOptionvoor een beschrijving van de sessieopties die de standaardwaarden bevatten. Zie $PSSessionOptionvoor meer informatie over de voorkeursvariabele. Zie about_Session_Configurationsvoor meer informatie over sessieconfiguraties.

Parametereigenschappen

Type:PSSessionOption
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

ComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
Uri
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathUri
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-SSHConnection

Deze parameter gebruikt een matrix van hash-tabellen waarbij elke hash-tabel een of meer verbindingsparameters bevat die nodig zijn om een SSH-verbinding (Secure Shell) tot stand te brengen. De parameter SSHConnection is handig voor het maken van meerdere sessies waarbij elke sessie verschillende verbindingsgegevens vereist.

De hashtabel heeft de volgende leden:

  • ComputerName (of HostName)
  • port
  • gebruikersnaam
  • KeyFilePath- (of IdentityFilePath)

ComputerName (of HostName) is het enige sleutel-waardepaar dat vereist is.

Deze parameter is geïntroduceerd in PowerShell 6.0.

Parametereigenschappen

Type:

Hashtable[]

Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

SSHHostHashParam
Position:Named
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathSSHHostHash
Position:Named
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-SSHTransport

Geeft aan dat de externe verbinding tot stand is gebracht met behulp van Secure Shell (SSH).

PowerShell maakt standaard gebruik van Windows WinRM om verbinding te maken met een externe computer. Deze schakeloptie dwingt PowerShell om de parameter HostName te gebruiken voor het tot stand brengen van een externe verbinding op basis van SSH.

Deze parameter is geïntroduceerd in PowerShell 6.0.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Geaccepteerde waarden:true
Ondersteunt jokertekens:False
DontShow:False

Parametersets

SSHHost
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathSSHHost
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Subsystem

Hiermee geeft u het SSH-subsysteem gebruikt voor de nieuwe PSSession.

Hiermee geeft u het subsysteem op dat moet worden gebruikt voor het doel zoals gedefinieerd in sshd_config. Het subsysteem start een specifieke versie van PowerShell met vooraf gedefinieerde parameters. Als het opgegeven subsysteem niet bestaat op de externe computer, mislukt de opdracht.

Als deze parameter niet wordt gebruikt, is de standaardwaarde het powershell subsysteem.

Parametereigenschappen

Type:String
Default value:powershell
Ondersteunt jokertekens:False
DontShow:False

Parametersets

SSHHost
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathSSHHost
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-ThrottleLimit

Hiermee geeft u het maximum aantal gelijktijdige verbindingen op dat tot stand kan worden gebracht om deze opdracht uit te voeren. Als u deze parameter weglaat of een waarde van 0 invoert, wordt de standaardwaarde 32 gebruikt.

De beperkingslimiet is alleen van toepassing op de huidige opdracht, niet op de sessie of op de computer.

Parametereigenschappen

Type:Int32
Default value:32
Ondersteunt jokertekens:False
DontShow:False

Parametersets

Session
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathRunspace
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
ComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
Uri
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathUri
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
VMId
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
VMName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathVMId
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathVMName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
ContainerId
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathContainerId
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-UserName

Hiermee geeft u de gebruikersnaam voor het account dat wordt gebruikt om een opdracht uit te voeren op de externe computer. De verificatiemethode voor gebruikers is afhankelijk van hoe Secure Shell (SSH) is geconfigureerd op de externe computer.

Als SSH is geconfigureerd voor basiswachtwoordverificatie, wordt u gevraagd om het gebruikerswachtwoord.

Als SSH is geconfigureerd voor gebruikersverificatie op basis van sleutels, kan er een sleutelbestandspad worden opgegeven via de parameter KeyFilePath en vindt er geen wachtwoordprompt plaats. Als het sleutelbestand van de clientgebruiker zich op een bekende SSH-locatie bevindt, is de KeyFilePath-parameter niet nodig voor verificatie op basis van sleutels en vindt gebruikersverificatie automatisch plaats op basis van de gebruikersnaam. Zie de SSH-documentatie van uw platform over gebruikersverificatie op basis van sleutels voor meer informatie.

Dit is geen vereiste parameter. Als de parameter UserName niet is opgegeven, wordt de huidige aangemelde gebruikersnaam gebruikt voor de verbinding.

Deze parameter is geïntroduceerd in PowerShell 6.0.

Parametereigenschappen

Type:String
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

SSHHost
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathSSHHost
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-UseSSL

Geeft aan dat deze cmdlet gebruikmaakt van het SSL-protocol (Secure Sockets Layer) om een verbinding met de externe computer tot stand te brengen. SSL wordt standaard niet gebruikt.

WS-Management versleutelt alle PowerShell-inhoud die via het netwerk wordt verzonden. De parameter UseSSL is een extra beveiliging waarmee de gegevens via een HTTPS worden verzonden in plaats van HTTP.

Als u deze parameter gebruikt, maar SSL niet beschikbaar is op de poort die voor de opdracht wordt gebruikt, mislukt de opdracht.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False

Parametersets

ComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
FilePathComputerName
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-VMId

Hiermee geeft u een matrix van id's van virtuele machines.

Parametereigenschappen

Type:

Guid[]

Default value:None
Ondersteunt jokertekens:False
DontShow:False
Aliassen:VMGuid

Parametersets

VMId
Position:0
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False
FilePathVMId
Position:0
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-VMName

Bepaalt een array van namen van virtuele machines.

Parametereigenschappen

Type:

String[]

Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

VMName
Position:Named
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False
FilePathVMName
Position:Named
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

CommonParameters

Deze cmdlet ondersteunt de algemene parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction en -WarningVariable. Zie about_CommonParametersvoor meer informatie.

Invoerwaarden

ScriptBlock

U kunt een opdracht in een scriptblok doorsluisen naar Invoke-Command. Gebruik de $input automatische variabele om de invoerobjecten in de opdracht weer te geven.

Uitvoerwaarden

System.Management.Automation.PSRemotingJob

Als u de parameter AsJob gebruikt, retourneert deze cmdlet een taakobject.

PSSession

Als u de parameter InDisconnectedSession gebruikt, retourneert deze cmdlet een PSSession--object.

Object

Deze cmdlet retourneert standaard de uitvoer van de aangeroepen opdracht. Dit is de waarde van de parameter ScriptBlock.

Notities

PowerShell bevat de volgende aliassen voor Invoke-Command:

  • Alle platforms:
    • icm

Op Windows Vista en latere versies van het Windows-besturingssysteem, als u de ComputerName parameter van Invoke-Command wilt gebruiken om een opdracht uit te voeren op de lokale computer, moet u PowerShell uitvoeren met behulp van de Uitvoeren als administrator optie.

Wanneer u opdrachten uitvoert op meerdere computers, maakt PowerShell verbinding met de computers in de volgorde waarin ze worden weergegeven in de lijst. De uitvoer van de opdracht wordt echter weergegeven in de volgorde waarin deze wordt ontvangen van de externe computers, wat mogelijk anders is.

Fouten die het gevolg zijn van de opdracht die Invoke-Command wordt uitgevoerd, worden opgenomen in de opdrachtresultaten. Fouten die fouten bij het beëindigen van een lokale opdracht zouden zijn, worden behandeld als niet-afsluitfouten in een externe opdracht. Deze strategie zorgt ervoor dat afsluitfouten op één computer de opdracht niet sluiten op alle computers waarop deze wordt uitgevoerd. Deze procedure wordt zelfs gebruikt wanneer een externe opdracht wordt uitgevoerd op één computer.

Als de externe computer zich niet in een domein bevindt dat de lokale computer vertrouwt, kan de computer mogelijk de referenties van de gebruiker niet verifiëren. Als u de externe computer wilt toevoegen aan de lijst met vertrouwde hosts in WS-Management, gebruikt u de volgende opdracht in de WSMan-provider, waarbij <Remote-Computer-Name> de naam van de externe computer is:

Set-Item -Path WSMan:\Localhost\Client\TrustedHosts -Value \<Remote-Computer-Name\>

Wanneer u een PSSession loskoppelt met behulp van de parameter InDisconnectedSession, wordt de sessiestatus verbroken en wordt de beschikbaarheid Geen. De waarde van de eigenschap State is relatief ten opzichte van de huidige sessie. Een waarde van verbroken betekent dat de PSSession- niet is verbonden met de huidige sessie. Het betekent echter niet dat de PSSession- is losgekoppeld van alle sessies. Het kan zijn dat deze is verbonden met een andere sessie. Gebruik de eigenschap Availability om te bepalen of u verbinding kunt maken met de sessie of opnieuw verbinding kunt maken met de sessie.

Een beschikbaarheidswaarde van Geen geeft aan dat u verbinding kunt maken met de sessie. Een waarde van Bezet geeft aan dat u geen verbinding kunt maken met de PSSession- omdat deze is verbonden met een andere sessie. Zie RunspaceStatevoor meer informatie over de waarden van de eigenschap State van sessies. Zie RunspaceAvailabilityvoor meer informatie over de waarden van de eigenschap Availability van sessies.

De parameters HostName en SSHConnection zijn opgenomen vanaf PowerShell 6.0. Ze zijn toegevoegd om externe communicatie van PowerShell te bieden op basis van Secure Shell (SSH). PowerShell en SSH worden ondersteund op meerdere platforms (Windows, Linux, macOS) en externe communicatie van PowerShell via deze platforms waarop PowerShell en SSH zijn geïnstalleerd en geconfigureerd. Dit is gescheiden van de vorige windows alleen externe communicatie die is gebaseerd op WinRM en veel van de Specifieke WinRM-functies en -beperkingen zijn niet van toepassing. Op WinRM gebaseerde quota, sessieopties, aangepaste eindpuntconfiguratie en functies voor verbinding verbreken/opnieuw verbinden worden momenteel niet ondersteund. Zie Externe communicatie van PowerShell via SSH via SSHvoor meer informatie over het instellen van externe communicatie met PowerShell SSH.

Het uitvoerbare ssh verkrijgt configuratiegegevens van de volgende bronnen in de volgende volgorde:

  1. opdrachtregelopties
  2. configuratiebestand van gebruiker (~/.ssh/config)
  3. configuratiebestand voor het hele systeem (/etc/ssh/ssh_config)

De volgende cmdlet-parameters worden toegewezen aan ssh parameters en opties:

Cmdlet-parameter ssh-parameter Equivalente ssh--o-optie
-KeyFilePath -i <KeyFilePath> -o IdentityFile=<KeyFilePath>
-UserName -l <UserName> -o User=<UserName>
-Port -p <Port> -o Port=<Port>
-ComputerName -Subsystem -s <ComputerName> <Subsystem> -o Host=<ComputerName>

Alle waarden die expliciet door parameters worden doorgegeven, hebben voorrang op waarden die zijn doorgegeven in de Opties hashtabel. Zie ssh_configvoor meer informatie over bestanden.