VBScript写入服务器文本文件
我创建了一个VBScript,它从计算机中提取服务标签、用户名和计算机名。我现在需要做的是在文本文档中编译这些信息 其设置方式如下: 我们有一个Active Directory服务器,有一个用于登录脚本的文件夹。我已经创建了一个批处理文件来运行这个.vbs脚本,到目前为止,该脚本运行良好。我现在需要的是在AD服务器上的一个名为“logging.txt”的文件中填充使用.vbs脚本创建的信息 这是我到目前为止的脚本:VBScript写入服务器文本文件,vbscript,Vbscript,我创建了一个VBScript,它从计算机中提取服务标签、用户名和计算机名。我现在需要做的是在文本文档中编译这些信息 其设置方式如下: 我们有一个Active Directory服务器,有一个用于登录脚本的文件夹。我已经创建了一个批处理文件来运行这个.vbs脚本,到目前为止,该脚本运行良好。我现在需要的是在AD服务器上的一个名为“logging.txt”的文件中填充使用.vbs脚本创建的信息 这是我到目前为止的脚本: 'Get Dell Service Tag Info set ProSet =
'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
将信息保存到本地文本文件并使用命令行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
将信息保存到本地文本文件并使用命令行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
我觉得你好像漏掉了什么。。这是如何在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
我觉得你好像漏掉了什么。。这是如何在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
除了正在工作的代码外,您尝试并确定哪些代码不起作用,您必须至少向我们展示您所尝试的。@Ramhound我已经尝试编写了以下内容:
sub log(用户、计算机)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
如果您仍然遇到访问被拒绝的错误,则运行脚本的帐户没有文件夹的写入权限。除了正在运行的代码外,您尝试并确定哪些内容无效,您必须至少向我们展示您的尝试。@Ramhound我已经试着写过了:子日志(用户,计算机)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
如果您仍然遇到访问被拒绝的错误,则运行脚本的帐户对该文件夹没有写入权限。我收到的是“权限被拒绝”-800A0046错误消息显然,运行脚本的帐户需要对文件夹的写入权限。如果您使用的是windows vista或7,则很可能您没有在驱动器根目录中写入文件的权限。还可以考虑,对于被安装的程序,除非被用户特别指定,否则不被认为是“有礼貌的”。考虑在用户的临时文件夹或应用程序数据文件夹中使用一个位置。我得到一个“权限被拒绝”-800 A046错误消息。显然,运行脚本的帐户需要对该文件夹的写访问。如果您使用Windows Vista或7,那么您可能没有权限在驱动器的根目录中写入文件。还可以考虑,对于被安装的程序,除非被用户特别指定,否则不被认为是“有礼貌的”。考虑在用户的临时文件夹或应用程序数据文件夹中使用一个位置。这将不起作用,因为我最终将不得不将此部署到700个终端用户。那么,您可以从VB调用命令行FTP客户端吗?它是一个windows组件,存在于每个windows系统上,可能早在windows 95或更早的版本。即使如此,一旦发生所有这些情况,我也必须手动将信息解析到另一个文件。解析是读取而不是写入的过程。您会发现,编写FTP实现要比编写文件(大约需要5或6行代码)多得多。文件的格式是什么?这将不起作用,因为我最终将不得不将其部署到700个最终用户。你能从VB调用命令行ftp客户端吗?它是一个windows组件,存在于每个windows系统上,可能早在windows 95或更早的版本。即使如此,一旦发生所有这些情况,我也必须手动将信息解析到另一个文件。解析是读取而不是写入的过程。您会发现,编写FTP实现要比编写文件(大约需要5或6行代码)多得多。文件的格式是什么?