1

我创建了一个 VBScript,它从计算机中提取服务标签、用户名和计算机名称。我现在需要做的是在文本文档中编译这些信息。

它的设置方式如下:

我们有一个 Active Directory 服务器,其中有一个用于登录脚本的文件夹。我创建了一个批处理文件来运行这个 .vbs 脚本,该脚本到目前为止运行良好。我现在需要的是在 AD 服务器上的一个名为“logging.txt”的文件中填充使用 .vbs 脚本创建的信息。

这是我到目前为止的脚本:

'Get Dell Service Tag Info
set ProSet = GetObject("winmgmts:").InstancesOf("Win32_BIOS")
Set ProSet1 = GetObject("winmgmts:").InstancesOf("Win32_SystemEnclosure")
For each Pro in ProSet
  For each Pro1 in ProSet1
   ServiceTag=Pro.SerialNumber
    wscript.echo ServiceTag
    exit for
  Next
  exit for
Next

'get username and computername, could also be asked in a batch
Set oShell     = WScript.CreateObject("WScript.Shell")
Set oShellEnv  = oShell.Environment("Process")
sComputerName  = oShellEnv("ComputerName")
sUsername      = oShellEnv("username")
wscript.echo sComputerName & " " & sUsername

非常感谢您!

这是我迄今为止尝试过的:

sub log (user, computer)
  dim fs,f
  set fs=Server.CreateObject("Scripting.FileSystemObject")
  set f=fs.OpenTextFile(Server.MapPath(".\logging.csv"),8,true)
  f.WriteLine now & "," & user & "," & computer
  f.Close:set f=Nothing
  set fs=Nothing
end sub
4

2 回答 2

1

我觉得你好像遗漏了一些东西。这就是在 VBS 中编写文本文件的方法。

dim filesys, filetxt, getname, path
Set filesys = CreateObject("Scripting.FileSystemObject")
Set filetxt = filesys.CreateTextFile("c:\somefile.txt", True)
path = filesys.GetAbsolutePathName("c:\somefile.txt")
getname = filesys.GetFileName(path)
filetxt.WriteLine("Your text goes here.")
filetxt.Close
If filesys.FileExists(path) Then
   Response.Write ("Your file, '" & getname & "', has been created.")
End If
于 2012-06-20T15:34:54.233 回答
0

将信息保存到本地文本文件并使用命令行 ftp 实用程序从调用您的脚本的批处理脚本上传它可能是最简单的,而不是尝试发明另一个轮子并在 vbscript 中执行。

您可以列出 ftp 的命令行选项:

ftp /?

我建议设置这样的东西:

ftp -s:control.txt

control.txt 将包含以下内容:

open [hostname or address]
[username]
[password]
cd [remote directory name]
put logging.txt
disconnect
bye
于 2012-06-20T15:27:49.543 回答