В Вашей конфигурации у Вас есть следующее:
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
Необходимо изменить его на следующее:
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
AllowOverride
директива - то, что позволяет .htaccess
файл, который будет считан. Если Вы все еще испытываете затруднения, удостоверьтесь, что Вы изменяете это в
<Directory "/var/www/html">
блок также (в зависимости от того, где Ваш сайт расположен).
Надеюсь, это поможет!
$dom = $env:userdomain
$usr = $env:username
([adsi]"WinNT://$dom/$usr,user").fullname
Возвращает:
John Doe
Также доступны некоторые другие (в основном) неясные свойства. Несколько полезных:
Попробуйте:
[adsi]"WinNT://$dom/$usr,user" | select *
Мне нравится принятый ответ, но просто потому, что я сам хотел попробовать:
$user = whoami
Get-WMIObject Win32_UserAccount | where caption -eq $user | select FullName
возвращает:
FullName
--------
TheCleaner
или, если вы не хотите иметь информацию заголовка, а только результат:
$user = whoami
Get-WMIObject Win32_UserAccount | where caption -eq $user | select FullName | ft -hide
Один лайнер с использованием Powershell 3.0:
gwmi win32_useraccount | where {$_.caption -match $env:USERNAME} | select fullname | ft -HideTableHeaders
Если вы не хотите использовать модуль Active Directory, вы не можете; если только вы не хотите углубиться еще глубже и выполнить фактический запрос LDAP к контроллеру домена.
Любая информация о пользователе, кроме имени пользователя, хранится в Active Directory, и ее нужно получать там.
На основании вашего комментария к принятому ответу Craig620,
Нужны ли мне права администратора домена для выполнения этой команды? Или может домен сам пользователь может запустить эту команду?
Похоже, вы пытаетесь избежать установки модулей PowerShell на пользовательские рабочие станции, да, но также нет, вам не нужно быть администратором домена, чтобы найти свое имя в ОБЪЯВЛЕНИЕ. Вы можете найти практически любую информацию, которая появляется в глобальном списке адресов в Outlook, включая полное имя, как обычный пользователь.
Вы также можете искать полные имена других людей как стандартный пользователь в AD (используя Get-WmiObject Win32_userAccount
, если вы хотите избежать использования модулей AD). Учетные записи служб, которые запрашивают AD (ну, до управляемых учетных записей служб ), обычно являются стандартными непривилегированными пользователями AD.
Использование -match не является хорошим выбором, потому что $ env: USERNAME из «ed» будет соответствовать «fred» и «edith». Вместо этого используйте -eq для точного совпадения и при необходимости добавьте домен. Я использую цикл foreach в конце, чтобы удалить все начальные и завершающие пробелы в качестве альтернативы «select fullname | ft -HideTableHeaders», который печатает начальную и конечную символы новой строки.
gwmi win32_useraccount | where {$_.caption -eq $("domain\" + $env:USERNAME)} | foreach {$_.fullname}
Если у вас всегда есть .Net 3.5 или выше (что и должно быть на PowerShell v4). 0 и выше):
Add-Type -AssemblyName System.DirectoryServices.AccountManagement;
$DisplayName = [System.DirectoryServices.AccountManagement.UserPrincipal]::Current.DisplayName;
Этот класс обеспечивает очень простой доступ ко всем общим свойствам LDAP, так что вам не нужно искать дважды (один раз с WinNT и снова с LDAP) или использовать [ADSISearcher]
для поиска LDAP, если вам нужны некоторые расширенные свойства, которые WinNT не реализует.