3

Windows-7 64ビットマシンでpowershellスクリプトからexeを実行しようとしています。このスクリプトでは、exe を別のユーザーとして実行したいと考えています。スクリプトを呼び出すユーザーが実際のユーザーである場合に機能します。しかし、私の場合、このpowershellスクリプトはシステムユーザーアカウントから実行され、システムユーザースクリプトでは機能しません。ここでは、メモ帳を開くために使用している簡単なコードを示します。システム ユーザーの場合、このコードは失敗します。

$username = 'MyDomain\MyUser'
$password = 'mypswd'
$cred = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,(ConvertTo-SecureString -String $password -AsPlainText -Force))
Start-Process -Credential $cred  "notepad.exe"

実行ポリシーを無制限に設定しました。システムユーザーに対してこのスクリプトを実行すると、次のようなエラーが発生します

Start-Process : エラーのため、このコマンドを実行できません: アクセスが拒否されました。At D:\temp\trythis.ps1:4 char:14 + Start-Process <<<< -Credential $cred "notepad.exe" + CategoryInfo : InvalidOperation: (:) [Start-Process], InvalidOperationException + FullyQualifiedErrorId : InvalidOperationException、Microsoft.PowerShell.C ommands.StartProcessCommand

システム ユーザーに対してこのスクリプトを実行する方法はありますか?

4

1 に答える 1

0

ここで最も可能性の高い問題はアクセス許可の問題です (問題を再現できる唯一の方法は、アカウントに拒否エントリを設定することでした)。

権限が正しいことを確認するために、次のことをお勧めします。手順は Windows XP、SP3 用です。お使いのバージョンに合わせて調整してください。

  1. 「notepad.exe」を右クリックし、「プロパティ」をクリックします
  2. [セキュリティ] タブをクリックします
  3. 詳細設定ボタンをクリックします
  4. [有効なアクセス許可] タブをクリックします。
  5. [選択... ] ボタンをクリックします。
  6. 確認するアカウントを入力し、そのアカウントに適切な読み取り権限と実行権限があることを確認します。
于 2012-07-20T10:43:40.037 に答える