Powershell получает текущее имя домена или имя компьютера \ пользователя и разницу между ними - PullRequest
0 голосов
/ 18 октября 2019

Я делаю скрипт для регистрации моего API в качестве службы Windows. Я следовал этому руководству здесь и заполнил его в меру своих возможностей, так как я новичок в PS:

$acl = Get-Acl "$PSScriptRoot"
$aclRuleArgs = {DOMAIN OR COMPUTER NAME\USER}, "Read,Write,ReadAndExecute", "ContainerInherit,ObjectInherit", "None", "Allow"
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule($aclRuleArgs)
$acl.SetAccessRule($accessRule)
$acl | Set-Acl "$PSScriptRoot"

New-Service -Name MyAPIService -BinaryPathName $PSScriptRoot\MyAPIService.exe -Credential {DOMAIN OR COMPUTER NAME\USER} -Description "API" -DisplayName "API Service" -StartupType Automatic

То, что я хотел бы знать, это как я могу получить текущийимя домена или компьютера, как я получаю текущий каталог с $ PSScriptRoot. Служба будет работать на Windows 10. Я также не знаю, должен ли я использовать домен или имя компьютера \ пользователя? В какой ситуации мне понадобится один или другой?

РЕДАКТИРОВАТЬ: С помощью @Patrick я заставил его работать, вот рабочий скрипт:

$acl = Get-Acl "$PSScriptRoot"
$aclRuleArgs = "$env:COMPUTERNAME\$env:USERNAME", "Read,Write,ReadAndExecute", "ContainerInherit,ObjectInherit", "None", "Allow"
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule($aclRuleArgs)
$acl.SetAccessRule($accessRule)
$acl | Set-Acl "$PSScriptRoot"

New-Service -Name MyAPIService -BinaryPathName $PSScriptRoot\MyAPIService.exe Description "API" -DisplayName "API Service" -StartupType Automatic

Ответы [ 2 ]

1 голос
/ 18 октября 2019

Посмотрите здесь: О переменных среды

$env:COMPUTERNAME
$env:USERNAME
$env:USERDNSDOMAIN

О пользователе:
Это локальный или доменный пользователь? Если локально, используйте «COMPUTERNAME \ USERNAME». Другое "ДОМЕН \ ИМЯ ПОЛЬЗОВАТЕЛЯ"

0 голосов
/ 18 октября 2019
[System.Security.Principal.WindowsIdentity]::GetCurrent().Name

Оно должно включать имя компьютера или домена - поэтому нет необходимости создавать их самостоятельно. Однако это для текущего зарегистрированного пользователя - точно так же, как переменные окружения, которые вам посоветовали использовать в других местах.

Более того - его нельзя редактировать, просто перезаписав переменную окружения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...