私はジレンマがあります。Powershellと他のユーザーとしてスケジュールされたタスクを実行
Windowsでスケジュールされたタスクを設定して、別のユーザー(アクセス権を持つが、ログオン権限を持たないサービスアカウント)としてpowershellスクリプトを実行しようとしています。問題は、セキュリティグループがパスワードをコード化しないように指示されていることです(明らかに良いアドバイス)が、SQLの接続文字列にはプレーンテキストが必要なようです。 、しかし
$password = cat E:\temp\password.txt | ConvertTo-SecureString
$BSTR = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($password)
$UnsecurePassword = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)
$connectionString = "Data Source=<mydatabase>;Initial Catalog='<mytable>';User ID=tng ;Password=$Unsecurepassword;"
に
(接続文字列で使用される)バックプレーンテキストに変換し$credential = Get-Credential
$credential.Password | ConvertFrom-SecureString | Set-Content e:\temp\password.txt
そして、スクリプトで暗礁にされています。私は、パスワード・ファイルを作成することによってこの問題を回避取得していますパスワードファイルを作成して自分でスクリプトを実行すると素晴らしい結果が出るが、これをスケジュールされたタスクとして実行できないようだ。過去の経験では、パスワードファイルがスケジュールされたタスクを実行しているサービスアカウントによって作成されている必要がある場所を見てきましたが、ローカルのログオン権限がないため、これを作成する方法がわかりません。何かご意見は?
私はthis technet articleを試しましたが、それでも他のアカウントからローカルログオンが必要と思われます。答えを見つけ
に感謝を発見した[李nk](http://www.adminarsenal.com/admin-arsenal-blog/secure-password-with-powershell-encrypting-credentials-part-2/) – jdolluc