リモート 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 が有効になっているかどうかを確認する」を検索します。ヒット例: