zore Posted February 3, 2011 Share Posted February 3, 2011 I'm building a script that will install and msi (this works) and create a directory in the logged on users My Documents directory. OS is windows 7 and I'm using sccm to deploy the package. The script seems to work if you double click the exe but fails when run thru sccm with admin rights. The user base will all be regular users with out admin rights. The reason for the while and reading from txt to get dir name is that sometimes windows will create a user profile that will be username.domain if the username already exists.$var1 = RegRead ("HKEY_LOCAL_MACHINE64\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI", "LastLoggedOnSAMUser")$file2 = FileOpen ("C:\IronmountainInst.txt", 1);if FileExists ("C:\Program Files (x86)\Iron Mountain\Connected BackupPC") Then;Exit ;ElsefileWriteLine ($file2, "Var1="& $var1)$var2 = StringTrimLeft ( $var1 , 6 )fileWriteLine ($file2, "Var2="& $var2);FileInstall ("C:\Users\volltrauerj\Documents\07.Wise Scripts\Iron Mountain\Iron Mountain\Production AgentSetupMSI\Agentsetup.msi", @TempDir & "\AgentSetup.msi");RunWait ("C:\Windows\System32\MSIexec /qn /i" & @TempDir & "\AgentSetup.msi LDAPID=" & $var2 & " FIRSTBACKUP=0 MAKESHORTCUT=0");FileDelete ( @TempDir & "\AgentSetup.msi");Get all users profilesRunWait ("C:\Windows\System32\cmd.exe /c dir /b C:\Users > C:\profiles.txt");Create NoBackupDir$file = FileOpen ( "C:\profiles.txt",0);Failes after here. As $var3 is never written to text.While 1 $name1=FileReadLine($file) If StringRegExp ($name1, $var2) = 1 Then ExitLoop; end of fileWEndfileWriteLine ($file2, "Var3="& $name1)DirCreate ("C:\Users\turnerj\documents\NoBackup")FileClose($file)FileClose($file2);Else;EndIfAs you can see, I commented out some of the script as that works. Is there a better way of doing this? Link to comment Share on other sites More sharing options...
zore Posted February 3, 2011 Author Share Posted February 3, 2011 Hope this is easier to read. PHByZSBjbGFzcz0iX3ByZXR0eVhwcmludCI+JHRleHQ9J10kdmFyMSA9IFJlZ1JlYWQgKCZxdW90O0hLRVlfTE9DQUxfTUFDSElORTY0XFNPRlRXQVJFXE1pY3Jvc29mdFxXaW5kb3dzXEN1cnJlbnRWZXJzaW9uXEF1dGhlbnRpY2F0aW9uXExvZ29uVUkmcXVvdDssICZxdW90O0xhc3RMb2dnZWRPblNBTVVzZXImcXVvdDspCiRmaWxlMiA9IEZpbGVPcGVuICgmcXVvdDtDOlxJcm9ubW91bnRhaW5JbnN0LnR4dCZxdW90OywgMSkKO2lmIEZpbGVFeGlzdHMgKCZxdW90O0M6XFByb2dyYW0gRmlsZXMgKHg4NilcSXJvbiBNb3VudGFpblxDb25uZWN0ZWQgQmFja3VwUEMmcXVvdDspIFRoZW4KO0V4aXQJCjtFbHNlCmZpbGVXcml0ZUxpbmUgKCRmaWxlMiwgJnF1b3Q7VmFyMT0mcXVvdDsmYW1wOyAkdmFyMSkKJHZhcjIgPSBTdHJpbmdUcmltTGVmdCAoICR2YXIxICwgNiApCgpmaWxlV3JpdGVMaW5lICgkZmlsZTIsICZxdW90O1ZhcjI9JnF1b3Q7JmFtcDsgJHZhcjIpCgo7RmlsZUluc3RhbGwgKCZxdW90O0M6XFVzZXJzXHZvbGx0cmF1ZXJqXERvY3VtZW50c1wwNy5XaXNlIFNjcmlwdHNcSXJvbiBNb3VudGFpblxJcm9uIE1vdW50YWluXFByb2R1Y3Rpb24gQWdlbnRTZXR1cE1TSVxBZ2VudHNldHVwLm1zaSZxdW90OywgQFRlbXBEaXIgJmFtcDsgJnF1b3Q7XEFnZW50U2V0dXAubXNpJnF1b3Q7KQo7UnVuV2FpdCAoJnF1b3Q7QzpcV2luZG93c1xTeXN0ZW0zMlxNU0lleGVjIC9xbiAvaSZxdW90OyAmYW1wOyBAVGVtcERpciAmYW1wOyAmcXVvdDtcQWdlbnRTZXR1cC5tc2kgTERBUElEPSZxdW90OyAmYW1wOyAkdmFyMiAmYW1wOyAmcXVvdDsgRklSU1RCQUNLVVA9MCBNQUtFU0hPUlRDVVQ9MCZxdW90OykKCgo7RmlsZURlbGV0ZSAoIEBUZW1wRGlyICZhbXA7ICZxdW90O1xBZ2VudFNldHVwLm1zaSZxdW90OykKCgo7R2V0IGFsbCB1c2VycyBwcm9maWxlcwpSdW5XYWl0ICgmcXVvdDtDOlxXaW5kb3dzXFN5c3RlbTMyXGNtZC5leGUgL2MgZGlyIC9iIEM6XFVzZXJzICZndDsgQzpccHJvZmlsZXMudHh0JnF1b3Q7KQoKO0NyZWF0ZSBOb0JhY2t1cERpcgokZmlsZSA9IEZpbGVPcGVuICggJnF1b3Q7QzpccHJvZmlsZXMudHh0JnF1b3Q7LDApCldoaWxlIDEKICAkbmFtZTE9RmlsZVJlYWRMaW5lKCRmaWxlKQogIElmIFN0cmluZ1JlZ0V4cCAoJG5hbWUxLCAgJHZhcjIpID0gMSBUaGVuIEV4aXRMb29wOyBlbmQgb2YgZmlsZQoKV0VuZAoKZmlsZVdyaXRlTGluZSAoJGZpbGUyLCAmcXVvdDtWYXIzPSZxdW90OyZhbXA7ICRuYW1lMSkKCgpEaXJDcmVhdGUgKCZxdW90O0M6XFVzZXJzXHR1cm5lcmpcZG9jdW1lbnRzXE5vQmFja3VwJnF1b3Q7KQoKCkZpbGVDbG9zZSgkZmlsZSkKRmlsZUNsb3NlKCRmaWxlMikKO0Vsc2UKO0VuZElmPC9wcmU+[/__PRE_PROTECTED] Link to comment Share on other sites More sharing options...
zore Posted February 3, 2011 Author Share Posted February 3, 2011 I figured it out as a case sensativity problem. I just have to figure out how to make the If StringRegExp ($name1, $var2) = 1 Then ExitLoop not case sensative. I believe it's ?i but i just have to figure out syntax. Link to comment Share on other sites More sharing options...
jvanegmond Posted February 4, 2011 Share Posted February 4, 2011 (edited) The syntax with StringRegExp is like so: (?i)case-insensitive-pattern-here. Are you sure you need StringRegExp? StringInStr can tell you in string B is container in string A and it has a simple option for case-sensitivity. By default it is not case sensitive. Edited February 4, 2011 by Manadar github.com/jvanegmond Link to comment Share on other sites More sharing options...
zore Posted February 4, 2011 Author Share Posted February 4, 2011 The syntax with StringRegExp is like so: (?i)case-insensitive-pattern-here.Are you sure you need StringRegExp? StringInStr can tell you in string B is container in string A and it has a simple option for case-sensitivity. By default it is not case sensitive.Thanks for the info. The entire code i created from googling bits of it since I'm a total nub at this. I was able to get the installation to work once I added a bit of code for case insensitivity. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now