我目前正在使用diskpart在远程应用程序上工作,以扩展远程计算机上的硬盘驱动器。在这种情况下,我需要远程计算机上diskpart的配置文件。
要在我的计算机上运行的虚拟服务器上进行测试,通过wmi等进行连接,就可以正常工作。
服务器未配置为 AD 。 Powershell Information显示,该域是 WORKGROUP 。
如果我尝试调用以下代码来实现我在远程计算机上写文件的目标,则出现错误,称为
“您不能使用此凭据登录,因为您的域是 不可用。确保您的设备已连接到组织的 网络,然后重试。如果您以前已经登录到此 具有不同凭据的计算机,您可以使用这些凭据登录 凭据”
[DllImport("advapi32.dll", SetLastError = true)]
public static extern bool LogonUser(String lpszUsername, String lpszDomain, String lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken);
private const int LOGON32_PROVIDER_DEFAULT = 0;
private const int LOGON32_LOGON_INTERACTIVE = 2;
private IntPtr m_Token;
private WindowsImpersonationContext m_Context = null;
m_Token = IntPtr.Zero;
bool logonSuccessfull = LogonUser(username, "WORKGROUP", pwd, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, ref m_Token);
if (logonSuccessfull == false)
{
int error = Marshal.GetLastWin32Error();
throw new Win32Exception(error);
}
WindowsIdentity identity = new WindowsIdentity(m_Token);
m_Context = identity.Impersonate();
string theStringToWrite = "Select Volume " + driveLocation + Environment.NewLine + "Extend Size=" + driveExtension + Environment.NewLine;
string filepath = @"C:\Temp\diskpartscript.txt";
string filetext = "Select Volume " + driveLocation + Environment.NewLine + "Extend Size=" + driveExtension + Environment.NewLine;
File.WriteAllText(filepath, filetext, Encoding.GetEncoding(1252));
我在做什么错了?
虚拟机称为Testserver。将Vhosts文件设置为testserver的ip地址。物理连接正常。