【问题标题】:Vbscript in C #C#中的VB脚本
【发布时间】:2012-07-16 11:59:28
【问题描述】:

我想在 OS 和 ADAM 中禁用或启用用户。为此,我使用以下脚本在操作系统级别启用用户。我想在 C# 代码中运行这个脚本,我不想从 C# 代码调用这个 vb 脚本文件。有没有办法将这个 vbscript 嵌入到 c# 代码中?

strComputer = "."

' Specify local user name.
strUser = "new"

' Bind to local user account on the computer.
Set objUser = GetObject("WinNT://" & strComputer & "/" & strUser & ",user")

' Enable the user.
objUser.AccountDisabled = True
objUser.SetInfo

【问题讨论】:

  • 很抱歉,我无法解析您的问题。为了清楚起见,请让英语流利的人帮你重写。
  • 将其写入批处理文件并使用shell执行。
  • @asawyer:取自问题“我不想从 c# 代码调用这个 vb 脚本文件
  • @BinaryWorrier 是的,但这也是实现目标的最简单方法,并且提问者没有说明除“我不想”之外取消此选项的任何具体原因。
  • 您使用的是什么版本的 C#/Visual Studio?这可以在 C# 4(VS2010 附带)中轻松完成。

标签: c# vbscript


【解决方案1】:

如果您使用的是 C# 4(或更高版本),您可以轻松地将调用转换为 C#

void EnableUser(string computer, string user)
{
    var objectName = "WinNT://" + computer + "/" + user + ",user";
    dynamic objUser = Activator.CreateInstance(Type.GetTypeFromProgID(objectName));
    // Enable the user.
    objUser.AccountDisabled = true;
    objUser.SetInfo();
}

应该有效

【讨论】:

  • @L.B:谢谢,我太笨了
  • 非常感谢。这就是我一直在寻找的。​​span>
  • 不客气,伙计。 . .如何将其标记为正确?给它+1?当然,所有这些都是可选的,我不为 rep 这样做。 . .仅此而已。 . . .
猜你喜欢
  • 2017-05-26
  • 2017-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多