0

我有一个从 Visual Studio Web 应用程序 (C#) 调用的 powershell 脚本。我设置了一个应用程序池,并且脚本执行。但是,当我使用任何Invoke-DbaQuery使用-SqlCredential.

这是一些测试代码:

$mytest = Invoke-DbaQuery -SqlInstance $BackupInstance -Database "master" -SqlCredential $SourceCredential -Query "select suser_name()" -as SingleValue 

write-output "I am currently running as:  $mytest"

从powershell,这将返回:

我目前正在运行:MYDOMAIN\myAdUserName

当我通过网络应用程序运行它时,我得到:

我目前正在运行:MYDOMAIN\AppPoolServerName$

我已经更改了我的凭据以尝试不同的用户,当从控制台运行时它会返回该新用户,但从 Web 运行时仍然是机器名称。

任何想法为什么会发生这种情况以及如何解决?

编辑:$SourceCredential设置如下:

$SourceUsername = 'MYDOMAIN\MyAdUserName' $SecureIntPw = Get-Content "C:\Scripts\Security\MyAdUserName.txt" | ConvertTo-SecureString $SourceCredential = new-object -typename System.Management.Automation.PSCredential -argumentlist $SourceUserName, $SecureIntPw
4

0 回答 0