Командный скрипт, чтобы узнать, использует ли удаленный сервер Windows PowerShell по умолчанию или CDOS

Командный скрипт, чтобы узнать, использует ли удаленный сервер Windows PowerShell по умолчанию или CDOS

У меня есть проект по подключению к удаленному серверу Windows и запуску скрипта Powershell.

Можно ли выполнить какую-либо команду на удаленной машине, чтобы узнать, настроена ли она с PowerShell по умолчанию, чтобы я мог запустить свой скрипт напрямую с помощью PowerShell, а не CDOS?

Эту команду можно выполнить как в PowerShell, так и в CDOS.

решение1

Ваш вопрос указывает на то, что вы совсем новичок в PowerShell или, как минимум, в PSRemoting. Поэтому, пожалуйста, потратьте время на то, чтобы быстро освоить тему, используя YouTube, MSDN Channel9 и сайты MS Learning, выполняя поиск по запросам Beginning/Intermediate/Advanced PowerShell и, в частности, PowerShell Remoting и PowerShell с использованием SSH.

Если вы не получаете сообщение об ошибке при попытке использовать любую команду PowewrShell на удаленном хосте, то она включена. То, что она включена, не всегда означает, что она вам доступна. Многие команды PSRemoting требуют использования учетной записи, которая находится в локальной группе администраторов целевого хоста.

Проверка того, включен ли PSRemoting на локальном или удаленном объекте, — обычное дело, для таких проверок существуют командлеты...

Примеры):

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  

... и хорошо документированы на TechNet, MS docs, сайте, файлах справки PowerShell и многих блогах и сайтах вопросов и ответов по всему Интернету. Нужно просто выполнить простой поиск, чтобы найти эти элементы и примеры.

Поиск «проверить, включен ли psremoting на удаленном хосте» Примеры результатов:

Как определить, включено ли удаленное взаимодействие PowerShell

Включите PowerShell Remoting и проверьте, включен ли он.

Связанный контент