これが必要な理由について詳しく説明しませんが、ユーザーは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")
私はこれが私のために働いたことがわかりました。
$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が指摘した特殊文字の問題を回避するために、単一引用符を使用するように変更されました。
Start-Process
にRunAs
オプションを追加してみてください
Start-Process powershell.exe -Credential $Credential -Verb RunAs -ArgumentList ("-file $args")
Windows Server 2012または2016では、Windows PowerShellを検索してから「Pin to Start」を実行できます。この後、スタートページのタイルを右クリックすると、[別のユーザーとして実行]オプションが表示されます。