Tôi đang cố gắng sử dụng PowerShell để định cấu hình thông tin đăng nhập tài khoản, nhưng tôi cần cấp cho tài khoản "Đăng nhập dưới dạng dịch vụ" ngay để nó hoạt động. Làm thế nào tôi có thể làm điều này trong PowerShell?Sử dụng powershell, làm thế nào để tôi cấp "Đăng nhập dưới dạng dịch vụ" cho một tài khoản?
Trả lời
Đây là liên kết mà bạn cũng có thể thực hiện trong PSH. http://www.derkeiler.com/Newsgroups/microsoft.public.windowsxp.security_admin/2003-12/2865.html.
Vấn đề là không có bất kỳ API công khai nào để quản lý các cài đặt này, do đó bạn có chút khó khăn khi sử dụng các công cụ dòng lệnh được cung cấp trong ResKits.
Cảm ơn bạn. Tôi đã kết thúc bằng cách sử dụng ntrights để làm điều này. ntrights.exe + r SeServiceLogonRight -u
PowerShell không có bất kỳ phương tiện gốc nào để làm điều này, có nghĩa là bạn có thể đang xem xét WMI hoặc ADSI - bạn có nhiều khả năng tìm thấy các ví dụ trong VBScript, vốn đã lâu hơn, mặc dù cá nhân tôi đừng nghĩ rằng tôi đã từng tìm ra cách để chỉ định quyền người dùng theo chương trình. Tuy nhiên, điều đó không có nghĩa là nó không thể được thực hiện, nhưng có thể bạn sẽ nhìn ra ngoài phạm vi của PowerShell một cách cụ thể.
Các kịch bản Powershell dưới đây sẽ cấp SeServiceLogonRight trên máy chủ theo quy định của ComputerName cho người sử dụng theo quy định của tên (kịch bản là một đoạn trích từ đây: 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
Đây là cách tôi đã giải quyết:
Dựa trên: this article
Bạn có thể tải Carbon from here
Đầu tiên mô-đun Carbon nhập khẩu như sau:
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"
}
Không cần phải kiểm tra các đặc quyền hiện có. Nó hoạt động ngay cả khi bạn gọi nó nhiều lần: Grant-CAPrivilege -Identity $ UserName "SeServiceLogonRight" –
- 1. Tài khoản xác thực Windows và tài khoản dịch vụ mạng dưới dạng db_owner
- 2. Kịch bản Powershell để thay đổi tài khoản dịch vụ
- 3. Sử dụng Tài khoản Google để đăng nhập
- 4. Làm cách nào để cấp quyền truy cập tài khoản dịch vụ Google Drive cho tài khoản Google mà không cần sử dụng các ứng dụng của Google?
- 5. Cách sử dụng đăng nhập một lần cho tài khoản đăng?
- 6. Tôi làm cách nào để đăng nhập bằng nhiều dịch vụ xã hội với Firebase?
- 7. Tôi làm cách nào để sử dụng api web dưới dạng dịch vụ web?
- 8. Sử dụng Tài khoản dịch vụ, getAccessToken() trả về null
- 9. Cách đăng nhập bằng tài khoản Facebook?
- 10. SqlException: Đăng nhập thất bại cho người sử dụng NT AUTHORITY \ NETWORK DỊCH VỤ
- 11. Tôi có thể sử dụng AccountManager để cho phép người dùng đăng nhập bằng tài khoản Google của họ không?
- 12. Sử dụng tài khoản Google để đăng nhập vào Ứng dụng Android
- 13. Chuyển thông tin đăng nhập từ một dịch vụ wcf sang một dịch vụ wcf khác
- 14. Powershell - Tạo tác vụ theo lịch để chạy dưới dạng hệ thống/dịch vụ cục bộ
- 15. Làm thế nào để Digitally "Đăng nhập" một tài liệu
- 16. Khi nào thì hibernate sử dụng cache cấp đầu tiên? làm thế nào để đăng nhập?
- 17. Làm thế nào để bạn có được tài khoản tên miền Windows đã đăng nhập từ một ứng dụng ASP.NET?
- 18. Đăng nhập vào ứng dụng ASP.net qua tài khoản Google
- 19. Đăng nhập Facebook dưới dạng bổ sung cho thông tin đăng nhập hiện tại?
- 20. Cách tạo Dịch vụ nghe C# cho MSMQ dưới dạng dịch vụ Windows
- 21. Sử dụng tài khoản Google làm Đăng nhập ... tiếp theo là gì?
- 22. Google Đăng nhập nhiều tài khoản - Có cách nào để chỉ định tài khoản trong URL không?
- 23. Làm thế nào tôi có thể sử dụng 'đăng nhập' bên trong một src/groovy/lớp
- 24. Tạo tài khoản Email từ loại Dịch vụ Tài khoản hiện có
- 25. Cách chỉ định # lần đăng nhập không thành công cho khóa tài khoản trong MVC 4 w/nhà cung cấp dịch vụ đơn giản mặc định
- 26. Truyền tài liệu XML dưới dạng tham số cho các dịch vụ Web trong C#
- 27. Cách sử dụng Twitter làm Đăng nhập cho một Website
- 28. Kiểm tra xem tài khoản AD có "Đăng nhập với tư cách dịch vụ" ngay trong Active Directory
- 29. Làm thế nào để viết một Plugin Tài khoản Internet cho Mac OS?
- 30. Làm cách nào để quản lý tài khoản người dùng từ nhà cung cấp đa dịch vụ (facebook, twitter) trong trang web của tôi?
Tôi đang cố gắng để làm như vậy, trên Windows Server 2008 R2 x64 * Core *, mà không xuất xưởng với ntrights.exe (công cụ được đề cập trong bài viết được liên kết của câu trả lời). Mọi trợ giúp thêm? –
một tùy chọn khác tại đây: https://code.msdn.microsoft.com/windowsapps/Add-log-on-as-a-service-a64dd63c – Rory