C# C“Powershell脚本失败:”;无法获取区域信息“;

C# C“Powershell脚本失败:”;无法获取区域信息“;,c#,powershell,dns,windows-server-2012,C#,Powershell,Dns,Windows Server 2012,我已经创建了一个小型站点,实际创建DNS NS记录。当我在PS中(在我的site.com服务器上)执行代码时,它工作正常,但当我从网站(托管在我的site.com服务器上)运行代码时,它失败并出现错误:“创建IP 1.1.1时出错。错误:无法在服务器myServer上获取site.com的区域信息” 我的PS脚本是: Add-DnsServerZoneDelegation site.com –childzonename lab00012 –IPAddress 1.1.1.1 –nameserve

我已经创建了一个小型站点,实际创建DNS NS记录。当我在PS中(在我的site.com服务器上)执行代码时,它工作正常,但当我从网站(托管在我的site.com服务器上)运行代码时,它失败并出现错误:“创建IP 1.1.1时出错。错误:无法在服务器myServer上获取site.com的区域信息”

我的PS脚本是:

Add-DnsServerZoneDelegation site.com –childzonename lab00012 –IPAddress 1.1.1.1 –nameserver 1.1.1.1
我的C#代码是:

我已经确认该站点将运行PS命令,例如

Get-WmiObject Win32_BIOS -Namespace 'root\\CIMV2' -computername . 
没有问题

Powershell版本为3.0,服务器为运行IIS 6.2的Windows server 2012


非常感谢您的帮助,提前谢谢

我发现Power Shell需要增强权限才能更改DNS(以及相关的文件夹和文件)。经过一些研究,我最终使用了以下代码:

pipeline.Commands.AddScript("$pw= convertto-securestring 'adminPassword' -asplaintext –force");
pipeline.Commands.AddScript("$user = New-Object Management.Automation.PSCredential('machine\\Administrator', $pw)");
pipeline.Commands.AddScript("Invoke-Command -ComputerName . -Credential $user -ScriptBlock {"+scriptText+"}");
我认识到硬编码我的管理员密码是不好的形式,但时间不多了,我无法找到更好的解决方案


如果其他人有更好的解决方案,我愿意接受

您的代码在IIS下执行的是什么?有哪些权限与您的Powershell控制台不同?我不知道,我假设默认值是什么。这只是我第二次使用IIS,所以我所做的就是创建一个网站并上传文件。对不起,IIS和powershell对我来说都是全新的。
pipeline.Commands.AddScript("$pw= convertto-securestring 'adminPassword' -asplaintext –force");
pipeline.Commands.AddScript("$user = New-Object Management.Automation.PSCredential('machine\\Administrator', $pw)");
pipeline.Commands.AddScript("Invoke-Command -ComputerName . -Credential $user -ScriptBlock {"+scriptText+"}");