0

システム ユーザー アカウントで実行されるアプリケーションを実行する必要があります (powershell 自体は、管理者権限を持つ標準ユーザー アカウントで実行されます)。カスタム資格情報を使用して Start-Process コマンドレットを試しました。

$cred = New-Object System.Management.Automation.PSCredential -ArgumentList @("system", (ConvertTo-SecureString -String "" -AsPlainText -Force))
Start-Process -Credential $cred "app.exe"

しかし、それには2つの問題があります。まず、空白のパスワード (システム ユーザーには何もありません) の有無にかかわらず、資格情報オブジェクトを作成できません。パスワードだけで資格情報を使用すると、パスワードが正しくないというエラー メッセージが表示されます。これを行う方法はありますか?

ところで、これには psexec を使用できません。

4

2 に答える 2

0

powershellでは無理だと思います。at(dos コマンド)の使用を試みることができます。

at TIME /interactive app.exe

TIMEプロセスを開始する時間はどこhh.mmですか...

于 2012-10-03T08:40:42.307 に答える
0

Invoke-TokenManipulation.ps1スクリプトを使用できます。

このスクリプトには管理者権限が必要です。利用可能なログオン トークンを列挙し、それらを使用して新しいプロセスを作成できます。これにより、ログオン トークンを使用してプロセスを作成することにより、ネットワーク経由で別のユーザーの資格情報を使用できるようになります。これは、Windows 8.1 LSASS 保護でも機能します。

それをコピーして貼り付けるか、スクリプトと一緒に保存し、Invoke-TokenManipulation.ps1ドットソーシングを使用してロードします。

$ScriptDir = Split-Path $script:MyInvocation.MyCommand.Path
. (Join-Path -Path $ScriptDir -ChildPath 'Invoke-TokenManipulation.ps1')

そして、Invoke-TokenManipulation関数を使用できます。

例:

# Spawns cmd.exe as SYSTEM.
Invoke-TokenManipulation -CreateProcess "cmd.exe" -Username "nt authority\system"
于 2015-02-20T16:13:49.187 に答える