web-dev-qa-db-ja.com

PowerShellを別のユーザーとして実行し、スクリプトを起動する

これが必要な理由について詳しく説明しませんが、ユーザーはPowerShellをサービスアカウントとして起動し、PowerShellが読み込まれたらスクリプトを実行する必要があります。格納された資格情報(セキュリティで保護された文字列として格納されます)でPowerShellを既に起動できますが、私の人生では、スクリプト($ argsにある)を実行できません。私はさまざまなことを試してみましたが、以下は現在のところです。どんな助けも大歓迎です。

$user = "domain\service.account" 
$pwd1 = "big long huge string of characters"
$pwd = ($pwd1 | ConvertTo-SecureString)
$Credential = New-Object System.Management.Automation.PSCredential $user, $pwd
$args = "\\domain.local\location\location\location\Script\script.ps1"
Start-Process powershell.exe -Credential $Credential -ArgumentList ("-file $args")
31
Little King

次のように、指定されたユーザー資格情報で新しいPowerShellウィンドウを開くことができます。

start powershell -credential ""

enter image description here

41

私はこれが私のために働いたことがわかりました。

$username = 'user'
$password = 'password'

$securePassword = ConvertTo-SecureString $password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential $username, $securePassword
Start-Process Notepad.exe -Credential $credential

更新:Paddyが指摘した特殊文字の問題を回避するために、単一引用符を使用するように変更されました。

32
Duke of Muppets

UIを使用してこれを実現する良い方法もあります。

0)タスクバーでPowerShellアイコンを右クリックします

1)Windows PowerShellでShift +右クリック

2)「別のユーザーとして実行」

Pic

28
Semyon Vyskubov

Start-ProcessRunAsオプションを追加してみてください

Start-Process powershell.exe -Credential $Credential -Verb RunAs -ArgumentList ("-file $args")
4
mjolinor

Windows Server 2012または2016では、Windows PowerShellを検索してから「Pin to Start」を実行できます。この後、スタートページのタイルを右クリックすると、[別のユーザーとして実行]オプションが表示されます。

2
user7867901