Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBScript写入服务器文本文件_Vbscript - Fatal编程技术网

VBScript写入服务器文本文件

VBScript写入服务器文本文件,vbscript,Vbscript,我创建了一个VBScript,它从计算机中提取服务标签、用户名和计算机名。我现在需要做的是在文本文档中编译这些信息 其设置方式如下: 我们有一个Active Directory服务器,有一个用于登录脚本的文件夹。我已经创建了一个批处理文件来运行这个.vbs脚本,到目前为止,该脚本运行良好。我现在需要的是在AD服务器上的一个名为“logging.txt”的文件中填充使用.vbs脚本创建的信息 这是我到目前为止的脚本: 'Get Dell Service Tag Info set ProSet =

我创建了一个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

将信息保存到本地文本文件并使用命令行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行代码)多得多。文件的格式是什么?