我需要构建一个简单的Web服务,通过Internet将数据输入和输出HR系统(这是一个托管解决方案).我正在使用IIS和ASP.Net与.Net 2.0.
看了之后,有几种方法可以确保网络服务的安全 - 我正在考虑选择哪种方法,并对一些优缺点进行一些观察.
这些是我所知道的方法:
将UID/PWD发布到Soap头中并实现SOAP扩展(链接).
非常简单的实现,并且应该通过SSL非常安全.由于相对简单,这是我的首选方案.此外,由于历史原因,我需要使用VBScript中的所有Web服务,因此只需处理简单的SOAP即可.
但是,有什么警告吗?我是否会让客户抱怨这是一种安全隐患?
我发现很多旧文章指的是WS,如果我没有被误解,这就是现在在WCF中提供的内容?这个Microsoft链接有一个入门.
如果我理解正确,它会在客户端和服务器之间使用基于证书的安全性进行身份验证.这是正确的还是我完全错了?
我怀疑这将是一项更大的工作,至少在实施方面是明智的.此外,我将无法直接从VBScript访问Webservice,因此必须编写一个调用它的DLL然后在本地部署 - 正确吗?
这甚至可以在.Net 2.0中使用吗?
对于解决这个问题的最佳方法,我将非常感激.如果有人有一个很好的论据,为什么Soap Headers是安全的,那么我很乐意听到它,因为这似乎是最简单的使用,只要它"足够安全".
我的客户端使用Access作为SQL Server数据库的前端.他们最近在运行一些报告时不时开始收到ODBC-3146错误.据我所知,这只是一个通用的ODBC调用失败错误.
我已经尝试在启动报告的VB脚本中坚持一些错误处理,但我没有运气获得额外的错误信息.
代码看起来有点像这样.
Public Function RunReports()
On Error GoTo MyErrorTrap
DoCmd.OpenReport "blah", acViewPreview
DoCmd.Close
DoCmd.OpenReport "foo", acViewPreview
DoCmd.Close
Exit_function:
Exit Function
MyErrorTrap:
Dim errX As DAO.Error
Dim MyError As Error
If Errors.Count > 1 'This always seems to be 0, so no help
For Each errX In DAO.Errors 'These are empty even if dont check for Errors.Count
Debug.Print "ODBC Error"
Debug.Print errX.Number
Debug.Print errX.Description
Next errX
Else
Debug.Print "VBA Error"
Debug.Print Err.Number
Debug.Print Err.Description
End If
'Also have tried …Run Code Online (Sandbox Code Playgroud) 我有一个简单的vbscript来检索Windows版本:
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colVersions = objWMI.ExecQuery("Select * from Win32_OperatingSystem")
For Each objVer in colVersions
ver = objVer.Version
Next
Run Code Online (Sandbox Code Playgroud)
有可能获得第一条记录,或者我必须遍历集合中的所有记录.我见过的所有例子都是For Each建筑.我尝试时收到预期的语句结束错误:
ver = colVersions[0].Version
Run Code Online (Sandbox Code Playgroud)
看起来返回值ExecQuery不是一个合适的集合.
我正在使用vbscript从db2中提取数据并写入文件.写入文件如:
Set objTextFile = objFSO.CreateTextFile(sFilePath, True, True)
Run Code Online (Sandbox Code Playgroud)
以unicode创建文件.但那是xml文件,它使用UTF-8.因此,当我用MS XML Notepad打开xml文件时,它会抛出错误:'十六进制值0x00是无效字符'
所以我用TextPad打开这个文本文件并保存为UTF-8.之后,XML打开没有任何问题.我可以通过vbScript将文件从Unicode转换为UTF-8吗?
我一直在互联网上检查,但实际上找不到我的问题的任何具体解决方案.
如何检查字符串是否仅包含声明的有效字符?
我希望我的字符串只包含0-9,AZ和az
因此,该字符串oifrmf9RWGEWRG3oi4m3ofm3mklwef-qæw应该是因为无效-而æ
同时该字符串joidsamfoiWRGWRGmoi34m3f应该是有效的.
我一直在使用内置的RegExp去除字符串,但它是否可以让它检查并返回一个布尔值false或true?
我的正则表达式:
set pw = new regexp
pw.global = true
pw.pattern = "[^a-zA-Z0-9]"
newstring = pw.replace("iownfiwefnoi3w4mtl3.-34ø'3", "")
Run Code Online (Sandbox Code Playgroud)
谢谢 :)
我在使用VBA/Excel宏和HTA的VBScript中遇到问题.问题只是VBScript,我有另外两个组件,即VBA宏和HTA前端工作完美.但在我解释这个问题之前,我想你帮助我,我必须帮助你理解VBScript的背景.
因此,基本上所有组件(VBScript,VBA宏和HTA)都是我正在构建的工具的一部分,以自动化一些手动琐事.它几乎是这样的:
~~~~~~~~~~~~
~~~~~~~~~~~~
myScript.vbs然后使用第4个参数作为包含多个文件的文件夹的PATH,并将其分配给变量,以便在调用GetFolder时传递给FileSystemObject对象,即
... 'Other code here, irrelevant for this post
Dim FSO, FLD, strFolder
... 'Other code here, irrelevant for this post
arg4 = args.Item(3)
strFolder = arg4
Set FSO = CreateObject("Scripting.FileSystemObject"
'Get a reference to the folder you want to search
Set FLD = FSO.GetFolder(strFolder)
...
Run Code Online (Sandbox Code Playgroud)从这里我创建一个循环,以便我可以顺序打开文件夹中的文件,然后运行我的宏,即
...
Dim strWB4, strMyMacro
strMyMacro = "Sheet1.my_macro_name"
'loop through the folder and get …Run Code Online (Sandbox Code Playgroud)我正在尝试编写一个VBScript,它将在文本文件或csv中列出系统上所有已安装的应用程序.我能够找到列出所有软件的现有代码(包括名称,版本,日期和大小).当我正在运行它时,因为我发现它回显了主机回显弹出.我需要添加什么来使其将每个回声输出到文件?我相信这很容易,但我似乎无法找到解决方案.
以下是我发现的脚本:
Dim fso
Set fso = WScript.CreateObject("Scripting.Filesystemobject")
' List All Installed Software
Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE
strComputer = "."
strKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
strEntry1a = "DisplayName"
strEntry1b = "QuietDisplayName"
strEntry2 = "InstallDate"
strEntry3 = "VersionMajor"
strEntry4 = "VersionMinor"
strEntry5 = "EstimatedSize"
Set objReg = GetObject("winmgmts://" & strComputer & _
"/root/default:StdRegProv")
objReg.EnumKey HKLM, strKey, arrSubkeys
WScript.Echo "Installed Applications" & VbCrLf
For Each strSubkey In arrSubkeys
intRet1 = objReg.GetStringValue(HKLM, strKey & strSubkey, _
strEntry1a, strValue1)
If intRet1 <> 0 Then
objReg.GetStringValue …Run Code Online (Sandbox Code Playgroud) 请将此脚本与我的问题放在上下文中:
If objFSO.FileExists("C:\Windows\Fonts\" & objFile.Name) Then
Wscript.Echo "Font already installed: " & objFile.Name
Run Code Online (Sandbox Code Playgroud)
如果X文件已存在,我想要一个VBS脚本退出/退出/终止.目前,它将根据预期提供一个消息框,说明"已安装字体".
如果我删除了Echo我而不是得到一个空白框,我仍然必须点击确定.
我希望脚本只有在X已经存在并且有0个用户输入的情况下自动结束.
这可能吗?我有wscript.quit,wscript.exit但只是得到错误.
完整的脚本可以在这里找到:http:
//www.cloudtec.ch/blog/tech/install-font-command-line-script-windows-7.html
所以,在上下文中,我想要安装XYZ字体.如果它们已经安装,我希望脚本只需终止而无需点击OK.目的是在网络上部署字体.
我正在编写一个连接到Sybase数据库的VBScript,从表中读取一些数据并将其存储在变量中,然后连接到MS SQL服务器并将数据插入到包含先前存储的可变数据的表中.
我不确定这是否是相关信息,但由于我只有32位驱动程序用于连接到Sybase ODBC,并且由于此VBScript在64位计算机上运行,因此我通过命令行运行它但使用SysWoW64 cmd .exe并像这样运行它:
C:\Windows\SysWOW64>cscript C:\My\Directory\MyVBScript.vbs
Run Code Online (Sandbox Code Playgroud)
我无法连接到Sybase数据库.我最初对连接字符串本身有一些问题,但似乎已经解决了.
这是我现在收到的错误消息,但我不知道如何通过这个:
Microsoft OLE DB Provider for ODBC Drivers:[SYBASE] [ODBC Sybase driver] [Sybase] ct_connect():user api layer:internal Client Library error:HAFAILOVER:尝试连接服务器
这是现在的脚本
Dim connStr, objConn
DataSource = "ICCM_PREVIEW"
ServerIP = "1.2.3.4"
Port = "1234"
DBuser = "myUser"
DBpwd = "myPassword"
DBName = "myDatabase"
Driver = "SYBASE ASE ODBC Driver"
connStr = ""
connStr = connStr &"Driver="& Driver &";"
connStr = connStr &"Data Source="& DataSource &";"
connStr = connStr &"Srvr="& ServerIP &","& Port &";"
connStr …Run Code Online (Sandbox Code Playgroud) 我想在Windows上自动执行telnet会话的任务,以便我可以使用不同的值多次运行它.
我有一个.wsf脚本,用于使用硬编码值执行该任务一次.
如何参数化.wsf脚本的值.
有没有办法进行参数化,比如使用excel,我可以存储所有变量并将它们动态传递给脚本?