マシンキーに基づいて設定ファイルを暗号化するコマンドラインプログラム(c#)があります。 PowerShellスクリプトはビルドをターゲットサーバにコピーし、それに応じてコンフィグを変更し、Windowsサービスをインストールします。 すべてのWindowsサービスはローカルシステムアカウント(標準ユーザー、非管理者)として実行されます - このアカウントを "locuser"と呼ぶことにしましょう。Powershell remoting - 別のユーザーとしてexeを実行できません
ターゲットサーバは、2012年のWindows Serverです。上記のすべては、ビルドサーバーからこのターゲットサーバーへのPSリモーティングによって実現されます。
ここで、暗号化コマンドラインプログラムを「locuser」として実行する必要があります。そのため、プログラムはアカウント固有のキーを使用して暗号化を行うことができます。 -Credentials
パラメーターを使用してStart-Process
コマンドレットを呼び出すと、これを簡単に実現できます。さて、ここでキャッチは、上記の作業はうまくいけば、私はターゲットサーバにリモート(RDP)してから、Powershell ConsoleからStart-Process .... -Credential $cred
を実行する。
しかし、配備中にTargetServerにリモートイン(スクリプトを使用して)している間、これが動作する必要があります。私がTargetServerにリモートインするとき、私は管理者権限を持つ資格情報を使用します。
私は、「フルコントロール」および「起動(実行)」Set-PSSessionConfiguration -Name Microsoft.PowerShell -ShowSecurityDescriptorUI
コマンドを使用してアクセス許可の両方の「locuser」を許可している以下の
- を試してみました。私はこのコマンドを実行しました
Microsoft.Powershell
とMicrosoft.Powershell32
- まだアクセスが拒否される - "ローカルセキュリティポリシー" - > "ローカルポリシー" - > "ユーザー権利の割り当て" - >認証後にクライアントを偽装 - そして、Adminアカウント(私がログインしていること)と「locuser」アカウントの両方を追加しました - それでもアクセスが拒否されました取得
- 私も付与されてきたlocuserの管理者権限 - それでも私はかなり確信しているアクセスが
を拒否された取得私が逃しているもののPS Remoting Sideにはいくつかの設定がありますが、Powershellが私をスローするので、何も分かりません。Access Denied
エラーです(スクリーンショット参照)。さらなるトラブルシューティングに役立つ情報
また、トレースはチェックされていますが使用できません。
実際、私はこれがなぜ問題なのか説明していないことに気付きました。これは、別のコンピュータに資格情報を送信してからそこから3台目のコンピュータに資格情報を送信し、Windowsが偽装またはリダイレクトされていないことを完全には信用していないためです。基本的にセキュリティ上の予防措置です。信頼できるものには例外を追加し、自分が何をしているのかを確認できるようにする必要があります。 –
私は上記のコマンドを試しました。これでより詳細なエラーが表示されます - [localhost]次のエラーメッセージでリモートサーバーlocalhostに接続できませんでした:WinRMクライアントは 要求を処理できません。 CredSSP認証は、クライアント構成で現在無効になっています。クライアントの構成を変更して、 の要求を再度実行してください。 CredSSP認証は、サーバー構成でも有効にする必要があります。 – obfuscate
私はこれを両方のサーバーから実行しました - 元のサーバー(ビルドサーバー)とターゲットサーバーの両方から実行すると同じエラーが発生します - また、ターゲットサーバーの資格情報を委任することもできますエラー:(それはlocuserがEnable-WSManCredSSPで設定されている必要がありますか?それをどうするかわかりません.Poershellコンソールを管理者として実行してもlocuserとしてログインすることはできません。 – obfuscate