2012-06-20 190 views
1

我创建了一个VBScript,它从计算机中提取服务标签,用户名和计算机名称。我现在需要做的是在文本文件中编译这些信息。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 
+0

除了正在工作的代码之外,您尝试过并确定哪些方法无效,您必须至少向我们展示您尝试的内容。 –

+0

@Ramhound我试着写这个至今: '子记录(用户,计算机) 昏暗的FS,F 组FS =的Server.CreateObject( “Scripting.FileSystemObject的”) 集合F = fs.OpenTextFile(服务器。 MapPath(“。\ logging.csv”),8,true) f.WriteLine now&“,”&user&“,”&computer f.Close:set f = Nothing set fs = Nothing end sub' –

+0

如果仍然出现拒绝访问错误,则您正在运行脚本的帐户对该文件夹没有写入权限。 – carny666

回答

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 
+0

我得到一个“权限被拒绝” - 800A0046错误信息 –

+0

您的第三留置权, –

+0

很明显,运行该脚本的帐户需要对该文件夹的写入权限。 – carny666

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 
+0

这是行不通的,因为我最终必须将其部署到700个最终用户。 –

+0

你可以从VB调用命令行ftp客户端吗?它是一个Windows组件,并且存在于每个Windows系统中,可能早在Windows 95和更早的版本中。 – Wug

+0

即使是这样,一旦发生这种情况,我将不得不手动将信息解析到另一个文件。 –

相关问题