Befehlsskript, um festzustellen, ob der Remote-Windows-Server standardmäßig PowerShell oder CDOS verwendet

Befehlsskript, um festzustellen, ob der Remote-Windows-Server standardmäßig PowerShell oder CDOS verwendet

Ich habe ein Projekt, um eine Verbindung zu einem Remote-Windows-Server herzustellen und ein Powershell-Skript auszuführen.

Gibt es einen Befehl, den ich auf dem Remotecomputer ausführen kann, um herauszufinden, ob dieser standardmäßig mit PowerShell konfiguriert wurde, sodass ich mein Skript direkt mit PowerShell statt mit CDOS ausführen kann?

Dieser Befehl kann entweder in PowerShell oder CDOS ausgeführt werden.

Antwort1

Ihre Frage deutet darauf hin, dass Sie mit PowerShell oder zumindest mit PSRemoting noch nicht vertraut sind. Nehmen Sie sich also bitte die Zeit, sich mithilfe von YouTube, MSDN Channel9 und den MS Learning-Sites in das Thema einzuarbeiten. Suchen Sie nach PowerShell für Anfänger/Fortgeschrittene und speziell nach PowerShell-Remoting und PowerShell mit SSH.

Wenn Sie beim Versuch, einen PowerShell-Befehl auf dem Remote-Host zu verwenden, keine Fehlermeldung erhalten, ist es aktiviert. Nur weil es aktiviert ist, heißt das nicht immer, dass es für Sie verfügbar ist. Für viele PSRemoting-Befehle müssen Sie ein Konto verwenden, das zur lokalen Administratorgruppe des Zielhosts gehört.

Ob PSRemoting auf einem lokalen oder Remoteziel aktiviert ist, lässt sich ganz einfach überprüfen. Für solche Überprüfungen gibt es Cmdlets ...

Beispiele:

Get-Command -Name '*pssession*' | Format-Table -AutoSize

CommandType Name                                  Version Source                      
----------- ----                                  ------- ------                      
Cmdlet      Connect-PSSession                     3.0.0.0 Microsoft.PowerShell.Core   
Cmdlet      Disable-PSSessionConfiguration        3.0.0.0 Microsoft.PowerShell.Core   
Cmdlet      Disconnect-PSSession                  3.0.0.0 Microsoft.PowerShell.Core   
Cmdlet      Enable-PSSessionConfiguration         3.0.0.0 Microsoft.PowerShell.Core   
Cmdlet      Enter-AzureRmWebAppContainerPSSession 5.2.0   AzureRM.Websites            
Cmdlet      Enter-PSSession                       3.0.0.0 Microsoft.PowerShell.Core   
Cmdlet      Exit-PSSession                        3.0.0.0 Microsoft.PowerShell.Core   
Cmdlet      Export-PSSession                      3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet      Get-PSSession                         3.0.0.0 Microsoft.PowerShell.Core   
Cmdlet      Get-PSSessionCapability               3.0.0.0 Microsoft.PowerShell.Core   
Cmdlet      Get-PSSessionConfiguration            3.0.0.0 Microsoft.PowerShell.Core   
Cmdlet      Import-PSSession                      3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet      New-AzureRmWebAppContainerPSSession   5.2.0   AzureRM.Websites            
Cmdlet      New-PSSession                         3.0.0.0 Microsoft.PowerShell.Core   
Cmdlet      New-PSSessionConfigurationFile        3.0.0.0 Microsoft.PowerShell.Core   
Cmdlet      New-PSSessionOption                   3.0.0.0 Microsoft.PowerShell.Core   
Cmdlet      Receive-PSSession                     3.0.0.0 Microsoft.PowerShell.Core   
Cmdlet      Register-PSSessionConfiguration       3.0.0.0 Microsoft.PowerShell.Core   
Cmdlet      Remove-PSSession                      3.0.0.0 Microsoft.PowerShell.Core   
Cmdlet      Set-PSSessionConfiguration            3.0.0.0 Microsoft.PowerShell.Core   
Cmdlet      Test-PSSessionConfigurationFile       3.0.0.0 Microsoft.PowerShell.Core   
Cmdlet      Unregister-PSSessionConfiguration     3.0.0.0 Microsoft.PowerShell.Core 


Get-PSSessionConfiguration

# get function / cmdlet details
Get-Command -Name Get-PSSessionConfiguration -Syntax

# Results

Get-PSSessionConfiguration [[-Name] <string[]>] [-Force] [<CommonParameters>]


(Get-Command -Name Get-PSSessionConfiguration).Parameters.Keys

# Results

Name
Force
Verbose
Debug
ErrorAction
WarningAction
InformationAction
ErrorVariable
WarningVariable
InformationVariable
OutVariable
OutBuffer
PipelineVariable

Get-help -Name Get-PSSessionConfiguration -Full
Get-help -Name Get-PSSessionConfiguration -Online

Get-help -Name Get-PSSessionConfiguration -Examples

# Results

Get-PSSessionConfiguration  
Get-PSSessionConfiguration -Name Microsoft* 
Get-PSSessionConfiguration -Name Full | Format-List -Property * 
(Get-PSSessionConfiguration Microsoft.PowerShell.Workflow).PSObject.Properties | Select-Object Name,Value | Sort-Object Name    
dir wsman:\localhost\plugin 
Connect-WSMan -ComputerName Server01    
dir WSMan:\Server01\Plugin  
dir WSMan:\Server01\Plugin\*\Resources\Resource*\Capability | where {$_.Value -eq "Shell"} | foreach {($_.PSPath.split("\"))[3] }   
Enable-WSManCredSSP -Delegate Server02  
Connect-WSMan Server02  
Set-Item WSMan:\Server02*\Service\Auth\CredSSP -Value $true 
Invoke-Command -ScriptBlock {Get-PSSessionConfiguration} -ComputerName Server02 -Authentication CredSSP -Credential Domain01\Admin01    
(Get-PSSessionConfiguration -Name CustomShell).resourceURI  

... und gut dokumentiert auf TechNet, den MS-Dokumenten, der Site, den PowerShell-Hilfedateien und vielen Blogs und Q&A-Sites im gesamten Web. Man muss nur eine einfache Suche durchführen, um diese Elemente und Beispiele zu finden.

Suche nach „Überprüfen, ob Psremoting auf einem Remotehost aktiviert ist“. Beispieltreffer:

So erkennen Sie, ob Powershell-Remoting aktiviert ist

Aktivieren Sie PowerShell Remoting und prüfen Sie, ob es aktiviert ist.

verwandte Informationen