【发布时间】:2013-06-18 23:43:29
【问题描述】:
我正在向我们的 C# (.NET 4.5) 站点添加一个页面,该页面将处理 Office 365 帐户配置。我从 Microsoft 找到了一个有用的 utility,它是一个 Windows 应用程序,它通过 PowerShell 调用管理 Office 365 用户。此应用程序在我的 Windows 7 机器上运行良好,并允许我配置/编辑用户帐户。当我从the tool 采用完全相同的ExcutePowershellCommands() 方法并将其放入我的Web 应用程序时,它不起作用,说我尝试的任何Office 365 cmdlet 都无法识别。根据该工具的说明,这是因为用户帐户没有运行 Windows PowerShell 的权限,这是有道理的,因为 IIS 将在与运行本机 Windows 应用程序不同的用户帐户下运行代码。
如果我在代码中的 ExcutePowershellCommands() 周围加上一个模拟本地管理员的 using() 块,则该函数在我的 Web 应用程序中有效。但是,如果我创建一个调用此 ExcutePowershellCommands() 函数的单元测试并运行测试,我只会收到无法识别 Office 365 cmdlet 的错误(即使我仍然将该函数包装在模拟管理员的 using() 块中) .有没有办法找出单元测试在哪个帐户下运行(使用 TestDriven.Net)?如果我进行模拟,为什么单元测试在哪个帐户下运行甚至很重要?
谢谢!
【问题讨论】:
-
听起来 Office 365 的 cmdlet 没有为运行 IIS 帐户的配置文件加载。我不能肯定地说你可能需要添加什么才能让他们得到认可。我将首先查看运行
gc $profile所返回的内容,以查看它们是否在此处被引用。 -
看起来我没有配置文件,因为我输入
$profile时列出的路径中没有文件。
标签: c# powershell