6

仮想ボックスを使用してWindows2003ボックスをセットアップしましたが、PowerShellで操作できません。

私は自分のWindows7マシンでこれを試します

Get-Service –ComputerName myserver

戻ってきます

Get-Service : Cannot open Service Control Manager on computer 'myserver'. This operation might require other privileges.
At Script1.ps1:2 char:4
+ gsv <<<<  -cn myserver
    + CategoryInfo          : NotSpecified: (:) [Get-Service], InvalidOperationException
    + FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.PowerShell.Commands.GetServiceCommand

周りを検索しているときに、私は試して使用する必要があることがわかりましEnable-PSRemotingた。

私はこれをしました、そして今私がそれを使おうとすると私は得ます

WinRMは、このマシンで要求を受信するように既に設定されています。WinRMは、このマシンでリモート管理用に既に設定されています。

それでも、同じエラーが発生します。これは、仮想マシンを使用しているためですか?ドメイン上に仮想OSを設定し、ADアカウントのクレデンシャルを使用してログインすることもできます。

私はそれから他の情報を取り戻すことができます。

つまり、PowerShellで接続できないわけではありません。

4

5 に答える 5

7

PowerShell V2 では、リモート コマンドに 2 つのアプローチがあります。

組み込みのリモート機能を備えたコマンド:

PowerShell v2 の小さなコマンド セットには、-ComputerNameアクセスするターゲット マシンを指定できるパラメーターがあります。

Get-Process
Get-Service
Set-Service

Clear-EventLog
Get-Counter
Get-EventLog
Show-EventLog
Limit-EventLog
New-EventLog
Remove-EventLog
Write-EventLog

Restart-Computer
Stop-Computer

Get-HotFix

これらのコマンドは、基盤となるインフラストラクチャが既にリモート処理をサポートしているか、システム管理にとって特に重要なシナリオに対応しているため、独自のリモート処理を行います。これらは DCOM の上に構築されており、アクセスの観点から、NET.exeまたはのようなコマンドでリモート マシンとのセッションを確立できる場合に使用できますPSExec.exe

-credそれらのいずれかを使用しようとしていますが、トークンの資格情報を使用してリモート マシンへの管理者セッションを確立できないため、資格情報 (パラメーター) に問題があります。

PowerShell リモート処理サブシステム:

PowerShell リモート処理を使用してリモート コンピューターにアクセスする前に、そのコンピューターのリモート処理サービスを明示的に有効にする必要があります。Enable-PSRemotingこれは、コマンドレットを使用して行います。ワークグループで作業している場合は、サーバーが次のコマンドを使用してクライアント コンピューターに入力できるようにする必要もあります (クライアント コンピューターで管理者として)。

Set-Item WSMan:\localhost\Client\TrustedHosts *

次に、New-PSSessionコマンドレットを (-computernameおよびと共に-credentials) 使用して、セッション オブジェクトを作成します。次にInvoke-Command( とを使用し-session-scriptblock) コマンドレットを使用すると、別のコンピューターでスクリプト ブロックをリモートで呼び出すことができます。これは、リモート処理のほとんどの機能の基本要素です。Enter-PSSession を使用して、サーバーとの対話型 (SSL のような) PowerShell コマンド ラインを確立することもできます。

便利なリンク : PowerShell 2.0 リモート処理の初心者向けガイド


これをテストします:

$sess = New-PSSession -ComputerName myServer-Credential (Get-Credential)
Invoke-Command -Session $sess -ScriptBlock {get-service}
...
Remove-PSSession -Session $sess
于 2012-05-25T05:20:04.890 に答える
3

それでも重要な場合は、次の回避策があります。

クライアントAからサーバーBへのpowershell(v2)リモートを希望する「usser」という非特権ユーザーを取得しました。

手順:

  1. 管理者として Targetserver B でenable-psremoting
  2. Set-PSSessionConfiguration -Name Microsoft.PowerShell -ShowSecurityDescriptorUIで Targetserver B を管理者として
  3. 完全な権限を持つ「ユーザー」を追加

エキサイティングな部分は次のとおりです。

  1. 管理者として Targetserver B のsc sdshow scmanager

  2. SDDL 出力をコピーする

  3. sc sdset scmanager (fe:)"D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY) (A;;KA;;;BA)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)" 、この部分の後に入力する必要がある出力(A;; CCLCRPWPRC;;;SY) this = (A;;KA;;; SID )

  4. SIDはもちろん、権限のない「usser」ユーザーの SID を表します。

  5. すべてがうまくいくと、次のようになります。

    D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;; S-1-5-21-4233383628-1788409597-1873130553-1161)(A;;KA;;;BA)S:(AU;FA;KA;;;WD)(AU;OIIIOFA;GA;;;WD)

少し複雑な回避策を楽しんでいただければ幸いです。

于 2015-08-24T13:13:51.733 に答える
1

サービスの表示と操作には、ターゲットマシンの管理者権限が必要です。

Get-Service -ComputerName MyServer問題のサーバーに対する管理者権限を持たないユーザーアカウントとしてログインしているときに実行を試みることで、エラーメッセージを複製することができました。

これを解決するには、ターゲットサーバーでワークステーションユーザーアカウントの管理者権限を付与するか、サーバー上にローカルグループを作成して、そのグループのメンバーに呼び出し権限を付与します。後者を実行したい場合は、次の記事を参照してください。

msgoodies:管理者権限がなくてもPSセッションを使用する

于 2012-06-01T21:54:30.987 に答える
0

これがこの質問に対する理想的な答えではないことはわかっていますが、PowerShell を使用して Windows 7 ボックスと通信しようとしたときに同様の問題が発生しました。結局のところ、WMI は、Win7 に付属するネイティブ PSv2 ではインストールされていませんでした。

WMI 3.0 パッケージの一部として v3 をインストールするとすぐに、問題は自然に解決しました。関連するすべての WMI サービスがサーバー上で実行されていることを確認することをお勧めします。競合がなければ、WMI 3.0 にアップグレードすることもお勧めします。

于 2013-11-10T23:45:37.093 に答える