J'essaie d'utiliser powershell pour configurer les informations d'identification du compte, mais je dois accorder le compte "Ouvrir une session en tant que service" juste pour que cela fonctionne. Comment puis-je faire cela en PowerShell?À l'aide de PowerShell, comment accorder "Connexion en tant que service" à un compte?
Répondre
Voici un lien que vous pourriez aussi faire dans PSH. http://www.derkeiler.com/Newsgroups/microsoft.public.windowsxp.security_admin/2003-12/2865.html. Le problème est qu'il n'y a pas vraiment d'API publiques pour gérer ces paramètres, donc vous êtes un peu bloqué en utilisant les outils de ligne de commande fournis dans ResKits.
Merci. J'ai fini par utiliser ntrights pour le faire. ntrights.exe + r SeServiceLogonRight -u
PowerShell ne dispose pas de moyens indigènes de le faire, ce qui signifie que vous auriez probablement à la recherche à l'une ou WMI ADSI - vous êtes plus susceptibles de trouver des exemples dans VBScript, qui a été autour plus, bien que personnellement, je Je ne pense pas que j'ai jamais compris comment assigner par programme des droits d'utilisateur. Cela ne veut pas dire que ça ne peut pas être fait, mais vous allez probablement regarder en dehors du domaine de PowerShell spécifiquement.
Le script Powershell ci-dessous accordera la SeServiceLogonRight sur l'hôte spécifié par computerName à l'utilisateur spécifié par nom d'utilisateur (le script est un extrait ici: https://gist.github.com/grenade/8519655):
<#
.Synopsis
Grant logon as a service right to the defined user.
.Parameter computerName
Defines the name of the computer where the user right should be granted.
Default is the local computer on which the script is run.
.Parameter username
Defines the username under which the service should run.
Use the form: domain\username.
Default is the user under which the script is run.
.Example
Usage:
.\GrantSeServiceLogonRight.ps1 -computerName hostname.domain.com -username "domain\username"
#>
param(
[string] $computerName = ("{0}.{1}" -f $env:COMPUTERNAME.ToLower(), $env:USERDNSDOMAIN.ToLower()),
[string] $username = ("{0}\{1}" -f $env:USERDOMAIN, $env:USERNAME)
)
Invoke-Command -ComputerName $computerName -Script {
param([string] $username)
$tempPath = [System.IO.Path]::GetTempPath()
$import = Join-Path -Path $tempPath -ChildPath "import.inf"
if(Test-Path $import) { Remove-Item -Path $import -Force }
$export = Join-Path -Path $tempPath -ChildPath "export.inf"
if(Test-Path $export) { Remove-Item -Path $export -Force }
$secedt = Join-Path -Path $tempPath -ChildPath "secedt.sdb"
if(Test-Path $secedt) { Remove-Item -Path $secedt -Force }
try {
Write-Host ("Granting SeServiceLogonRight to user account: {0} on host: {1}." -f $username, $computerName)
$sid = ((New-Object System.Security.Principal.NTAccount($username)).Translate([System.Security.Principal.SecurityIdentifier])).Value
secedit /export /cfg $export
$sids = (Select-String $export -Pattern "SeServiceLogonRight").Line
foreach ($line in @("[Unicode]", "Unicode=yes", "[System Access]", "[Event Audit]", "[Registry Values]", "[Version]", "signature=`"`$CHICAGO$`"", "Revision=1", "[Profile Description]", "Description=GrantLogOnAsAService security template", "[Privilege Rights]", "SeServiceLogonRight = *$sids,*$sid")){
Add-Content $import $line
}
secedit /import /db $secedt /cfg $import
secedit /configure /db $secedt
gpupdate /force
Remove-Item -Path $import -Force
Remove-Item -Path $export -Force
Remove-Item -Path $secedt -Force
} catch {
Write-Host ("Failed to grant SeServiceLogonRight to user account: {0} on host: {1}." -f $username, $computerName)
$error[0]
}
} -ArgumentList $username
Voici comment je l'ai résolu:
Basé sur: this article
Vous pouvez télécharger Carbon from here
Module de carbone Premier importation comme suit:
Import-Module -Name $Path_To_Carbon -Global -Prefix CA
[array]$UserPrivileges = Get-CAPrivileges -Identity $UserName;
[bool]$LogOnAsAServiceprivilegeFound = $false;
if ($UserPrivileges.Length > 0)
{
if ($UserPrivileges -contains "SeServiceLogonRight")
{
$LogOnAsAServiceprivilegeFound = $true;
}
}
if ($LogOnAsAServiceprivilegeFound -eq $false)
{
Grant-CAPrivilege -Identity $UserName "SeServiceLogonRight"
}
Inutile de vérifier les privilèges existants. Cela fonctionne même si vous l'appelez plusieurs fois: Grant-CAPrivilege -Identity $ UserName "SeServiceLogonRight" –
- 1. C#. Comment accorder à l'utilisateur une ouverture de session en tant que service
- 2. IIS s'exécutant en tant que service Compte avec AzMan
- 3. Vérifiez si le compte AD dispose de "Connexion en tant que service" dans Active Directory
- 4. Affichage des fenêtres d'un processus s'exécutant en tant que compte système ou en tant que service
- 5. Problèmes de connexion à un fichier MDB Access via PowerShell
- 6. Le script Powershell permet de modifier le compte de service
- 7. SCardEstablishContext se bloque en tant que service
- 8. Octroi de l'accès au compte ASP.NET Network Service à Azman
- 9. Comment accorder un accès au service Windows à une file d'attente MSMQ avec un projet d'installation?
- 10. Projet d'installation Visual Studio - exécuté en tant que compte système
- 11. Démarrage d'un processus en tant que compte d'utilisateur
- 12. Execute PowerShell en tant qu'administrateur de C#
- 13. Rails - Comment enregistrer la sortie HTML d'une HAML partielle en tant que chaîne à envoyer à un service externe?
- 14. Puis-je exécuter un script Python en tant que service?
- 15. Interface de service Web - Type complexe en tant que paramètre?
- 16. Comment envoyer des données XML en tant que requête à l'aide du service Web XML
- 17. Expose une bibliothèque de classes en tant que service WCF
- 18. Chaînes de connexion de mise à jour PowerShell
- 19. Client de service Web en tant que singleton?
- 20. Plusieurs instances de même application en tant que service Windows?
- 21. Logiciel en tant que service - Base de données
- 22. Tomcat Journalisation en cours d'exécution en tant que service Windows
- 23. Publication du schéma en tant que problème de service wcf
- 24. Comment lier des données en tant que paramètre à ActionLink?
- 25. Démarrage de Tomcat avec débogage à distance (jdwp) lorsqu'il est installé en tant que service Windows
- 26. Application OpenGL C++ en tant que service web
- 27. Windows Mobile - Programme Compact Framework en tant que service?
- 28. structure de données laide à la recherche java
- 29. Exemple de connexion d'un service Windows à QuickBooks ...?
- 30. Commandes Powershell à distance
Je suis en train de faire la même chose, sur Windows Server 2008 R2 64 bits * base *, qui ne sont pas livrés avec ntrights.exe (l'outil mentionné dans l'article lié de la réponse). Toute autre aide? –
une autre option ici: https://code.msdn.microsoft.com/windowsapps/Add-log-on-as-a-service-a64dd63c – Rory