リモート Windows サーバーがデフォルトで PowerShell を使用しているか CDOS を使用しているかを確認するコマンド スクリプト

リモート Windows サーバーがデフォルトで PowerShell を使用しているか CDOS を使用しているかを確認するコマンド スクリプト

リモート Windows サーバーに接続して Powershell スクリプトを実行するプロジェクトがあります。

リモート マシンで実行して、デフォルトで PowerShell が構成されているかどうかを確認し、CDOS ではなく PowerShell を使用して直接スクリプトを実行できるコマンドはありますか?

このコマンドは、PowerShell または CDOS のいずれかで実行できます。

答え1

あなたの質問は、あなたが PowerShell、または少なくとも PSRemoting の初心者であることを示しています。そのため、YouTube、MSDN Channel9、および MS Learning サイトを使用して、「Beginning/Intermediate/Advanced PowerShell」、特に「PowerShell Remoting」および「PowerShell using 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 ドキュメント、サイト、PowerShell ヘルプ ファイル、Web 上の多数のブログや Q&A サイトに詳しく記載されています。これらの項目や例を見つけるには、簡単な検索を行うだけで済みます。

「リモート ホストで psremoting が有効になっているかどうかを確認する」を検索します。ヒット例:

PowerShell リモート処理が有効になっているかどうかを検出する方法

PowerShell Remoting を有効にして、有効になっているかどうかを確認します。

関連情報