how to access vista system remotely using vb.net? - vb.net

I tried to access xp to vista system manually, its working,but programatically how to do it ?
like,by selecting view workgroup computers in network tasks and click one computer in workgroup computers.it shows connect to "system name" window, contains username and password
if i enter username and password.the seleted computer will able to access in registry
otherwise i can't able to access that selected system.
how to do this manual process in vb.net coding? is it possible or not?
please help me

You can use OpenRemoteBaseKey to access the remote registry but before that you need to impersonate an account with the correct access rights using WindowsIdentity.Impersonate.
The following MSDN link contains a complete sample to login as a different user programmatically:
http://msdn.microsoft.com/en-us/library/system.security.principal.windowsimpersonationcontext.aspx

Related

remote sc OpenSCManager query failed 5 access denied

I'm writing a script that periodically checks that certain services are running on remote workstations. I'm having a devil of a time getting an "SC \workst1 query" command working from one test machine to another. Both machines are running XP pro SP3. Neither is part of a domain. Both are in the same workgroup, and the administrator accounts have the same passwords.
I keep getting the "[SC] OpenSCManager FAILED 5: Access is denied" message, from either workstation to the other. I have tried using elevated privileges on both. Windows firewall software is turned off. There are no messages are showing up in the Event security logs. When (as administrator) I try going to "Computer Management" -> "connect to another computer" and access the remote services I get "Error 5 Access is denied".
I can set up a filesystem share between the two machines successfully, and "net use \workst1\IPC$ /user:Administrator" completes successfully, but the SC query still fails. I'm using IP addresses and not hostnames in these commands, but that doesn't help. I don't know what else to try. Thanks for the help.
Try to run the commans as a Administrator
start-> (type cmd in search box), right click on cmd, Run as a administrator -> execute your command
You must have administrative rights on the remote machine.
Moreover you must access the drive before calling "sc".
This can be achieved in command line using
net use \\remotemachine\admin$ <password> /user:<username>
admin$ is a hidden shared drive accessible to administrators that "sc" uses to control services.
I was having the same issue today trying to check if a service is enabled remotely.
I could solve the issue modifying the User Account Control for remote restrictions in windows:
To disable UAC remote restrictions, follow these steps:
Click Start, click Run, type regedit, and then press ENTER.
Locate and then click the following registry subkey: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
If the LocalAccountTokenFilterPolicy registry entry does not exist,
follow these steps:
On the Edit menu, point to New, and then click DWORD Value. Type LocalAccountTokenFilterPolicy, and then press ENTER.
Right-click LocalAccountTokenFilterPolicy, and then click Modify. In the Value data box, type 1, and then click OK.
Exit Registry Editor.
More information about this solution in this site.
Your user should be remote, from Manage and Local users and groups
The UAC issue is obvious you have to pull down the lever for UAC setting
Also while installing the services you can use the following command
SC create SERVICENAME DisplayName= "DISPLAYNAME" binPath= "PATH OF EXE" start= disabled type= share

User '' does not have required permissions, SSRS 2008 on Windows 8

When you try to log into SSRS's root site at http:// (servername)/Reports it displays:
User '' does not have required permissions. Verify that sufficient permissions have been granted and Windows User Account Control (UAC) restrictions have been addressed.
This is on a 64 bit edition of Windows 8 Pro, running SQL Server 2008 enterprise. Everything should be using the local system as the account of execution.
I have tried changing the execution account as my user which is admin, I have added the site as the trusted site, I have UAC turned completely off, I have tried to hit the site with IE AS ADMIN, Chrome, and Firefox. Everything I try the site states back that I don't have the rights. I go into SQL Server and ensure my roles are everything for my user. It does not care. I am currently reinstalling the SSRS node of the SQL Server install but am curious if anyone else had this issue yet.
I am going to try to change my account to a 'local' account as I am thinking that may be an issue yet I don't understand why SQL Server can recognize my login integrated just fine. Honestly I never ran into this and am wondering if this is an issue just with Windows 8 accessing SQL Server 2008. I would upgrade but I have a full version of SQL Server 2008 and not of 2012 so I am hesitant to just upgrade unless Express 2012 will come with Business Intelligence Development Studio and SSRS site with tools.
EDIT: 3-8-2016:
No answer with: "Just turn on site settings" is valid as this is the first time installing as the admin of the server or machine locally and not able to access the landing page as that admin.
No answer with: "Just run IE as admin" will work last I tested that.
Answers with "Trusted SITE settings MAY WORK" on Windows 8 and higher as I had a similar problem to this with Windows 10 and on Windows 10 it did fix it. I am not going to rollback two OS versions to check at home though, sorry.
I don't get how this question can be existing for a while and people are now on a mission to claim it is duplicate when the very answer is different than the potential duplicate. That whole thread deals with someone able to get into the site with elevated permission and just not setting up roles and users after the fact. This is the main user of the machine not getting to the landing page as an admin to the site listed as the default landing. Not even the same ballpark. Getting into a page as an admin to let local users in versus the highest level God user not getting in is not the same.
Everything in this answer is true but don't reinstall all of SSRS thats nonsense...
Windows 8
Disable UAC
Enable Administrator Account (You can go to Control Panel > Computer Management > Users)
Restart PC
Run IE ad Administrator when prompted login with your local Administrator account you enabled.
You will need to adjust site settings security and folder settings security. Easy fast fix just add "Everyone" in both of those with full rights.
Problem solved!
I ran into the same issue myself but with Windows 7 and SQL Server 2008. I resolved the issue following the instructions from Suresh Kumar's blog post at http://skamie.wordpress.com/2010/06/24/ssrs-and-uac/
In a nutshell here are the steps you need to take to resolve this issue:
Start your browser using 'run as Administrator'.
Navigate to the report manager and under Site Settings -> Security assign your account or the local administrators group to the System Administration role.
Then navigate to the home folder and under the security settings assign your account or the local administrators group to the Browser, Conent Manager, My Reports, Publisher and Report Builder roles.
Now you should be able to run your browser as normal and access SSRS without any issues.
Okay this is really annoying what needed to be done but here goes.
From what I kept reading Windows 8 does not by default enable the default administrator account.
I usually don't use this account but in this case I was desperate as my account could not get in.
I understand ONCE YOU ARE IN you can set the site settings, that does not help if you cannot even see the site's main landing page to see that setting.
The steps I took to finally resolve were;
Uninstall SSRS Node COMPLETELY by going to control panel>SQL Server 2008>Remove>Check Reporting Services
Enable default admin account: command prompt>run as administrator>net user administrator p#ssw0rD, hit enter.
New line: net user administrator /active:yes
Reboot
Reinstall SSRS from disc with logging in as default administrator
Install SP3 as administrator
Go to IE.exe DIRECTLY in Windows 8: C:\Program Files\Internet Explorer\iexplore.exe>Run as administrator.
Go to http:// (servername)/Reports
You SHOULD now be able to finally see site settings. NOW YOU CAN FOLLOW everyone's directions of adding YOUR USER under site settings. Also go to folder permissions and add the user as a default here as well.
(optional) For safety I would hide the default admin account now by using step 2 but substitute /active:no in.
If your main admin can't open the door, no one is getting in. That was the main issue I was having. My default admin could not get in. Now everything is working fine and dandy like it should with deploying from BIDS as well.
I had the same problem on my Windows 8 system (32 bit) with SQL Server 2008R2. When I started IE using 'run as Administrator' it still asked for a user name and password and resulted in "user does not have permissions"-error when I entered my user name and password. This is what fixed it for me:
I disabled UAC in the registry (Set HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA to 0). I first set notify-level under Control Panel | System and Security | Change User Account Control to the lowest level but that didn't make any difference.
After reboot I started IE using 'run as Administrator'. Went to Report Manager | Site Settings | Security: added my account as System administrator.
Still in Report Manager I went to Home | Folder Settings and added my account with role Content Manager.
I enabled UAC through Control Panel | System and Security | Change User Account Control settings by setting it to default level again. (Reboot required)
When I run IE as Administrator now and supply my user name and password it does show the homepage of the report manager.
Run Internet Explorer as administrator (right click on the Taskbar icon)
Step 1 :: Add your local username to the Site Settings security roles page. (Security - System Administrator)
Step 2 :: Add your local username to the Folder Settings on the home page. (Select Content Manager)
Close the Administrator IE session.
Open IE in normal mode under your user account.
Windows 8.1
I resolved this with help from the answer by Austin McLaughlin posted earlier. In my case I had been logged in with a local account that had administrator privileges, but attempting to http://127.0.0.1/Reports (hearinafter referred to as "the Reporting Services Manager") produced the error reported by the OP.
The key for me was that the Administrator account was disabled by default in my Windows 8.1 laptop. Note that I did not originally have Windows 8.1 Pro, so there was no "Local Users and Groups" under "Computer Management". Thus, I had to purchase the Windows 8.1 Pro Pack online from MS for $100.
In Windows Explorer, right click on the Computer node and select "Manage".
Navigate to Local Users and Groups > Users
Right click on Administrator and select Properties
De-select "Account is disabled"
Restart PC
Log in to the PC as Administrator (I did not have to enter a password for the Administrator account on first login.)
From the desktop, run IE. No need to run as Administrator, of course, since you logged in as Administrator.
Navigate to the Reporting Services Manager.
At this point you should be logged in to the Report Administrator and on the Home screen. I had not been able to get this far before.
On the Home screen, click "New Role Assignment"
In "Group or user name", enter the local administrator account you use for development; i.e.: [yourmachine]\[username]
Select all the checkboxes (shortcut is to click the checkbox to the left of "Role") and click OK.
In the upper right hand side of the page, click Site Settings.
On the left side of the page, click Security.
Click "New Role Assignment"
In "Group or user name" enter the same account as in step 10
Check "System Administrator" checkbox and click OK
As a precaution, disable the Administrator account that you enabled in step 4.
Log out, then back in with your local account from step 10.
In IE, browse to the Reporting Services Manager. Note: It was not necessary for me to start IE as Administrator.
At this point you should be able to access Reporting Services Manager page, and configure reporting services further.
Change service account type as "Network Service" in service account tab then stop and start service and run IE as Administrator.
From Reporting Services Configuration Manager you can get to the node Report Manager Url. The URL works from this screen. Now you can use the Folder Settings to add yourself as a Content Manager, etc... Now the url will work for your user.
In IE, just add Add the reporting services website to "Local intranet" sites.
That's it.
Just open IE as Run As Administrator and just type URL as http://localhost/reports

User does not have permission to access a database

I'm trying to connect to a database using Windows Authentication. I believe that my current user does not have access to it.
How can I enable a user to login to SQL Server, and use the database?
You need to use the SQL Server Management Studio program to grant access for the user. You'll need to connect in with a login that has administration privileges for the database. If you have don't have those privileges you'll need to contact someone that does.
If you do have a login with those privileges:
open Management Studio
connect to the database server the database is on and look for the Security node in Object Explorer.
Expand the Security node and look for the name of the user in the list of Logins. The user's name should be the same as the user's Windows login if you are using Windows Authentication DOMAIN\Username format.
If the user is there, you will need to grant that user appropriate permissions to the database (read, execute SPs, etc.).
If the user isn't there you will need to add them.
Permission can also be added by group so you should check for groups that the user belongs to as well.
I had a scenario where I inherited a PC from another developer that left the organization. I couldn't access the default instance using Windows Authentication.
Here was the solution:
Open up SQL Server Configuration Manager
Click on "SQL Server Services"
Locate the Instance in the right pane and double-click for its properties
In the "Log On" tab, notice the "Log on as:" radio button option is set to "Built-in account".
Change the option to "This account" and add your Windows Authentication account with your domain and username and enter your password.
Click "Apply". Click "Yes" when it asks you if you want to restart the instance.
This will automatically add your Windows Authentication user account (Active Directory or local user) to the SQL Server instance. You will now be able to connect right away to the selected instance. As best practice, reset the settings back to the Built-in user account (most likely Network Service).
That's it!

Can I run RegAsm without being Administrator?

My coworker is trying to register some COM components (which I wrote) via RegAsm.exe and it says he needs Administrator privileges. His account has admin privileges but he is not logged in as Administrator. Is there a way to use his regular user account and succeed at this task?
I work in an environment/jurisdiction where giving local admin access to all users is simply not possible (legal/compliance/regulations will not allow).
It appears there is no equivalent of this function in .NET world: AtlSetPerUserRegistration
Try this: Using regasm, generate the registry entries with /regfile argument. By default, registry entries should use HKEY_CLASSES_ROOT (HKCR) as a root. Modify the entries (manually, or by script) to use HKEY_CURRENT_USER (HKCU).
Finally, distribute your .NET DLL with the registry script. You can still run regedit without admin rights to register your .NET DLL. Manually from the command line, using a batch file, or a (tiny) separate installation program can handle the registration.
Admin privileges are required to allow Regasm.exe to update the registry. If this is a UAC restriction then create a shortcut on the desktop for cmd.exe and check the "Run this program as an administrator" checkbox. Or change this setting on the Visual Studio Command Prompt shortcut, that's easier.
I think this question belongs elsewhere, but Windows uses least privilege so if he is a user that is both a normal user and an Administrator than he gets normal user privileges. Use runas to make this work or right click the item and "run as administrator"
Why don't you use registration free com? Its only been supported since 2003 and obviates the need for UAC / administrative access to install COM components.
With RegFree COM you can just bundle the COM dlls with the application that uses them as a private assembly - but that doesn't mean they can't be properly installed - either in the registry or in WinSxS by the final deployment install.exe/msi
Subtext wrt the actual query: no - COM registration is in the HKEY_LOCAL_MACHINE key that always requires administrative access.
I lied: Actually you can. If you create a application with no manifest at all, Windows deduces that its an XP era application that expects administrative access to run and will activate a compatibility mode that, amongst other features, redirects write access to HKLM to a writable location under HKCU. So the COM component registration "succeeds" - but is registered for the current user only.
Im not sure why the ability to register for just the current account isn't supported generally outside the compatibility framework.
Check this out: https://gist.github.com/florentbr/6be960752fc852ee99eece6b4acb8ba7
I was trying to do the same thing and was about to give up when I came upon it.
It's a cmd script that will register the SeleniumBasic.dll in the registry without having admin privileges. With a bit of work you should be able to repurpose the code to register your COM components.
Many, many thanks to Florent Breheret for SeleniumBasic and this cmd script to register it!
I am logged into an account that has Administrator privileges. But RegAsm.exe still says it needs Administrator privileges.
[From some notes I have for Windows 2008 R2. Confirm on other Windows operating systems that support UAC. The following assumes that you are permitted to make changes to the Local Security Policy. ]
In its default configuration, User Account Control (UAC) settings give the local Administrator full privileges, but restrict the privileges of other members of the Administrators group. To lift the UAC restrictions on other members of the Administrators group, do the following:
Select Start -> All Programs -> Administrative Tools -> Local Security Policy.
Select Local Policies -> Security Options.
In the right panel, double-click the third entry from the bottom which reads User Account Control: Run all administrators in Admin Approval Mode.
Click Disabled.
Click OK to close the dialog and close the Local Security Policy configuration tool.
Reboot the computer to complete this change to the UAC settings.

Connect different Windows User in SQL Server Management Studio (2005 or later)

Is there a way in SQL Server Management Studio 2005 (or later) to change the Windows Authentication user (as you could in SQL Server 2000 and older)?
This is the general connection properties dialog(note the greyed out UID/PWD when selecting Windows Auth):
FYI - One workaround is to use runas but I'm looking for a solution that will allow me to work with multiple Windows accounts across multiple servers (and across multiple domains).
While there's no way to connect to multiple servers as different users in a single instance of SSMS, what you're looking for is the following RUNAS syntax:
runas /netonly /user:domain\username program.exe
When you use the "/netonly" switch, you can log in using remote credentials on a domain that you're not currently a member of, even if there's no trust set up. It just tells runas that the credentials will be used for accessing remote resources - the application interacts with the local computer as the currently logged-in user, and interacts with remote computers as the user whose credentials you've given.
You'd still have to run multiple instances of SSMS, but at least you could connect as different windows users in each one.
For example: runas /netonly /user:domain\username ssms.exe
Hold shift and right click on SQL Server Mangement studion icon. You can Run as other windows account user.
One other way that I discovered is to go to "Start" > "Control Panel" > "Stored Usernames and passwords" (Administrative Tools > Credential Manager in Windows 7) and add the domain account that you would use with the "runas" command.
Then, in SQL Management Studio 2005, just select the "Windows Authentication" and input the server you wanna connect to (even though the user that you can see greyed out is still the local user)... and it works!
Don't ask me why ! :)
Edit:
Make sure to include ":1433" after the server name in Credential Manager or it may not connect due to not trusting the domain.
None of these answers did what I needed:
Login to a remote server using a different domain account than I was logged into on my local machine, and it's a client's domain across a vpn. I don't want to be on their domain!
Instead, on the connect to server dialog, select "Windows Authentication", click the Options button, and then on the Additional Connection Parameters tab, enter
user id=domain\user;password=password
SSMS won't remember, but it will connect with that account.
The runas /netonly /user:domain\username program.exe command only worked for me on Windows 10
saving it as a batch file
running it as an administrator,
when running the command batch as regular user I got the wrong password issue mentioned by some users on previous comments.
For Windows 10:
Go to the Sql Management Studio Icon, or Short Cut in the menu:
Right Click > Select Open File Location
Hold Shift and right Click the shortcut, or ssms.exe file that is in the folder. Holding shift will give you an extra option "Run as different user":
This will pop up a login box and you can type the credentials you would like your session to run under.
A bit of powershell magic will do the trick:
cmdkey /add:"SERVER:1433" /user:"DOMAIN\USERNAME" /pass:"PASSWORD"
Then just select windows authentication
There are many places where someone might want to deploy this kind of scenario, but due to the way integrated authentication works, it is not possible.
As gbn mentioned, integrated authentication uses a special token that corresponds to your Windows identity. There are coding practices called "impersonation" (probably used by the Run As... command) that allow you to effectively perform an activity as another Windows user, but there is not really a way to arbitrarily act as a different user (à la Linux) in Windows applications aside from that.
If you really need to administer multiple servers across several domains, you might consider one of the following:
Set up Domain Trust between your domains so that your account can access computers in the trusting domain
Configure a SQL user (using mixed authentication) across all the servers you need to administer so that you can log in that way; obviously, this might introduce some security issues and create a maintenance nightmare if you have to change all the passwords at some point.
Hopefully this helps!
Did anybody tried "plain" runas without parameters? Those /netonly /savcecred all of them sound ambiguous and to me utter nonsense.
C:\Windows\System32\runas.exe /user:DOMAINX\OtherUser02 "C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\ssms.exe"
This works just fine. No matter what, runas WILL ask you for the user password. Just type it and be security audit compliant.
The only way to achieve what you want is opening several instances of SSMS by right clicking on shortcut and using the 'Run-as' feature.